86 lines
3.1 KiB
Python
86 lines
3.1 KiB
Python
import discord
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
from discord.ext import commands, tasks
|
|
import sqlite3
|
|
from datetime import datetime
|
|
import time
|
|
from dotenv import load_dotenv
|
|
|
|
intents = discord.Intents.all()
|
|
|
|
class getcfg:
|
|
def __init__(self):
|
|
load = load_dotenv(dotenv_path='cfg.env')
|
|
self.token = os.getenv('TOKEN')
|
|
if self.token == None or self.token == '':
|
|
load = load_dotenv()
|
|
self.token = os.getenv('TOKEN')
|
|
if self.token == None or self.token == '':
|
|
print("Maybe you didn't setup your .env file")
|
|
sys.exit(0)
|
|
self.prefix = os.getenv('PREFIX')
|
|
|
|
def getprefix(self):
|
|
return self.prefix
|
|
|
|
def gettoken(self):
|
|
return self.token
|
|
|
|
|
|
class Bot(commands.Bot):
|
|
def __init__(self):
|
|
self.conwarn = sqlite3.connect("warn.db")
|
|
self.conmsg = sqlite3.connect("message.db")
|
|
self.confmsg = sqlite3.connect("channel.db")
|
|
self.getcfg = getcfg()
|
|
super().__init__(
|
|
command_prefix=self.getcfg.getprefix(),
|
|
intents=intents,
|
|
)
|
|
|
|
|
|
|
|
async def status_up(self, name):
|
|
await self.change_presence(activity=discord.CustomActivity(name=f"Uptime - {name}"))
|
|
|
|
async def ch(self, server_id):
|
|
name = "logs"
|
|
tog = 1
|
|
rows = self.confmsg.execute("SELECT channel_id FROM channel WHERE name=? AND server_id=? AND tog=?",(name, server_id, tog))
|
|
res = rows.fetchone()
|
|
channel=" ".join(res)
|
|
return channel
|
|
|
|
async def select(self, name, server_id, channel_id) -> None:
|
|
rows = self.confmsg.execute("SELECT tog FROM channel WHERE name=? AND server_id=? AND channel_id=?", (name, server_id, channel_id,))
|
|
res = rows.fetchone()
|
|
if res == None:
|
|
return "disabled"
|
|
elif not None:
|
|
return "enabled"
|
|
|
|
async def load(self):
|
|
for filename in os.listdir('./c'):
|
|
if filename.endswith('.py'):
|
|
await self.load_extension(f'c.{filename[:-3]}')
|
|
|
|
async def on_ready(self):
|
|
print('Bot is now working')
|
|
|
|
async def main(self):
|
|
self.conwarn.execute("CREATE TABLE IF NOT EXISTS 'warn'('id' NOT NULL, 'user_id' varchar(20) NOT NULL, 'server_id' varchar(20) NOT NULL, 'reason' varchar(255) NOT NULL)")
|
|
self.conwarn.execute("CREATE TABLE IF NOT EXISTS 'warnid'('number' int(1) NOT NULL, 'server_id' varchar(20) NOT NULL)")
|
|
self.conwarn.execute("CREATE TABLE IF NOT EXISTS 'warnact'('number' int(1) NOT NULL, 'server_id' varchar(20) NOT NULL)")
|
|
self.conwarn.commit()
|
|
self.conmsg.execute("CREATE TABLE IF NOT EXISTS 'message'('id' NOT NULL, 'server_id' varchar(20) NOT NULL, 'messages' varchar(255) NOT NULL)")
|
|
self.conmsg.commit()
|
|
self.confmsg.execute("CREATE TABLE IF NOT EXISTS 'channel'('tog' int(1) NOT NULL, 'name' str(255) NOT NULL, 'server_id' varchar(20) NOT NULL,'channel_id' varchar(18) NOT NULL)")
|
|
self.confmsg.commit()
|
|
await self.load()
|
|
await self.start(token=self.getcfg.gettoken())
|
|
|
|
bot = Bot()
|
|
asyncio.run(bot.main())
|