From ae2e63da56c291b5b6eade30550e11513328a7a7 Mon Sep 17 00:00:00 2001 From: victormylle Date: Fri, 20 Nov 2020 21:00:56 +0100 Subject: [PATCH] Started creating config file system --- bot.py | 32 ++++++++------------------------ cogs/quiz.py | 14 ++++++-------- data/constants.py | 4 ++-- 3 files changed, 16 insertions(+), 34 deletions(-) diff --git a/bot.py b/bot.py index 6addfbc..273313d 100755 --- a/bot.py +++ b/bot.py @@ -1,27 +1,11 @@ +#!/usr/bin/python + +import sys from discord.ext import commands import os +import yaml +from bots.discordbot import DiscordBot -class DiscordBot: - def __init__(self, config): - - prefixes = ["/"] - - self.client = commands.Bot(command_prefix=prefixes, case_insensitive=True) - self.client.prefixes = prefixes - - # Load this cog first so the other cogs can use properties initialized here - self.client.load_extension("cogs.events") - - for file in os.listdir("./cogs"): - if file.endswith(".py") and not (file.startswith(("events",))): - self.client.load_extension(f"cogs.{file[:-3]}") - - def run(self): - self.client.run("NzYwNTI5NDY2MDI3MDE2MjUy.X3NYQg.Nz3bwxgltlayMStfT7F-OCbx9pE") - - def get_client(self): - return self.client - - -bot = DiscordBot(None) -bot.run() +if __name__ == "__main__": + bot = DiscordBot(sys.argv[1]) + bot.run() diff --git a/cogs/quiz.py b/cogs/quiz.py index 7a2ff3e..cb1340f 100755 --- a/cogs/quiz.py +++ b/cogs/quiz.py @@ -1,6 +1,5 @@ import discord from discord.ext import commands -from data import constants import asyncio import threading import random @@ -143,11 +142,10 @@ class QuizQuestions(commands.Cog): class Quiz(commands.Cog): def __init__(self, client): self.client = client - #self.interval = (1, 4) - self.interval = (5*60, 20*60) self.auto = False - self.timeout = 10*60 - + self.quiz_config = self.client.config["quiz"] + self.interval = (int(self.quiz_config["interval_start"]) * 60, int(self.quiz_config["interval_end"]) * 60) + self.timeout = int(self.quiz_config["timeout"])*60 @commands.group(name="quiz",case_insensitive=True, invoke_without_command=True) @commands.check(checks.isModPlus) @@ -218,7 +216,7 @@ class Quiz(commands.Cog): ranges = {10: 50, 25: 75, 50: 100, 75: 125, 100: 150} range = random.choice(list(ranges)) random_number = random.randint(1, range) - channel = self.client.get_channel(constants.QuizChannelID) + channel = self.client.get_channel(self.quiz_config["channel"]) await channel.send(embed=self.create_question_embed(f"Guess the number from 1 to {range}", ranges[range])) await channel.edit(slowmode_delay=1) try: @@ -238,7 +236,7 @@ class Quiz(commands.Cog): async def ask_question(self): question = self.get_random_question() self.increment_asked_count(question[0]) - channel = self.client.get_channel(constants.QuizChannelID) + channel = self.client.get_channel(self.quiz_config["channel"]) await channel.send(embed=self.create_question_embed(question[1], question[3])) try: message = await self.client.wait_for("message", check=lambda message: message.content.lower() == question[2].lower(), timeout=self.timeout) @@ -255,7 +253,7 @@ class Quiz(commands.Cog): async def start_word_game(self): word = self.get_random_word() self.increment_asked_word(int(word["id"])) - channel = self.client.get_channel(constants.QuizChannelID) + channel = self.client.get_channel(self.quiz_config["channel"]) shaken_word = self.shake_word(word["word"].lower()) await channel.send(embed=self.create_question_embed(f"Find the word from: {shaken_word}", word['reward'])) try: diff --git a/data/constants.py b/data/constants.py index b9ea54f..54e41e5 100755 --- a/data/constants.py +++ b/data/constants.py @@ -21,6 +21,6 @@ modPlusRoles = [roleAdmin, roleMod, roleOwner] # Channels ModLogs = 760807882899193867 # dev -#QuizChannelID = 774418250665951232 -QuizChannelID = 775776550871498752 +QuizChannelID = 774418250665951232 +#QuizChannelID = 775776550871498752 DiscordLinkerID = 776944220119760927