You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.8 KiB
58 lines
1.8 KiB
from discord.ext import tasks
|
|
import discord
|
|
from ..bot import DiscordClient
|
|
|
|
class Extension:
|
|
core = None
|
|
track_guild_id = 0
|
|
track_channel_id = 712673654487515238
|
|
track_webhook_id = 740681080557797499
|
|
track_role_id = 744928190895489074
|
|
|
|
no_reason = {}
|
|
|
|
def __init__(self, core: DiscordClient):
|
|
self.core = core
|
|
self.track_guild_id = core.main_server_id
|
|
|
|
self.webhook_reaction_translate = {
|
|
"😘":(self.core.loaded_extensions['ban'], {"profile":"", "reason":"", "minutes":0, "requester":""}),
|
|
"🔨":(self.core.loaded_extensions['ban'], {"profile":"", "reason":"", "minutes":30, "requester":""}),
|
|
"⚒️":(self.core.loaded_extensions['ban'], {"profile":"", "reason":"", "minutes":120, "requester":""}),
|
|
"📨":(self.no_reason, {"requester":""}),
|
|
"🦵":"kick {reported_steam}",
|
|
"🔇":"mute {reported_steam}",
|
|
"😇":"unban {reported_steam}",
|
|
"hueglot:713139400028061767":"kick {original_steam}",
|
|
"🔍":"{reported_steam}",
|
|
"🔎":"{original_steam}"
|
|
}
|
|
|
|
@core.event
|
|
async def on_message(message: discord.Message):
|
|
if message.webhook_id != self.track_webhook_id:
|
|
return
|
|
|
|
for emoji in list(self.webhook_reaction_translate.keys()):
|
|
try:
|
|
message.add_reaction(emoji=emoji)
|
|
except Exception as err:
|
|
print(f"Cannot add reaction on webhook")
|
|
return
|
|
|
|
@core.event
|
|
async def on_reaction_add(reaction: discord.Reaction, user: discord.User):
|
|
if reaction.message.webhook_id != self.track_webhook_id:
|
|
return
|
|
|
|
if reaction.me:
|
|
return
|
|
|
|
if str(reaction.emoji) in self.webhook_reaction_translate.keys():
|
|
executor, kwargs = self.webhook_reaction_translate[str(reaction.emoji)]
|
|
if "requester" in kwargs:
|
|
kwargs["requester"] = user.id
|
|
|
|
|
|
async def null_reason(self, requester):
|
|
self.no_reason[requester] = "no reason"
|
|
|