mirror of
https://github.com/yawaflua/AoyoBot.git
synced 2025-12-09 03:49:30 +02:00
Initialize project
This commit is contained in:
91
handlers.py
Normal file
91
handlers.py
Normal file
@@ -0,0 +1,91 @@
|
||||
import os, datetime, disnake, sys, json
|
||||
from disnake.ext import commands
|
||||
from asyncio import sleep
|
||||
from log import rootLogger
|
||||
from pathlib import Path
|
||||
from os import environ
|
||||
import psycopg2
|
||||
|
||||
def takeSettings(guild_id, data):
|
||||
path = Path("guilds/guilds.json")
|
||||
readedData = json.loads(path.read_text(encoding="utf-8"))
|
||||
pon = readedData["guilds"][f"{guild_id}"][f"{data}"]
|
||||
return pon
|
||||
|
||||
def execute(command:str, isNeedToGiveData: bool = False):
|
||||
with psycopg2.connect(
|
||||
environ.get("PSQL_HOST"),
|
||||
dbname=environ.get("PSQL_DBNAME"),
|
||||
port=environ.get("PSQL_PORT", "5432"),
|
||||
user=environ.get("PSQL_USER"),
|
||||
password=environ.get("PSQL_PASSWORD")
|
||||
) as conn:
|
||||
cur = conn.cursor()
|
||||
cur.execute(command)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
if isNeedToGiveData: return cur.fetchone()
|
||||
else: return
|
||||
|
||||
|
||||
TOKEN = environ.get("TOKEN")
|
||||
api_token = environ.get("API_TOKEN")
|
||||
api_id = environ.get("API_ID")
|
||||
|
||||
|
||||
|
||||
main_path = __file__.replace(os.path.basename(__file__), "")
|
||||
bot = commands.Bot(command_prefix="/", intents=disnake.Intents().all())
|
||||
bot.remove_command("help")
|
||||
|
||||
now = datetime.datetime.now().strftime("%d/%m/%Y %H:%M")
|
||||
|
||||
@bot.listen()
|
||||
async def on_ready():
|
||||
status = [disnake.Status.online, disnake.Status.idle, disnake.Status.dnd]
|
||||
rootLogger.warning(f"{bot.user} is online and connected to Discord.")
|
||||
disnakeGameStatus = disnake.Game(name="Only slash commands! Author github: github.com/yawaflua", type=4)
|
||||
for filename in os.listdir(f"{main_path}/cogs"):
|
||||
if filename.endswith(".py"):
|
||||
namefile = filename.replace(".py", '')
|
||||
bot.load_extension(f"cogs.{namefile}")
|
||||
i = 0
|
||||
while True:
|
||||
await bot.change_presence(status=status[i], activity=disnakeGameStatus)
|
||||
if i >= 2: i = 0
|
||||
i = i+1
|
||||
|
||||
await sleep(30)
|
||||
|
||||
|
||||
@bot.command(is_owner=True, pass_context=True, alias="reload")
|
||||
async def reload(ctx):
|
||||
for filename in os.listdir(f"{main_path}/cogs"):
|
||||
if filename.endswith(".py"):
|
||||
namefile = filename.replace(".py", '')
|
||||
bot.reload_extension(f"cogs.{namefile}")
|
||||
await ctx.message.delete()
|
||||
|
||||
@bot.command( pass_context = True, alias="clear")
|
||||
@commands.has_permissions(manage_messages=True)
|
||||
async def clear( ctx, amount = 1 ):
|
||||
|
||||
await ctx.channel.purge( limit = 1 )
|
||||
await ctx.channel.purge( limit = amount )
|
||||
|
||||
@bot.command(is_owner=True, alias='leave')
|
||||
async def leave(ctx, arg):
|
||||
print(arg)
|
||||
await bot.get_guild(int(arg)).leave()
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
bot.run(TOKEN)
|
||||
except ConnectionError as e:
|
||||
rootLogger.error(f"Time: {now}, Internet exception: {e}. Closing the process....")
|
||||
sys.exit()
|
||||
except Exception as e:
|
||||
rootLogger.error(f"Time: {now} Exception: {e}. Writing in file...")
|
||||
with open("logs/last_error.log", "a") as file:
|
||||
file.write(e)
|
||||
file.close()
|
||||
Reference in New Issue
Block a user