Compare commits
	
		
			5 Commits
		
	
	
		
			5c820214a1
			...
			a869ee4780
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a869ee4780 | |||
| 5776854494 | |||
| bff435d51e | |||
| 0f67bf467a | |||
| 2c7e5edbd7 | 
| @@ -151,6 +151,18 @@ | ||||
|       } | ||||
|     }, | ||||
|     "base": { | ||||
|       "complaints": { | ||||
|         "title": "Beschwerde einreichen", | ||||
|         "label": "Beschwerde", | ||||
|         "message": "{} hat eine Beschwerde eingereicht:\n{}", | ||||
|         "response": "Danke für deine Beschwerde" | ||||
|       }, | ||||
|       "bug": { | ||||
|         "title": "Bug melden", | ||||
|         "label": "Bug", | ||||
|         "message": "{} meldet einen Bug:\n{}", | ||||
|         "response": "Danke für dein Feedback :D" | ||||
|       }, | ||||
|       "afk_command_channel_missing_message": "Zu unfähig einem Sprachkanal beizutreten?", | ||||
|       "afk_command_move_message": "Ich verschiebe dich ja schon... (◔_◔)", | ||||
|       "game_server": { | ||||
|   | ||||
| @@ -16,6 +16,7 @@ from modules.base.command.ping_command import PingCommand | ||||
| from modules.base.command.presence_command import PresenceCommand | ||||
| from modules.base.command.purge_command import PurgeCommand | ||||
| from modules.base.command.register_group import RegisterGroup | ||||
| from modules.base.command.submit_group import SubmitGroup | ||||
| from modules.base.command.unregister_group import UnregisterGroup | ||||
| from modules.base.command.user_group import UserGroup | ||||
| from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent | ||||
| @@ -36,6 +37,8 @@ from modules.base.events.base_on_voice_state_update_event_help_channel import ( | ||||
| from modules.base.events.base_on_voice_state_update_event_scheduled_event_bonus import ( | ||||
|     BaseOnVoiceStateUpdateEventScheduledEventBonus, | ||||
| ) | ||||
| from modules.base.forms.bug_report_form import BugReportForm | ||||
| from modules.base.forms.complaint_form import ComplaintForm | ||||
| from modules.base.helper.base_reaction_handler import BaseReactionHandler | ||||
| from modules.base.service.base_helper_service import BaseHelperService | ||||
| from modules.base.service.event_service import EventService | ||||
| @@ -55,8 +58,13 @@ class BaseModule(ModuleABC): | ||||
|         services.add_singleton(EventService) | ||||
|         services.add_transient(UserWarningsService) | ||||
|  | ||||
|         # forms | ||||
|         services.add_singleton(BugReportForm) | ||||
|         services.add_singleton(ComplaintForm) | ||||
|  | ||||
|         # commands | ||||
|         self._dc.add_command(AFKCommand) | ||||
|         self._dc.add_command(SubmitGroup) | ||||
|         self._dc.add_command(HelpCommand) | ||||
|         self._dc.add_command(InfoCommand) | ||||
|         self._dc.add_command(MassMoveCommand) | ||||
|   | ||||
							
								
								
									
										43
									
								
								kdb-bot/src/modules/base/command/submit_group.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								kdb-bot/src/modules/base/command/submit_group.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| from cpl_core.logging import LoggerABC | ||||
| from cpl_discord.command import DiscordCommandABC | ||||
| from cpl_discord.service import DiscordBotServiceABC | ||||
| from discord.ext import commands | ||||
| from discord.ext.commands import Context | ||||
|  | ||||
| from bot_core.helper.command_checks import CommandChecks | ||||
| from modules.base.forms.bug_report_form import BugReportForm | ||||
| from modules.base.forms.complaint_form import ComplaintForm | ||||
|  | ||||
|  | ||||
| class SubmitGroup(DiscordCommandABC): | ||||
|     def __init__( | ||||
|         self, logger: LoggerABC, bot: DiscordBotServiceABC, complaint_form: ComplaintForm, bug_form: BugReportForm | ||||
|     ): | ||||
|         DiscordCommandABC.__init__(self) | ||||
|  | ||||
|         self._logger = logger | ||||
|         self._bot = bot | ||||
|         self._complaint_form = complaint_form | ||||
|         self._bug_form = bug_form | ||||
|  | ||||
|     @commands.hybrid_group() | ||||
|     @commands.guild_only() | ||||
|     async def submit(self, ctx: Context): | ||||
|         pass | ||||
|  | ||||
|     @submit.command() | ||||
|     @commands.guild_only() | ||||
|     @CommandChecks.check_is_ready() | ||||
|     async def complaint(self, ctx: Context): | ||||
|         self._logger.debug(__name__, f"Received command complaint {ctx}") | ||||
|         await ctx.interaction.response.send_modal(self._complaint_form) | ||||
|         self._logger.trace(__name__, f"Finished command complaint {ctx}") | ||||
|         pass | ||||
|  | ||||
|     @submit.command() | ||||
|     @commands.guild_only() | ||||
|     @CommandChecks.check_is_ready() | ||||
|     async def bug_report(self, ctx: Context): | ||||
|         self._logger.debug(__name__, f"Received command complaint {ctx}") | ||||
|         await ctx.interaction.response.send_modal(self._bug_form) | ||||
|         self._logger.trace(__name__, f"Finished command complaint {ctx}") | ||||
							
								
								
									
										1
									
								
								kdb-bot/src/modules/base/forms/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								kdb-bot/src/modules/base/forms/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| # imports | ||||
							
								
								
									
										50
									
								
								kdb-bot/src/modules/base/forms/bug_report_form.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								kdb-bot/src/modules/base/forms/bug_report_form.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| import discord | ||||
| from cpl_core.database.context import DatabaseContextABC | ||||
| from cpl_discord.service import DiscordBotServiceABC | ||||
| from cpl_translation import TranslatePipe | ||||
| from discord import ui, TextStyle | ||||
|  | ||||
| from bot_core.abc.message_service_abc import MessageServiceABC | ||||
| from bot_core.configuration.bot_settings import BotSettings | ||||
| from bot_core.logging.command_logger import CommandLogger | ||||
| from modules.base.service.base_helper_service import BaseHelperService | ||||
|  | ||||
|  | ||||
| class BugReportForm(ui.Modal): | ||||
|     description = ui.TextInput(label="Report a bug", required=True, style=TextStyle.long) | ||||
|  | ||||
|     def __init__( | ||||
|         self, | ||||
|         bot_settings: BotSettings, | ||||
|         bot: DiscordBotServiceABC, | ||||
|         db: DatabaseContextABC, | ||||
|         logger: CommandLogger, | ||||
|         message_service: MessageServiceABC, | ||||
|         base_helper: BaseHelperService, | ||||
|         t: TranslatePipe, | ||||
|     ): | ||||
|         ui.Modal.__init__(self, title=t.transform("modules.base.bug.title")) | ||||
|  | ||||
|         self._bot_settings = bot_settings | ||||
|         self._bot = bot | ||||
|         self._db = db | ||||
|         self._message_service = message_service | ||||
|         self._logger = logger | ||||
|         self._base_helper = base_helper | ||||
|         self._t = t | ||||
|  | ||||
|         self.description.label = t.transform("modules.base.bug.label") | ||||
|  | ||||
|     async def on_submit(self, interaction: discord.Interaction): | ||||
|         self._logger.debug(__name__, f"Started bug report form") | ||||
|  | ||||
|         for t in self._bot_settings.technicians: | ||||
|             member = self._bot.get_user(t) | ||||
|             await self._message_service.send_dm_message( | ||||
|                 self._t.transform("modules.base.bug.message").format(interaction.user.mention, self.description.value), | ||||
|                 member, | ||||
|                 without_tracking=True, | ||||
|             ) | ||||
|  | ||||
|         await self._message_service.send_interaction_msg(interaction, self._t.transform("modules.base.bug.response")) | ||||
|         self._logger.trace(__name__, f"Finished bug report form") | ||||
							
								
								
									
										47
									
								
								kdb-bot/src/modules/base/forms/complaint_form.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								kdb-bot/src/modules/base/forms/complaint_form.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| import discord | ||||
| from cpl_core.database.context import DatabaseContextABC | ||||
| from cpl_translation import TranslatePipe | ||||
| from discord import ui, TextStyle | ||||
|  | ||||
| from bot_core.abc.message_service_abc import MessageServiceABC | ||||
| from bot_core.logging.command_logger import CommandLogger | ||||
| from modules.base.configuration.base_server_settings import BaseServerSettings | ||||
| from modules.base.service.base_helper_service import BaseHelperService | ||||
|  | ||||
|  | ||||
| class ComplaintForm(ui.Modal): | ||||
|     description = ui.TextInput(label="Complain about something", required=True, style=TextStyle.long) | ||||
|  | ||||
|     def __init__( | ||||
|         self, | ||||
|         db: DatabaseContextABC, | ||||
|         logger: CommandLogger, | ||||
|         message_service: MessageServiceABC, | ||||
|         base_helper: BaseHelperService, | ||||
|         t: TranslatePipe, | ||||
|     ): | ||||
|         ui.Modal.__init__(self, title=t.transform("modules.base.complaints.title")) | ||||
|  | ||||
|         self._db = db | ||||
|         self._message_service = message_service | ||||
|         self._logger = logger | ||||
|         self._base_helper = base_helper | ||||
|         self._t = t | ||||
|  | ||||
|         self.description.label = t.transform("modules.base.complaints.label") | ||||
|  | ||||
|     async def on_submit(self, interaction: discord.Interaction): | ||||
|         self._logger.debug(__name__, f"Started complaint command form") | ||||
|         settings: BaseServerSettings = self._base_helper.get_config(interaction.guild.id) | ||||
|         channel = interaction.guild.get_channel(settings.team_channel_id) | ||||
|         await self._message_service.send_channel_message( | ||||
|             channel, | ||||
|             self._t.transform("modules.base.complaints.message").format( | ||||
|                 interaction.user.mention, self.description.value | ||||
|             ), | ||||
|             is_persistent=True, | ||||
|         ) | ||||
|         await self._message_service.send_interaction_msg( | ||||
|             interaction, self._t.transform("modules.base.complaints.response") | ||||
|         ) | ||||
|         self._logger.trace(__name__, f"Finished complaint command form") | ||||
		Reference in New Issue
	
	Block a user