From f3ccad70cf13e1501985adf3823308de06df258d Mon Sep 17 00:00:00 2001 From: ionburger Date: Tue, 8 Nov 2022 14:39:10 -0700 Subject: [PATCH] eee --- py/{init.py => bot.py} | 5 ++ py/main.py | 154 +++++++++++++++++++++-------------------- py/storage.py | 24 +++---- 3 files changed, 94 insertions(+), 89 deletions(-) rename py/{init.py => bot.py} (95%) diff --git a/py/init.py b/py/bot.py similarity index 95% rename from py/init.py rename to py/bot.py index 8e08788..066cec5 100644 --- a/py/init.py +++ b/py/bot.py @@ -1,5 +1,6 @@ #imports import version +import main import sys import os import configparser @@ -32,3 +33,7 @@ if config["config"]["autoupdate"] == "true": os.execl(sys.executable, sys.executable, *sys.argv) else: print("running latest version of turdbot",versionl) +else: + print("autoupdate disabled") + +main.run() \ No newline at end of file diff --git a/py/main.py b/py/main.py index 67f8629..519f39c 100644 --- a/py/main.py +++ b/py/main.py @@ -9,100 +9,102 @@ import datetime import datetime import shelve import backports.zoneinfo as zoneinfo -from py.storage import config +from storage import config +import version from discord import app_commands from discord.ext import tasks, commands +def run(): -quotetime = datetime.time(hour=12, tzinfo=zoneinfo.ZoneInfo("MST")) -avgtimelst = [] + quotetime = datetime.time(hour=12, tzinfo=zoneinfo.ZoneInfo("MST")) + avgtimelst = [] -token = open("py/TOKEN", "r").read() -intents = discord.Intents.all() -bot = commands.Bot(intents=intents, command_prefix=".") + token = open("TOKEN", "r").read() + intents = discord.Intents.all() + bot = commands.Bot(intents=intents, command_prefix=".") -# on ready -@bot.event -async def on_ready(): - print('We have logged in as {0.user}'.format(bot)) - if not dailyquote.is_running(): - dailyquote.start() - print(bot.tree) -print("discord.py version") -print(discord.__version__) + # on ready + @bot.event + async def on_ready(): + print('logged in as {0.user}'.format(bot)) + print("discord.py version",discord.__version__) + print("turdbot version",version.local()) + + if not dailyquote.is_running(): + dailyquote.start() -@bot.hybrid_command(name="eee", with_app_command=True) -async def foo(ctx): - for guild in bot.guilds: - await ctx.send(guild.id) + @bot.hybrid_command(name="eee", with_app_command=True) + async def foo(ctx): + for guild in bot.guilds: + await ctx.send(guild.id) -# main event -@bot.event -async def on_message(message): - # defining variables - msg = str(message.content) - channel = str(message.channel.id) - server = message.guild.id - author = str(message.author) + # main event + @bot.event + async def on_message(message): + # defining variables + msg = str(message.content) + channel = str(message.channel.id) + server = message.guild.id + author = str(message.author) - # reply to bots - if message.author.bot and config("replytobot") == "false": - return + # reply to bots + if message.author.bot and config("replytobot") == "false": + return - # start event timer - print("\n start client.event") - start = datetime.datetime.now() + # start event timer + print("\n start client.event") + start = datetime.datetime.now() - # triggerbot - if config("triggerbotenabled") == "true": - x = 0 - found = "false" - triggers = config("triggerbottriggers", db="data") - while x < len(triggers) and found == "false": - if triggers[x] not in msg: - x = x+1 - elif triggers[x] in msg: - found = "true" - replys = config(triggerbotreplys, db=data) - rand = random.randint(0, len(replys))-1 - await message.channel.send(replys[rand]) - else: - print("something happened") + # triggerbot + if config("triggerbotenabled") == "true": + x = 0 + found = "false" + triggers = config("triggerbottriggers", db="data") + while x < len(triggers) and found == "false": + if triggers[x] not in msg: + x = x+1 + elif triggers[x] in msg: + found = "true" + replys = config(triggerbotreplys, db=data) + rand = random.randint(0, len(replys))-1 + await message.channel.send(replys[rand]) + else: + print("something happened") - # daily quote - if channel == config("quotequeue") and config("quotebotenabled") == "true": - file = open("data/quotes.var", "a") - file.write(msg) - file.write(":") - file.close() + # daily quote + if channel == config("quotequeue") and config("quotebotenabled") == "true": + file = open("data/quotes.var", "a") + file.write(msg) + file.write(":") + file.close() - # bot commands - await bot.process_commands(message) + # bot commands + await bot.process_commands(message) - # end function timer - end = datetime.datetime.now() - eventime = (end - start) - microseconds = eventime.microseconds - avgtimelst.append(microseconds) - avgtime = sum(avgtimelst) / len(avgtimelst) - print("\n end client.event \n microseconds: " + - str(microseconds) + "\n average time: " + str(avgtime)) + # end function timer + end = datetime.datetime.now() + eventime = (end - start) + microseconds = eventime.microseconds + avgtimelst.append(microseconds) + avgtime = sum(avgtimelst) / len(avgtimelst) + print("\n end client.event \n microseconds: " + + str(microseconds) + "\n average time: " + str(avgtime)) -@tasks.loop(time=quotetime, reconnect=True) -async def dailyquote(): - if config("quotebotenabled") == "true": - file = open("data/quotes.var", "r+") - list = file.read().split(":") - rand = random.randint(0, (len(list)-1)) - print(rand) - channel = bot.get_channel(int(quotebotconf["config"]["dailyquote"])) - await channel.send(list.pop(rand)) - file.write(":".join(list)) - file.close() + @tasks.loop(time=quotetime, reconnect=True) + async def dailyquote(): + if config("quotebotenabled") == "true": + file = open("data/quotes.var", "r+") + list = file.read().split(":") + rand = random.randint(0, (len(list)-1)) + print(rand) + channel = bot.get_channel(int(quotebotconf["config"]["dailyquote"])) + await channel.send(list.pop(rand)) + file.write(":".join(list)) + file.close() -bot.run(token) + bot.run(token) diff --git a/py/storage.py b/py/storage.py index 7414cab..e17754b 100644 --- a/py/storage.py +++ b/py/storage.py @@ -15,16 +15,14 @@ def config(value,db="config",serverid=server,mode="r"): } - data = shelve.open("bot.shlf",writeback=True) - if mode == "r": - try: - return data[db][serverid][value] - except: - return default[value] - elif mode == "w": - data[db][serverid] = value - return("success") - else: - print("error") - data.close() - + with shelve.open("bot.shlf",writeback=True) as data: + if mode == "r": + try: + return data[db][serverid][value] + except: + return default[value] + elif mode == "w": + data[db][serverid] = value + return("success") + else: + print("error") \ No newline at end of file