-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.py
More file actions
69 lines (54 loc) · 1.81 KB
/
Copy pathmain.py
File metadata and controls
69 lines (54 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from dotenv import load_dotenv
import discord
from discord.ext import commands
from tinydb import TinyDB, where
import os
import log
from utils import kick
from cogs import votekick, vote_requirement
load_dotenv()
bot = commands.Bot(command_prefix="!")
bot.remove_command("help")
cogs = []
db = TinyDB("db.json")
requests_table = db.table("requests")
vote_requirement_table = db.table("vote_requirement")
def add_cog(cog):
bot.add_cog(cog)
cogs.append(cog)
log.good("Loaded cog: " + str(cog))
def register_cogs():
log.info("Loading cogs")
add_cog(votekick.VotekickCommands(bot, db))
add_cog(vote_requirement.VoteRequirement(bot, db))
def start(token):
register_cogs()
log.info("Starting bot")
bot.run(token)
log.danger("Bot stopped")
@bot.event
async def on_ready():
log.good("Bot is ready")
await bot.change_presence(
activity=discord.Game("!votekick | votekick.ismaeelakram.com")
)
log.good("Presence changed")
@bot.event
async def on_reaction_add(reaction: discord.Reaction, user: discord.User):
if reaction.message.author.id == bot.user.id:
if str(reaction.emoji).strip() == "✅":
try:
vote_requirement_count = vote_requirement_table.search(
where("guild_id") == reaction.message.guild.id
)[0]["count"]
except:
vote_requirement_count = 3
reactions = discord.utils.get(reaction.message.reactions, emoji="✅")
if reactions.count >= vote_requirement_count + 1:
await kick.kick(bot, reaction.message, db)
else:
log.info(
f"Removed reaction from {user.name}: '{str(reaction.emoji).strip()}'"
)
await reaction.message.clear_reaction(reaction.emoji)
start(os.getenv("TOKEN"))