Formatted files with black
This commit is contained in:
@@ -37,14 +37,10 @@ class BaseModule(ModuleABC):
|
||||
def __init__(self, dc: DiscordCollectionABC):
|
||||
ModuleABC.__init__(self, dc, FeatureFlagsEnum.base_module)
|
||||
|
||||
def configure_configuration(
|
||||
self, config: ConfigurationABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_configuration(self, config: ConfigurationABC, env: ApplicationEnvironmentABC):
|
||||
pass
|
||||
|
||||
def configure_services(
|
||||
self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC):
|
||||
services.add_transient(BaseHelperABC, BaseHelperService)
|
||||
services.add_transient(BaseReactionHandler)
|
||||
# commands
|
||||
@@ -59,22 +55,12 @@ class BaseModule(ModuleABC):
|
||||
self._dc.add_command(UserGroup)
|
||||
# events
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_command.value, BaseOnCommandEvent)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_command_error.value, BaseOnCommandErrorEvent
|
||||
)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_member_join.value, BaseOnMemberJoinEvent
|
||||
)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_member_remove.value, BaseOnMemberRemoveEvent
|
||||
)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_command_error.value, BaseOnCommandErrorEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_member_join.value, BaseOnMemberJoinEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_member_remove.value, BaseOnMemberRemoveEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_message.value, BaseOnMessageEvent)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_message_delete.value, BaseOnMessageDeleteEvent
|
||||
)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_raw_reaction_add.value, BaseOnRawReactionAddEvent
|
||||
)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_message_delete.value, BaseOnMessageDeleteEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_raw_reaction_add.value, BaseOnRawReactionAddEvent)
|
||||
self._dc.add_event(
|
||||
DiscordEventTypesEnum.on_raw_reaction_remove.value,
|
||||
BaseOnRawReactionRemoveEvent,
|
||||
|
@@ -39,9 +39,7 @@ class AFKCommand(DiscordCommandABC):
|
||||
@CommandChecks.check_is_ready()
|
||||
async def afk(self, ctx: Context):
|
||||
self._logger.debug(__name__, f"Received command afk {ctx}")
|
||||
settings: BaseServerSettings = self._config.get_configuration(
|
||||
f"BaseServerSettings_{ctx.guild.id}"
|
||||
)
|
||||
settings: BaseServerSettings = self._config.get_configuration(f"BaseServerSettings_{ctx.guild.id}")
|
||||
|
||||
if ctx.author.voice is None or ctx.author.voice.channel is None:
|
||||
await self._message_service.send_ctx_msg(
|
||||
@@ -52,9 +50,7 @@ class AFKCommand(DiscordCommandABC):
|
||||
return
|
||||
|
||||
self._bot.loop.create_task(
|
||||
self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("modules.base.afk_command_move_message")
|
||||
)
|
||||
self._message_service.send_ctx_msg(ctx, self._t.transform("modules.base.afk_command_move_message"))
|
||||
)
|
||||
channel: VoiceChannel = ctx.guild.get_channel(settings.afk_command_channel_id)
|
||||
try:
|
||||
@@ -66,8 +62,6 @@ class AFKCommand(DiscordCommandABC):
|
||||
f"Cannot move user {ctx.author.id} to channel {ctx.channel.id}",
|
||||
e,
|
||||
)
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("common.no_permission_message")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("common.no_permission_message"))
|
||||
|
||||
self._logger.trace(__name__, f"Finished afk command")
|
||||
|
@@ -39,9 +39,7 @@ class HelpCommand(DiscordCommandABC):
|
||||
@CommandChecks.check_is_ready()
|
||||
async def help(self, ctx: Context, persistent_flag: str = None):
|
||||
self._logger.debug(__name__, f"Received command help {ctx}:{persistent_flag}")
|
||||
settings: BaseServerSettings = self._config.get_configuration(
|
||||
f"BaseServerSettings_{ctx.guild.id}"
|
||||
)
|
||||
settings: BaseServerSettings = self._config.get_configuration(f"BaseServerSettings_{ctx.guild.id}")
|
||||
is_persistent = persistent_flag == "--stay"
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx,
|
||||
@@ -52,8 +50,6 @@ class HelpCommand(DiscordCommandABC):
|
||||
self._logger.trace(__name__, f"Finished help command")
|
||||
|
||||
@help.autocomplete("persistent_flag")
|
||||
async def help_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
async def help_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
|
||||
flags = ["--stay"]
|
||||
return [app_commands.Choice(name=key, value=key) for key in flags]
|
||||
|
@@ -55,10 +55,7 @@ class InfoCommand(DiscordCommandABC):
|
||||
)
|
||||
start_time = self._config.get_configuration("Bot_StartTime")
|
||||
ontime = round(
|
||||
(
|
||||
datetime.now() - datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f")
|
||||
).total_seconds()
|
||||
/ 3600,
|
||||
(datetime.now() - datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f")).total_seconds() / 3600,
|
||||
2,
|
||||
)
|
||||
embed.add_field(
|
||||
|
@@ -56,9 +56,7 @@ class MassMoveCommand(DiscordCommandABC):
|
||||
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx,
|
||||
self._t.transform("modules.base.mass_move.moved").format(
|
||||
channel_from.mention, channel_to.mention
|
||||
),
|
||||
self._t.transform("modules.base.mass_move.moved").format(channel_from.mention, channel_to.mention),
|
||||
)
|
||||
|
||||
self._logger.trace(__name__, f"Finished mass-move command")
|
||||
|
@@ -59,16 +59,10 @@ class PingCommand(DiscordCommandABC):
|
||||
color=int("ef9d0d", 16),
|
||||
)
|
||||
server = self._servers.get_server_by_discord_id(ctx.guild.id)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(
|
||||
server.discord_server_id
|
||||
)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(server.discord_server_id)
|
||||
for server in settings.ping_urls:
|
||||
embed.add_field(
|
||||
name=server, value=f"{self._get_ping(server)} ms", inline=False
|
||||
)
|
||||
embed.add_field(name=server, value=f"{self._get_ping(server)} ms", inline=False)
|
||||
await self._message_service.send_ctx_msg(ctx, embed)
|
||||
else:
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("modules.base.pong")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("modules.base.pong"))
|
||||
self._logger.trace(__name__, f"Finished ping command")
|
||||
|
@@ -34,9 +34,7 @@ class PresenceCommand(DiscordCommandABC):
|
||||
|
||||
if text == "":
|
||||
await self._bot.change_presence(activity=None)
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("modules.base.presence.removed")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("modules.base.presence.removed"))
|
||||
return
|
||||
|
||||
if len(text) > 128:
|
||||
@@ -46,8 +44,6 @@ class PresenceCommand(DiscordCommandABC):
|
||||
return
|
||||
|
||||
await self._bot.change_presence(activity=discord.Game(name=text))
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("modules.base.presence.changed")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("modules.base.presence.changed"))
|
||||
|
||||
self._logger.trace(__name__, f"Finished presence command")
|
||||
|
@@ -41,20 +41,14 @@ class PurgeCommand(DiscordCommandABC):
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def purge(self, ctx: Context):
|
||||
self._logger.debug(__name__, f"Received command purge {ctx}")
|
||||
server_settings: ServerSettings = self._config.get_configuration(
|
||||
f"ServerSettings_{ctx.guild.id}"
|
||||
)
|
||||
server_settings: ServerSettings = self._config.get_configuration(f"ServerSettings_{ctx.guild.id}")
|
||||
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("modules.moderator.purge_message")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("modules.moderator.purge_message"))
|
||||
await asyncio.sleep(server_settings.message_delete_timer)
|
||||
try:
|
||||
await ctx.channel.purge()
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot purge channel {ctx.channel.id}", e)
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("common.bot_has_no_permission_message")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("common.bot_has_no_permission_message"))
|
||||
|
||||
self._logger.trace(__name__, f"Finished purge command")
|
||||
|
@@ -81,9 +81,7 @@ class UserGroup(DiscordCommandABC):
|
||||
member = ctx.author
|
||||
|
||||
server = self._servers.find_server_by_discord_id(ctx.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
|
||||
if atr == "xp":
|
||||
if is_remove:
|
||||
@@ -104,9 +102,7 @@ class UserGroup(DiscordCommandABC):
|
||||
type = "add" if not is_remove else "remove"
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction,
|
||||
self._t.transform(f"modules.base.user.{type}.{atr.lower()}").format(
|
||||
atr, value, member.mention
|
||||
),
|
||||
self._t.transform(f"modules.base.user.{type}.{atr.lower()}").format(atr, value, member.mention),
|
||||
)
|
||||
|
||||
@commands.hybrid_group()
|
||||
@@ -117,41 +113,25 @@ class UserGroup(DiscordCommandABC):
|
||||
@user.command()
|
||||
@commands.guild_only()
|
||||
@CommandChecks.check_is_ready()
|
||||
async def info(
|
||||
self, ctx: Context, member: Optional[discord.Member] = None, *, wait: int = None
|
||||
):
|
||||
self._logger.debug(
|
||||
__name__, f"Received command user-info {ctx}:{member},{wait}"
|
||||
)
|
||||
async def info(self, ctx: Context, member: Optional[discord.Member] = None, *, wait: int = None):
|
||||
self._logger.debug(__name__, f"Received command user-info {ctx}:{member},{wait}")
|
||||
|
||||
is_mod = self._permissions.is_member_moderator(ctx.author)
|
||||
if member is not None and not is_mod:
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("common.no_permission_message")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("common.no_permission_message"))
|
||||
return
|
||||
|
||||
if member is None or not isinstance(member, discord.Member):
|
||||
member = ctx.author
|
||||
|
||||
server = self._servers.find_server_by_discord_id(ctx.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
joins = self._user_joined_servers.get_user_joined_servers_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
joins = self._user_joined_servers.get_user_joined_servers_by_user_id(user.user_id)
|
||||
|
||||
embed = discord.Embed(
|
||||
title=member.name, description=member.name, color=int("ef9d0d", 16)
|
||||
)
|
||||
embed = discord.Embed(title=member.name, description=member.name, color=int("ef9d0d", 16))
|
||||
|
||||
embed.add_field(
|
||||
name=self._t.transform("modules.base.user.atr.id"), value=member.id
|
||||
)
|
||||
embed.add_field(
|
||||
name=self._t.transform("modules.base.user.atr.name"), value=member.name
|
||||
)
|
||||
embed.add_field(name=self._t.transform("modules.base.user.atr.id"), value=member.id)
|
||||
embed.add_field(name=self._t.transform("modules.base.user.atr.name"), value=member.name)
|
||||
embed.add_field(
|
||||
name=self._t.transform("modules.base.user.atr.discord_join"),
|
||||
value=self._date.transform(member.created_at),
|
||||
@@ -162,9 +142,7 @@ class UserGroup(DiscordCommandABC):
|
||||
value=self._date.transform(member.joined_at),
|
||||
inline=False,
|
||||
)
|
||||
embed.add_field(
|
||||
name=self._t.transform("modules.base.user.atr.xp"), value=str(user.xp)
|
||||
)
|
||||
embed.add_field(name=self._t.transform("modules.base.user.atr.xp"), value=str(user.xp))
|
||||
embed.add_field(
|
||||
name=self._t.transform("modules.base.user.atr.ontime"),
|
||||
value=str(self._client_utils.get_ontime_for_user(user)),
|
||||
@@ -210,9 +188,7 @@ class UserGroup(DiscordCommandABC):
|
||||
)
|
||||
|
||||
# send to interaction because of sensitive data
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction, embed, wait_before_delete=wait
|
||||
)
|
||||
await self._message_service.send_interaction_msg(ctx.interaction, embed, wait_before_delete=wait)
|
||||
self._logger.trace(__name__, f"Finished user-info command")
|
||||
|
||||
@user.command()
|
||||
@@ -223,18 +199,14 @@ class UserGroup(DiscordCommandABC):
|
||||
|
||||
is_mod = self._permissions.is_member_moderator(ctx.author)
|
||||
if member is not None and not is_mod:
|
||||
await self._message_service.send_ctx_msg(
|
||||
ctx, self._t.transform("common.no_permission_message")
|
||||
)
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform("common.no_permission_message"))
|
||||
return
|
||||
|
||||
if member is None or not isinstance(member, discord.Member):
|
||||
member = ctx.author
|
||||
|
||||
server = self._servers.find_server_by_discord_id(ctx.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
|
||||
if atr == "xp":
|
||||
value = str(user.xp)
|
||||
@@ -251,43 +223,31 @@ class UserGroup(DiscordCommandABC):
|
||||
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction,
|
||||
self._t.transform(f"modules.base.user.get.{atr.lower()}").format(
|
||||
member.mention, value
|
||||
),
|
||||
self._t.transform(f"modules.base.user.get.{atr.lower()}").format(member.mention, value),
|
||||
)
|
||||
|
||||
@get.autocomplete("atr")
|
||||
async def get_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
return [
|
||||
app_commands.Choice(name=value, value=key) for key, value in self._atr_list
|
||||
]
|
||||
async def get_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
|
||||
return [app_commands.Choice(name=value, value=key) for key, value in self._atr_list]
|
||||
|
||||
@user.command()
|
||||
@commands.guild_only()
|
||||
@CommandChecks.check_is_ready()
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def set(
|
||||
self, ctx: Context, atr: str, value: int, member: discord.Member = None
|
||||
):
|
||||
async def set(self, ctx: Context, atr: str, value: int, member: discord.Member = None):
|
||||
self._logger.debug(__name__, f"Received command user-set {atr} {ctx}:{member}")
|
||||
|
||||
if member is None or not isinstance(member, discord.Member):
|
||||
member = ctx.author
|
||||
|
||||
server = self._servers.find_server_by_discord_id(ctx.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
|
||||
if atr == "xp":
|
||||
try:
|
||||
user.xp = value
|
||||
except TypeError as te:
|
||||
self._logger.error(
|
||||
__name__, f"String value couldn't be converted to int", te
|
||||
)
|
||||
self._logger.error(__name__, f"String value couldn't be converted to int", te)
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction,
|
||||
self._t.transform("modules.base.user.set.error.type_error"),
|
||||
@@ -307,15 +267,11 @@ class UserGroup(DiscordCommandABC):
|
||||
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction,
|
||||
self._t.transform(f"modules.base.user.set.{atr.lower()}").format(
|
||||
member.mention, value
|
||||
),
|
||||
self._t.transform(f"modules.base.user.set.{atr.lower()}").format(member.mention, value),
|
||||
)
|
||||
|
||||
@set.autocomplete("atr")
|
||||
async def set_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
|
||||
atr_list = [("xp", self._atr_dict["xp"])]
|
||||
return [app_commands.Choice(name=value, value=key) for key, value in atr_list]
|
||||
|
||||
@@ -323,18 +279,12 @@ class UserGroup(DiscordCommandABC):
|
||||
@commands.guild_only()
|
||||
@CommandChecks.check_is_ready()
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def add(
|
||||
self, ctx: Context, atr: str, value: int, member: discord.Member = None
|
||||
):
|
||||
self._logger.debug(
|
||||
__name__, f"Received command user-add {atr}-={value} {ctx}:{member}"
|
||||
)
|
||||
async def add(self, ctx: Context, atr: str, value: int, member: discord.Member = None):
|
||||
self._logger.debug(__name__, f"Received command user-add {atr}-={value} {ctx}:{member}")
|
||||
await self._handle_atr_calc(ctx, atr, value, member)
|
||||
|
||||
@add.autocomplete("atr")
|
||||
async def set_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
|
||||
atr_list = [("xp", self._atr_dict["xp"])]
|
||||
return [app_commands.Choice(name=value, value=key) for key, value in atr_list]
|
||||
|
||||
@@ -342,18 +292,12 @@ class UserGroup(DiscordCommandABC):
|
||||
@commands.guild_only()
|
||||
@CommandChecks.check_is_ready()
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def remove(
|
||||
self, ctx: Context, atr: str, value: int, member: discord.Member = None
|
||||
):
|
||||
self._logger.debug(
|
||||
__name__, f"Received command user-remove {atr}-={value} {ctx}:{member}"
|
||||
)
|
||||
async def remove(self, ctx: Context, atr: str, value: int, member: discord.Member = None):
|
||||
self._logger.debug(__name__, f"Received command user-remove {atr}-={value} {ctx}:{member}")
|
||||
await self._handle_atr_calc(ctx, atr, value, member, is_remove=True)
|
||||
|
||||
@remove.autocomplete("atr")
|
||||
async def set_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
async def set_autocomplete(self, interaction: discord.Interaction, current: str) -> List[app_commands.Choice[str]]:
|
||||
atr_list = [("xp", self._atr_dict["xp"])]
|
||||
return [app_commands.Choice(name=value, value=key) for key, value in atr_list]
|
||||
|
||||
@@ -362,17 +306,13 @@ class UserGroup(DiscordCommandABC):
|
||||
@CommandChecks.check_is_ready()
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def reset(self, ctx: Context, atr: str, member: discord.Member = None):
|
||||
self._logger.debug(
|
||||
__name__, f"Received command user-reset {atr} {ctx}:{member}"
|
||||
)
|
||||
self._logger.debug(__name__, f"Received command user-reset {atr} {ctx}:{member}")
|
||||
|
||||
if member is None or not isinstance(member, discord.Member):
|
||||
member = ctx.author
|
||||
|
||||
server = self._servers.find_server_by_discord_id(ctx.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
|
||||
if atr == "xp":
|
||||
user.xp = 0
|
||||
@@ -381,9 +321,7 @@ class UserGroup(DiscordCommandABC):
|
||||
await self._level.check_level(member)
|
||||
|
||||
elif atr == "ontime":
|
||||
self._user_joined_voice_channel.delete_user_joined_voice_channel_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
self._user_joined_voice_channel.delete_user_joined_voice_channel_by_user_id(user.user_id)
|
||||
self._db.save_changes()
|
||||
|
||||
else:
|
||||
@@ -395,15 +333,11 @@ class UserGroup(DiscordCommandABC):
|
||||
|
||||
await self._message_service.send_interaction_msg(
|
||||
ctx.interaction,
|
||||
self._t.transform(f"modules.base.user.reset.{atr.lower()}").format(
|
||||
atr, member.mention
|
||||
),
|
||||
self._t.transform(f"modules.base.user.reset.{atr.lower()}").format(atr, member.mention),
|
||||
)
|
||||
|
||||
@reset.autocomplete("atr")
|
||||
async def reset_autocomplete(
|
||||
self, interaction: discord.Interaction, current: str
|
||||
) -> List[app_commands.Choice[str]]:
|
||||
return [
|
||||
app_commands.Choice(name=value, value=key) for key, value in self._atr_list
|
||||
]
|
||||
return [app_commands.Choice(name=value, value=key) for key, value in self._atr_list]
|
||||
|
@@ -81,9 +81,5 @@ class BaseServerSettings(ConfigurationModelABC):
|
||||
for url in settings["PingURLs"]:
|
||||
self._ping_urls.append(url)
|
||||
except Exception as e:
|
||||
Console.error(
|
||||
f"[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings"
|
||||
)
|
||||
Console.error(
|
||||
f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}"
|
||||
)
|
||||
Console.error(f"[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings")
|
||||
Console.error(f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}")
|
||||
|
@@ -27,9 +27,5 @@ class BaseSettings(ConfigurationModelABC):
|
||||
servers.append(st)
|
||||
self._servers = servers
|
||||
except Exception as e:
|
||||
Console.error(
|
||||
f"[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings"
|
||||
)
|
||||
Console.error(
|
||||
f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}"
|
||||
)
|
||||
Console.error(f"[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings")
|
||||
Console.error(f"[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}")
|
||||
|
@@ -169,9 +169,7 @@ class BaseOnCommandErrorEvent(OnCommandErrorABC):
|
||||
)
|
||||
|
||||
elif isinstance(error, commands.NotOwner):
|
||||
await self._messenger.send_ctx_msg(
|
||||
ctx, self._t.transform("common.errors.not_owner"), without_tracking=True
|
||||
)
|
||||
await self._messenger.send_ctx_msg(ctx, self._t.transform("common.errors.not_owner"), without_tracking=True)
|
||||
|
||||
elif isinstance(error, commands.MissingPermissions):
|
||||
await self._messenger.send_ctx_msg(
|
||||
@@ -263,19 +261,13 @@ class BaseOnCommandErrorEvent(OnCommandErrorABC):
|
||||
self._t.transform("common.errors.command_error"),
|
||||
without_tracking=True,
|
||||
)
|
||||
message = self._t.transform(
|
||||
"modules.base.technician_command_error_message"
|
||||
).format(
|
||||
message = self._t.transform("modules.base.technician_command_error_message").format(
|
||||
ctx.command,
|
||||
ctx.author,
|
||||
error,
|
||||
datetime.datetime.now().strftime(
|
||||
self._time_format_settings.date_time_format
|
||||
),
|
||||
datetime.datetime.now().strftime(self._time_format_settings.date_time_format),
|
||||
uid,
|
||||
)
|
||||
for t in self._bot_settings.technicians:
|
||||
member = self._bot.get_user(t)
|
||||
await self._messenger.send_dm_message(
|
||||
message, member, without_tracking=True
|
||||
)
|
||||
await self._messenger.send_dm_message(message, member, without_tracking=True)
|
||||
|
@@ -52,9 +52,7 @@ class BaseOnCommandEvent(OnCommandABC):
|
||||
self._clients.append_received_command_count(self._bot.user.id, g_id, 1)
|
||||
self._db.save_changes()
|
||||
except Exception as e:
|
||||
self._logger.error(
|
||||
__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e
|
||||
)
|
||||
self._logger.error(__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e)
|
||||
|
||||
def _handle_message_for_xp(self, message: discord.Message):
|
||||
dc_user_id = message.author.id
|
||||
@@ -66,9 +64,7 @@ class BaseOnCommandEvent(OnCommandABC):
|
||||
|
||||
user: Optional[User] = None
|
||||
try:
|
||||
user = self._users.get_user_by_discord_id_and_server_id(
|
||||
dc_user_id, server.server_id
|
||||
)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(dc_user_id, server.server_id)
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {dc_user_id}", e)
|
||||
return
|
||||
@@ -83,15 +79,11 @@ class BaseOnCommandEvent(OnCommandABC):
|
||||
self._users.update_user(user)
|
||||
self._db.save_changes()
|
||||
|
||||
self._logger.debug(
|
||||
__name__, f"User {user} sent message. xp: from {old_xp} to {user.xp}"
|
||||
)
|
||||
self._logger.debug(__name__, f"User {user} sent message. xp: from {old_xp} to {user.xp}")
|
||||
|
||||
async def on_command(self, ctx: Context):
|
||||
self._logger.debug(__name__, f"Module {type(self)} started")
|
||||
self._logger.info(
|
||||
__name__, f"Received command: {ctx.command} from {ctx.channel}"
|
||||
)
|
||||
self._logger.info(__name__, f"Received command: {ctx.command} from {ctx.channel}")
|
||||
if ctx is None or ctx.guild is None:
|
||||
return
|
||||
self._append_received_command_count(ctx.guild.id)
|
||||
|
@@ -63,9 +63,7 @@ class BaseOnMemberJoinEvent(OnMemberJoinABC):
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {member.id}", e)
|
||||
|
||||
async def _add_if_not_exists_user_async(
|
||||
self, member: Union[discord.User, discord.Member]
|
||||
):
|
||||
async def _add_if_not_exists_user_async(self, member: Union[discord.User, discord.Member]):
|
||||
self._logger.debug(__name__, f"Check if user exists {member}")
|
||||
settings: BaseServerSettings = self._base_helper.get_config(member.guild.id)
|
||||
await self._messenger.send_dm_message(
|
||||
@@ -75,41 +73,29 @@ class BaseOnMemberJoinEvent(OnMemberJoinABC):
|
||||
|
||||
for admin in self._permission_service.get_admins(member.guild.id):
|
||||
await self._messenger.send_dm_message(
|
||||
self._t.transform("modules.base.welcome_message_for_team").format(
|
||||
member.mention
|
||||
),
|
||||
self._t.transform("modules.base.welcome_message_for_team").format(member.mention),
|
||||
admin,
|
||||
)
|
||||
|
||||
for moderator in self._permission_service.get_moderators(member.guild.id):
|
||||
await self._messenger.send_dm_message(
|
||||
self._t.transform("modules.base.welcome_message_for_team").format(
|
||||
member.mention
|
||||
),
|
||||
self._t.transform("modules.base.welcome_message_for_team").format(member.mention),
|
||||
moderator,
|
||||
)
|
||||
|
||||
try:
|
||||
server = self._servers.get_server_by_discord_id(member.guild.id)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
if user is not None:
|
||||
self._user_joins.add_user_joined_server(
|
||||
UserJoinedServer(user, datetime.now())
|
||||
)
|
||||
self._user_joins.add_user_joined_server(UserJoinedServer(user, datetime.now()))
|
||||
self._db.save_changes()
|
||||
return
|
||||
|
||||
self._logger.debug(__name__, f"Add user: {member.id}")
|
||||
self._users.add_user(User(member.id, 0, server))
|
||||
self._db.save_changes()
|
||||
user = self._users.get_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
self._user_joins.add_user_joined_server(
|
||||
UserJoinedServer(user, datetime.now())
|
||||
)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
self._user_joins.add_user_joined_server(UserJoinedServer(user, datetime.now()))
|
||||
self._db.save_changes()
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {member.id}", e)
|
||||
|
@@ -42,23 +42,17 @@ class BaseOnMemberRemoveEvent(OnMemberRemoveABC):
|
||||
async def _remove_user(self, member: Union[discord.User, discord.Member]):
|
||||
self._logger.debug(__name__, f"Remove user {member}")
|
||||
settings: BaseServerSettings = self._base_helper.get_config(member.guild.id)
|
||||
await self._messenger.send_dm_message(
|
||||
self._t.transform("modules.base.goodbye_message"), member
|
||||
)
|
||||
await self._messenger.send_dm_message(self._t.transform("modules.base.goodbye_message"), member)
|
||||
|
||||
try:
|
||||
server = self._servers.get_server_by_discord_id(member.guild.id)
|
||||
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
if user is None:
|
||||
self._logger.error(__name__, f"Cannot find user {member}")
|
||||
return
|
||||
|
||||
join = self._user_joins.get_active_user_joined_server_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
join = self._user_joins.get_active_user_joined_server_by_user_id(user.user_id)
|
||||
join.leaved_on = datetime.now()
|
||||
self._user_joins.update_user_joined_server(join)
|
||||
self._db.save_changes()
|
||||
|
@@ -40,9 +40,7 @@ class BaseOnMessageDeleteEvent(OnMessageDeleteABC):
|
||||
self._clients.append_deleted_message_count(self._bot.user.id, g_id, 1)
|
||||
self._db.save_changes()
|
||||
except Exception as e:
|
||||
self._logger.error(
|
||||
__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e
|
||||
)
|
||||
self._logger.error(__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e)
|
||||
|
||||
def _handle_message_delete(self, message: discord.Message):
|
||||
dc_user_id = message.author.id
|
||||
@@ -54,9 +52,7 @@ class BaseOnMessageDeleteEvent(OnMessageDeleteABC):
|
||||
|
||||
user: Optional[User] = None
|
||||
try:
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
dc_user_id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(dc_user_id, server.server_id)
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {dc_user_id}", e)
|
||||
return
|
||||
@@ -81,9 +77,7 @@ class BaseOnMessageDeleteEvent(OnMessageDeleteABC):
|
||||
if message is None or message.guild is None:
|
||||
return
|
||||
|
||||
self._logger.info(
|
||||
__name__, f"Received message: {LogMessageHelper.get_log_string(message)}"
|
||||
)
|
||||
self._logger.info(__name__, f"Received message: {LogMessageHelper.get_log_string(message)}")
|
||||
self._append_deleted_message_count(message.guild.id)
|
||||
|
||||
if not message.author.bot:
|
||||
|
@@ -45,9 +45,7 @@ class BaseOnMessageEvent(OnMessageABC):
|
||||
self._clients.append_received_message_count(self._bot.user.id, g_id, 1)
|
||||
self._db.save_changes()
|
||||
except Exception as e:
|
||||
self._logger.error(
|
||||
__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e
|
||||
)
|
||||
self._logger.error(__name__, f"Cannot edit client {self._bot.user.id}@{g_id}", e)
|
||||
|
||||
def _handle_message_for_xp(self, message: discord.Message):
|
||||
dc_user_id = message.author.id
|
||||
@@ -59,9 +57,7 @@ class BaseOnMessageEvent(OnMessageABC):
|
||||
|
||||
user: Optional[User] = None
|
||||
try:
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
dc_user_id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(dc_user_id, server.server_id)
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {dc_user_id}", e)
|
||||
return
|
||||
@@ -81,9 +77,7 @@ class BaseOnMessageEvent(OnMessageABC):
|
||||
self._users.update_user(user)
|
||||
self._db.save_changes()
|
||||
|
||||
self._logger.debug(
|
||||
__name__, f"User {user} sent message. xp: from {old_xp} to {user.xp}"
|
||||
)
|
||||
self._logger.debug(__name__, f"User {user} sent message. xp: from {old_xp} to {user.xp}")
|
||||
|
||||
@EventChecks.check_is_ready()
|
||||
async def on_message(self, message: discord.Message):
|
||||
@@ -91,9 +85,7 @@ class BaseOnMessageEvent(OnMessageABC):
|
||||
if message is None or message.guild is None:
|
||||
return
|
||||
|
||||
self._logger.info(
|
||||
__name__, f"Received message: {LogMessageHelper.get_log_string(message)}"
|
||||
)
|
||||
self._logger.info(__name__, f"Received message: {LogMessageHelper.get_log_string(message)}")
|
||||
self._append_received_message_count(message.guild.id)
|
||||
|
||||
if not message.author.bot:
|
||||
|
@@ -51,14 +51,10 @@ class BaseOnVoiceStateUpdateEvent(OnVoiceStateUpdateABC):
|
||||
|
||||
self._logger.info(__name__, f"Module {type(self)} loaded")
|
||||
|
||||
def _update_voice_state(
|
||||
self, joined: bool, dc_user_id: int, dc_channel_id: int, server: Server
|
||||
):
|
||||
def _update_voice_state(self, joined: bool, dc_user_id: int, dc_channel_id: int, server: Server):
|
||||
user: Optional[User] = None
|
||||
try:
|
||||
user = self._users.get_user_by_discord_id_and_server_id(
|
||||
dc_user_id, server.server_id
|
||||
)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(dc_user_id, server.server_id)
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get user {dc_user_id}", e)
|
||||
return
|
||||
@@ -74,13 +70,9 @@ class BaseOnVoiceStateUpdateEvent(OnVoiceStateUpdateABC):
|
||||
self._db.save_changes()
|
||||
return
|
||||
|
||||
settings: BaseServerSettings = self._base_helper.get_config(
|
||||
server.discord_server_id
|
||||
)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(server.discord_server_id)
|
||||
|
||||
join = self._user_joins_vc.get_active_user_joined_voice_channel_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
join = self._user_joins_vc.get_active_user_joined_voice_channel_by_user_id(user.user_id)
|
||||
join.leaved_on = datetime.now()
|
||||
|
||||
# ontime as hours
|
||||
@@ -136,36 +128,18 @@ class BaseOnVoiceStateUpdateEvent(OnVoiceStateUpdateABC):
|
||||
# channel to channel
|
||||
elif before.channel is not None and after.channel is not None:
|
||||
# joined
|
||||
if (
|
||||
before.channel.id in settings.afk_channel_ids
|
||||
and after.channel.id not in settings.afk_channel_ids
|
||||
):
|
||||
self._logger.trace(
|
||||
__name__, f"User {member.id} joined {after.channel}"
|
||||
)
|
||||
if before.channel.id in settings.afk_channel_ids and after.channel.id not in settings.afk_channel_ids:
|
||||
self._logger.trace(__name__, f"User {member.id} joined {after.channel}")
|
||||
self._update_voice_state(True, member.id, after.channel.id, server)
|
||||
|
||||
# left
|
||||
elif (
|
||||
after.channel.id in settings.afk_channel_ids
|
||||
and before.channel.id not in settings.afk_channel_ids
|
||||
):
|
||||
self._logger.trace(
|
||||
__name__, f"User {member.id} left {before.channel}"
|
||||
)
|
||||
self._update_voice_state(
|
||||
False, member.id, before.channel.id, server
|
||||
)
|
||||
elif after.channel.id in settings.afk_channel_ids and before.channel.id not in settings.afk_channel_ids:
|
||||
self._logger.trace(__name__, f"User {member.id} left {before.channel}")
|
||||
self._update_voice_state(False, member.id, before.channel.id, server)
|
||||
|
||||
else:
|
||||
self._logger.trace(
|
||||
__name__, f"User {member.id} switched to {after.channel}"
|
||||
)
|
||||
self._update_voice_state(
|
||||
False, member.id, before.channel.id, server
|
||||
)
|
||||
self._logger.trace(__name__, f"User {member.id} switched to {after.channel}")
|
||||
self._update_voice_state(False, member.id, before.channel.id, server)
|
||||
self._update_voice_state(True, member.id, after.channel.id, server)
|
||||
except Exception as e:
|
||||
self._logger.error(
|
||||
__name__, f"Cannot handle voice state for user {member.id}", e
|
||||
)
|
||||
self._logger.error(__name__, f"Cannot handle voice state for user {member.id}", e)
|
||||
|
@@ -43,9 +43,7 @@ class BaseOnVoiceStateUpdateEventHelpChannel(OnVoiceStateUpdateABC):
|
||||
):
|
||||
self._logger.debug(__name__, f"Module {type(self)} started")
|
||||
server = self._servers.get_server_by_discord_id(member.guild.id)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(
|
||||
server.discord_server_id
|
||||
)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(server.discord_server_id)
|
||||
if after.channel is None or after.channel.id != settings.help_voice_channel_id:
|
||||
return
|
||||
|
||||
@@ -55,9 +53,7 @@ class BaseOnVoiceStateUpdateEventHelpChannel(OnVoiceStateUpdateABC):
|
||||
]
|
||||
for a in mods:
|
||||
await self._message_service.send_dm_message(
|
||||
self._t.transform(
|
||||
"modules.base.member_joined_help_voice_channel"
|
||||
).format(member.mention),
|
||||
self._t.transform("modules.base.member_joined_help_voice_channel").format(member.mention),
|
||||
a,
|
||||
)
|
||||
|
||||
|
@@ -38,9 +38,7 @@ class BaseReactionHandler:
|
||||
guild = self._bot.get_guild(payload.guild_id)
|
||||
member = guild.get_member(payload.user_id)
|
||||
if member is None:
|
||||
self._logger.warn(
|
||||
__name__, f"User {payload.user_id} in {guild.name} not found - skipping"
|
||||
)
|
||||
self._logger.warn(__name__, f"User {payload.user_id} in {guild.name} not found - skipping")
|
||||
return
|
||||
|
||||
try:
|
||||
@@ -55,12 +53,8 @@ class BaseReactionHandler:
|
||||
f"{log_msg} to message {LogMessageHelper.get_log_string(message)}",
|
||||
)
|
||||
except Exception as e:
|
||||
self._logger.error(
|
||||
__name__, f"Getting message for reaction logging failed", e
|
||||
)
|
||||
self._logger.info(
|
||||
__name__, f"{log_msg} to message {payload.message_id}"
|
||||
)
|
||||
self._logger.error(__name__, f"Getting message for reaction logging failed", e)
|
||||
self._logger.info(__name__, f"{log_msg} to message {payload.message_id}")
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Reaction logging failed", e)
|
||||
|
||||
@@ -68,9 +62,7 @@ class BaseReactionHandler:
|
||||
return
|
||||
|
||||
server = self._servers.get_server_by_discord_id(guild.id)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
settings: BaseServerSettings = self._base_helper.get_config(guild.id)
|
||||
|
||||
if r_type == "add":
|
||||
|
Reference in New Issue
Block a user