Browse Source

This new system is getting there. More refactoring bug fixes too.

tags/v1.5.0
Roxie Gibson 6 years ago
parent
commit
c9df1c7a41
4 changed files with 43 additions and 21 deletions
  1. +0
    -0
      Roxbot/blacklist.txt
  2. +1
    -1
      Roxbot/load_config.py
  3. +18
    -1
      Roxbot/settings/guild_settings.py
  4. +24
    -19
      main.py

Roxbot/settings/blacklist.txt → Roxbot/blacklist.txt View File


+ 1
- 1
Roxbot/load_config.py View File

@@ -1,7 +1,7 @@
import configparser

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

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

+ 18
- 1
Roxbot/settings/guild_settings.py View File

@@ -1,5 +1,19 @@
import json


def get(guilds):
guild_list = []
for guild in guilds:
guild = GuildSettings(guild)
guild_list.append(guild)
return guild_list

def get_guild(guilds, wanted_guild):
for guild in guilds:
if guild.id == wanted_guild.id:
return guild
return None

class GuildSettings(object):

__slots__ = ["settings", "id", "nsfw", "self_assign", "greets", "goodbyes", "twitch", "perm_roles", "custom_commands", "warnings", "is_anal", "gss", "guild_template"]
@@ -61,6 +75,7 @@ class GuildSettings(object):

def _error_check(self):
for server in self.settings:
print(server)
# Server ID needs to be made a string for this statement because keys have to be strings in JSON. Which is annoying now we use int for ids.
server_id = str(server.id)
if str(server_id) not in self.settings:
@@ -90,8 +105,10 @@ class GuildSettings(object):
print("")

def get_settings(self):
with open('settings/servers.json', 'r') as config_file:
with open('Roxbot/settings/servers.json', 'r') as config_file:
self.settings = json.load(config_file)
print(self.settings)
print(type(self.settings))
self._error_check()
self.nsfw = self.settings[str(self.id)]["nsfw"]
self.self_assign = self.settings[str(self.id)]["self_assign"]

+ 24
- 19
main.py View File

@@ -7,7 +7,7 @@ import datetime
import discord
from discord.ext import commands
from Roxbot import load_config
from Roxbot.settings.guild_settings import ServerConfig
from Roxbot.settings import guild_settings


# Sets up Logging that discord.py does on its own
@@ -17,7 +17,6 @@ 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)

server_config = ServerConfig()
bot = commands.Bot(
command_prefix=load_config.command_prefix,
description=load_config.__description__,
@@ -25,8 +24,10 @@ bot = commands.Bot(
activity=discord.Game(name="v{}".format(load_config.__version__), type=0)
)



def blacklisted(user):
with open("settings/blacklist.txt", "r") as fp:
with open("Roxbot/blacklist.txt", "r") as fp:
for line in fp.readlines():
if user.id+"\n" == line:
return True
@@ -34,15 +35,19 @@ def blacklisted(user):

@bot.event
async def on_ready():
server_config.error_check(bot.guilds)
guild_set = guild_settings.get(bot.guilds)
for guild in bot.guilds:
guild.settings = guild_settings.get_guild(guild_set, guild)
print(guild.settings)

print("Discord.py version: " + discord.__version__)
print("Client logged in\n")

print("Cogs Loaded:")
for cog in load_config.cogs:
bot.load_extension(cog)
print(cog)
print("")
#print("Cogs Loaded:")
#for cog in load_config.cogs:
# bot.load_extension(cog)
# print(cog)
#print("")

print("Servers I am currently in:")
for server in bot.guilds:
@@ -52,16 +57,12 @@ async def on_ready():

@bot.event
async def on_server_join(server):
server_config.servers = server_config.load_config()
server_config.servers[str(server.id)] = server_config.servers_template["example"]
server_config.update_config(server_config.servers)
pass


@bot.event
async def on_server_remove(server):
server_config.servers = server_config.load_config()
server_config.servers.pop(str(server.id))
server_config.update_config(server_config.servers)
pass


@bot.event
@@ -93,19 +94,23 @@ async def about(ctx):

return await ctx.channel.send(embed=em)

@bot.command()
async def test(ctx):
return await ctx.send(ctx.guild.settings)


if __name__ == "__main__":
# Pre-Boot checks
if not os.path.isfile("settings/preferences.ini"):
if not os.path.isfile("Roxbot/preferences.ini"):
print(
"PREFERENCE FILE MISSING. Something has gone wrong. Please make sure there is a file called 'preferences.ini' in the settings folder")
exit(0)

if not os.path.isfile("settings/servers.json"):
if not os.path.isfile("Roxbot/settings/servers.json"):
with open("settings/servers.json", "w+") as fp:
fp.write("{}")

start_time = time.time()
bot.load_extension("settings.settings")
bot.load_extension("err_handle")
#bot.load_extension("Roxbot.settings.settings")
#bot.load_extension("Roxbot.err_handle")
bot.run(load_config.token)

Loading…
Cancel
Save