v1.0.0 #15
@@ -1,4 +1,5 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from logging import Logger
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Dict, Any
|
from typing import List, Dict, Any
|
||||||
from zoneinfo import ZoneInfo
|
from zoneinfo import ZoneInfo
|
||||||
@@ -20,7 +21,9 @@ from classes import PycordUser, PycordEvent, PycordGuild
|
|||||||
from classes.errors import GuildNotFoundError
|
from classes.errors import GuildNotFoundError
|
||||||
from classes.pycord_bot import PycordBot
|
from classes.pycord_bot import PycordBot
|
||||||
from modules.database import col_users
|
from modules.database import col_users
|
||||||
from modules.utils import is_operation_confirmed
|
from modules.utils import is_operation_confirmed, get_logger
|
||||||
|
|
||||||
|
logger: Logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class CogUser(Cog):
|
class CogUser(Cog):
|
||||||
@@ -35,26 +38,17 @@ class CogUser(Cog):
|
|||||||
description_localizations=in_every_locale("description", "commands", "user"),
|
description_localizations=in_every_locale("description", "commands", "user"),
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO Implement the command
|
|
||||||
# @command_group.command(
|
|
||||||
# name="create_channel",
|
|
||||||
# description="Create channel for the user",
|
|
||||||
# )
|
|
||||||
# @option(
|
|
||||||
# "user",
|
|
||||||
# description="Selected user",
|
|
||||||
# )
|
|
||||||
# async def command_user_create_channel(self, ctx: ApplicationContext, user: User) -> None:
|
|
||||||
# await ctx.respond("Not implemented.")
|
|
||||||
|
|
||||||
# TODO Implement the command
|
|
||||||
@command_group.command(
|
@command_group.command(
|
||||||
name="update_channels",
|
name="update_channels",
|
||||||
description="Update user's event channels",
|
description=_("description", "commands", "user_update_channels"),
|
||||||
|
description_localizations=in_every_locale("description", "commands", "user_update_channels"),
|
||||||
)
|
)
|
||||||
@option(
|
@option(
|
||||||
"user",
|
"user",
|
||||||
description="Selected user",
|
description=_("description", "commands", "user_update_channels", "options", "user"),
|
||||||
|
description_localizations=in_every_locale(
|
||||||
|
"description", "commands", "user_update_channels", "options", "user"
|
||||||
|
),
|
||||||
)
|
)
|
||||||
async def command_user_update_channels(self, ctx: ApplicationContext, user: User) -> None:
|
async def command_user_update_channels(self, ctx: ApplicationContext, user: User) -> None:
|
||||||
try:
|
try:
|
||||||
@@ -101,6 +95,23 @@ class CogUser(Cog):
|
|||||||
self.bot, ctx.guild, guild, event, cache=self.bot.cache
|
self.bot, ctx.guild, guild, event, cache=self.bot.cache
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
await self.bot.notify_admins(
|
||||||
|
ctx.guild,
|
||||||
|
guild,
|
||||||
|
self.bot._("admin_user_channel_fixed", "messages", locale=ctx.locale).format(
|
||||||
|
display_name=user.display_name, mention=user.mention, event_name=event.name
|
||||||
|
),
|
||||||
|
)
|
||||||
|
except Exception as exc:
|
||||||
|
logger.error(
|
||||||
|
"Could not notify admins that user %s got their event channel for %s fixed due to: %s",
|
||||||
|
user.id,
|
||||||
|
event._id,
|
||||||
|
exc,
|
||||||
|
exc_info=exc,
|
||||||
|
)
|
||||||
|
|
||||||
if channel is None:
|
if channel is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -123,7 +134,23 @@ class CogUser(Cog):
|
|||||||
|
|
||||||
await self.bot.send_stage_question(channel, event, await self.bot.find_event_stage(stage_id))
|
await self.bot.send_stage_question(channel, event, await self.bot.find_event_stage(stage_id))
|
||||||
|
|
||||||
await ctx.respond("Channels were updated.")
|
await ctx.respond(
|
||||||
|
self.bot._("user_channels_updated", "messages", locale=ctx.locale).format(
|
||||||
|
display_name=user.display_name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# TODO Implement the command
|
||||||
|
# @command_group.command(
|
||||||
|
# name="create_channel",
|
||||||
|
# description="Create channel for the user",
|
||||||
|
# )
|
||||||
|
# @option(
|
||||||
|
# "user",
|
||||||
|
# description="Selected user",
|
||||||
|
# )
|
||||||
|
# async def command_user_create_channel(self, ctx: ApplicationContext, user: User) -> None:
|
||||||
|
# await ctx.respond("Not implemented.")
|
||||||
|
|
||||||
# TODO Implement the command
|
# TODO Implement the command
|
||||||
# @command_group.command(
|
# @command_group.command(
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
"admin_user_channel_creation_failed": "Event channel could not be created for user **{display_name}** ({mention}) and event **{event_name}**.",
|
"admin_user_channel_creation_failed": "Event channel could not be created for user **{display_name}** ({mention}) and event **{event_name}**.",
|
||||||
"admin_user_completed_event": "User **{display_name}** ({mention}) has completed the event **{event_name}**",
|
"admin_user_completed_event": "User **{display_name}** ({mention}) has completed the event **{event_name}**",
|
||||||
"admin_user_completed_stage": "User **{display_name}** ({mention}) has completed the stage {stage_sequence} of the event **{event_name}**.",
|
"admin_user_completed_stage": "User **{display_name}** ({mention}) has completed the stage {stage_sequence} of the event **{event_name}**.",
|
||||||
|
"admin_user_channel_fixed": "Fixed event channel of user **{display_name}** ({mention}) for the event **{event_name}**.",
|
||||||
"config_reset": "Configuration has been reset. You can update it using `/config set`, otherwise no events can be held.",
|
"config_reset": "Configuration has been reset. You can update it using `/config set`, otherwise no events can be held.",
|
||||||
"config_set": "Configuration has been updated. You can review it anytime using `/config show`.",
|
"config_set": "Configuration has been updated. You can review it anytime using `/config show`.",
|
||||||
"config_show": "**Guild config**\n\nChannel: <#{channel_id}>\nCategory: <#{category_id}>\nTimezone: `{timezone}`",
|
"config_show": "**Guild config**\n\nChannel: <#{channel_id}>\nCategory: <#{category_id}>\nTimezone: `{timezone}`",
|
||||||
@@ -28,7 +29,8 @@
|
|||||||
"user_jail_already_jailed": "User **{display_name}** is already jailed.",
|
"user_jail_already_jailed": "User **{display_name}** is already jailed.",
|
||||||
"user_jail_successful": "User **{display_name}** has been jailed and cannot interact with events anymore.",
|
"user_jail_successful": "User **{display_name}** has been jailed and cannot interact with events anymore.",
|
||||||
"user_unjail_not_jailed": "User **{display_name}** is not jailed.",
|
"user_unjail_not_jailed": "User **{display_name}** is not jailed.",
|
||||||
"user_unjail_successful": "User **{display_name}** has been unjailed and can interact with events again."
|
"user_unjail_successful": "User **{display_name}** has been unjailed and can interact with events again.",
|
||||||
|
"user_channels_updated": "Event channels of the user **{display_name}** were updated."
|
||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
"config": {
|
"config": {
|
||||||
@@ -215,9 +217,13 @@
|
|||||||
"description": "Create channel for the user",
|
"description": "Create channel for the user",
|
||||||
"options": {}
|
"options": {}
|
||||||
},
|
},
|
||||||
"user_update_channel": {
|
"user_update_channels": {
|
||||||
"description": "Update user's channel",
|
"description": "Update user's event channels",
|
||||||
"options": {}
|
"options": {
|
||||||
|
"user": {
|
||||||
|
"description": "Selected user"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"user_delete_channel": {
|
"user_delete_channel": {
|
||||||
"description": "Delete user's channel",
|
"description": "Delete user's channel",
|
||||||
|
Reference in New Issue
Block a user