Browse Source

Looking closer to a finished cog, just without any of the checks and error handleing.

tags/v1.0.0
roxie 6 years ago
parent
commit
7254e905e2
8 changed files with 59 additions and 28 deletions
  1. +3
    -0
      config/cogs.py
  2. +4
    -0
      config/meta.py
  3. +3
    -3
      config/preferences.ini
  4. +1
    -1
      config/servers.json
  5. +8
    -0
      config/settings.py
  6. +9
    -0
      load_config.py
  7. +13
    -11
      main.py
  8. +18
    -13
      server_config.py

+ 3
- 0
config/cogs.py View File

@@ -0,0 +1,3 @@
cogs = [

]

+ 4
- 0
config/meta.py View File

@@ -0,0 +1,4 @@
__description__ = """RoxBot, A Discord Bot made by a filthy Mercy Main. Built with love (and discord.py) by Roxxers#7443
Github link: https://github.com/RainbowDinoaur/roxbot"""
__author__ = "Roxie Gibson"
__version__= "1.0"

+ 3
- 3
config/preferences.ini View File

@@ -1,4 +1,4 @@
[Roxbot]
OwnerID=
Token=
Command_Prefix=
OwnerID=142735312626515979
Token=MzA4MDc3ODg3MDYyNTQwMjg5.DH1aqg.lC3aQ8kV-dcJPZ63GQUwkWM_Oos
Command_Prefix=r;

+ 1
- 1
config/servers.json View File

@@ -1 +1 @@
{}
{"304048071963312130": {"greets": {"enabled": 0, "welcome-channel": "", "member-role": "", "custom-message": "", "default-message": "Be sure to read the rules."}, "goodbyes": {"enabled": 0, "goodbye-channel": ""}, "selfAssign": {"enabled": 0, "roles": []}, "twitch": {"enabled": 0, "twitch-channel": "", "whitelist": {"enabled": 0, "list": []}}, "mute": {"role": "", "admin-role": []}}}

+ 8
- 0
config/settings.py View File

@@ -0,0 +1,8 @@
import configparser

settings = configparser.ConfigParser()
settings.read("config/preferences.ini")

command_prefix = settings["Roxbot"]["Command_Prefix"]
token = settings["Roxbot"]["Token"]
owner = settings["Roxbot"]["OwnerID"]

+ 9
- 0
load_config.py View File

@@ -0,0 +1,9 @@
from config import settings, cogs, meta

command_prefix = settings.command_prefix
token = settings.token
owner = settings.owner
cogslist = cogs.cogs
description = meta.__description__
version = meta.__version__
author = meta.__author__

+ 13
- 11
main.py View File

@@ -1,34 +1,36 @@
#!/usr/env python
import logging
import configparser

import discord
from discord.ext import commands

from server_config import ServerConfig
import load_config

# Sets up Logging that discord.py does on its own
logger = logging.getLogger('discord')
logger.setLevel(logging.DEBUG)
logger.setLevel(logging.INFO)
handler = logging.FileHandler(filename='discord.log', encoding='utf-8', mode='w')
handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s'))
logger.addHandler(handler)

settings = configparser.ConfigParser()
settings.read("config/preferences.ini")
command_prefix = settings["Roxbot"]["Command_Prefix"]
token = settings["Roxbot"]["Token"]
owner = settings["Roxbot"]["OwnerID"]

server_config = ServerConfig()

bot = commands.Bot(command_prefix=command_prefix)
bot = commands.Bot(command_prefix=load_config.command_prefix, description=load_config.description)


@bot.event
async def on_ready():
server_config.error_check(bot.servers)
print("Client Logged In")
game = discord.Game(name="Rewriting Moi", type=0)
bot.owner = load_config.owner
print("Cogs Loaded:")
for cog in load_config.cogslist:
bot.load_extension(cog)
print(cog)
# Testing Code
game = discord.Game(name="Rewriting Moi for v{}".format(load_config.version), type=0)
await bot.change_presence(game=game)
print("Game Changed")

@@ -63,4 +65,4 @@ async def on_command_error(error, ctx):
pass


bot.run(token)
bot.run(load_config.token)

+ 18
- 13
server_config.py View File

@@ -2,7 +2,6 @@ import json

class ServerConfig():
def __init__(self):
# TODO: Move default message into settings.ini
self.servers_template = {
"example": {
"greets": {
@@ -40,30 +39,36 @@ class ServerConfig():
self.delete_after = 20

def load_config(self):
with open('config/config.json', 'r') as config_file:
with open('config/servers.json', 'r') as config_file:
return json.load(config_file)

def update_config(self, config):
with open('config/config.json', 'w') as conf_file:
with open('config/servers.json', 'w') as conf_file:
json.dump(config, conf_file)

def errorcheck(self, servers):
# TODO: Fix so that it checks for problems in children of module settings. i.e children of 'greets'
# TODO: Fix issue where a setting can be enabled when it has no channel to post to.
def error_check(self, servers):
for server in servers:
if server.id not in self.servers:
self.servers[server.id] = self.servers_template["example"]
self.update_config(self.servers)
print(
"WARNING: The config file for {} was not found. A template has been loaded and saved. All modules are turned off by default.".format(
"WARNING: The config file for {} was not found. A template has been loaded and saved. All cogs are turned off by default.".format(
server.name.upper()))
else:
for module_setting in self.servers_template["example"]:
if module_setting not in self.servers[server.id]:
self.servers[server.id][module_setting] = self.servers_template["example"][
module_setting]
for cog_setting in self.servers_template["example"]:
for setting in self.servers_template["example"][cog_setting]:
if setting not in self.servers[server.id][cog_setting]:
self.servers[server.id][cog_setting][setting] = self.servers_template["example"][
cog_setting][setting]
self.update_config(self.servers)
print(
"WARNING: The config file for {} was missing the {} setting in the {} cog. This has been fixed with the template version. It is disabled by default.".format(
server.name.upper(), setting.upper(), cog_setting.upper()))
if cog_setting not in self.servers[server.id]:
self.servers[server.id][cog_setting] = self.servers_template["example"][
cog_setting]
self.update_config(self.servers)
print(
"WARNING: The config file for {} was missing the {} module. This has been fixed with the template version. It is disabled by default.".format(
server.name.upper(), module_setting.upper()))
"WARNING: The config file for {} was missing the {} cog. This has been fixed with the template version. It is disabled by default.".format(
server.name.upper(), cog_setting.upper()))
print("")

Loading…
Cancel
Save