Improved message service & added logic to send login message

This commit is contained in:
2021-11-16 20:37:51 +01:00
parent c254114987
commit 5e1caf713c
4 changed files with 57 additions and 17 deletions

View File

@@ -11,6 +11,8 @@ class ServerSettings(ConfigurationModelABC):
self._id: int = 0
self._message_delete_timer: int = 0
self._login_message_channel_id: int = 0
self._login_message: str = ''
@property
def id(self) -> str:
@@ -19,11 +21,21 @@ class ServerSettings(ConfigurationModelABC):
@property
def message_delete_timer(self) -> int:
return self._message_delete_timer
@property
def login_message_channel_id(self) -> int:
return self._login_message_channel_id
@property
def login_message(self) -> str:
return self._login_message
def from_dict(self, settings: dict):
try:
self._id = int(settings['Id'])
self._message_delete_timer = int(settings['MessageDeleteTimer'])
self._login_message_channel_id = int(settings['LoginMessageChannelId'])
self._login_message = settings['LoginMessage']
except Exception as e:
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in settings')
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')

View File

@@ -19,14 +19,14 @@ class MessageService(MessageServiceABC):
self._logger = logger
self._bot = bot
async def delete_message(self, messages: List[discord.Message]):
async def delete_messages(self, messages: List[discord.Message]):
self._logger.debug(__name__, f'Try to delete {messages.count()} messages')
for message in messages:
await self.delete_message(message)
self._logger.debug(__name__, 'Deleting messages finished')
async def delete_message(self, message: discord.Message):
server_st: ServerSettings = self._config.get_configuration(f'DSERVER_{message.g.id}')
server_st: ServerSettings = self._config.get_configuration(f'DSERVER_{message.guild.id}')
await asyncio.sleep(server_st.message_delete_timer)
self._logger.debug(__name__, f'Try to delete message: {message.content}')
try:
@@ -34,7 +34,7 @@ class MessageService(MessageServiceABC):
except Exception as e:
self._logger.error(__name__, f'Deleting message failed', e)
else:
self._logger.debug(__name__, f'Deleted message {message.content}')
self._logger.info(__name__, f'Deleted message {message.content}')
async def send_channel_message(self, channel: discord.TextChannel, message: str):
self._logger.debug(__name__, f'Try to send message {message} to channel {channel.id}')
@@ -43,7 +43,7 @@ class MessageService(MessageServiceABC):
except Exception as e:
self._logger.error(__name__, f'Send message to channel {channel.id} failed', e)
else:
self._logger.debug(__name__, f'Send message to channel {channel.id}')
self._logger.info(__name__, f'Sent message to channel {channel.id}')
async def send_dm_message(self, message: str, receiver: Union[discord.User, discord.Member]):
self._logger.debug(__name__, f'Try to send message {message} to user {receiver.id}')
@@ -52,7 +52,7 @@ class MessageService(MessageServiceABC):
except Exception as e:
self._logger.error(__name__, f'Send message to user {receiver.id} failed', e)
else:
self._logger.debug(__name__, f'Send message to user {receiver.id}')
self._logger.info(__name__, f'Sent message to user {receiver.id}')
async def send_ctx_msg(self, ctx: Context, message: Union[str, discord.File]):
if ctx is None:
@@ -69,4 +69,4 @@ class MessageService(MessageServiceABC):
except Exception as e:
self._logger.error(__name__, f'Send message to channel {ctx.channel.id} failed', e)
else:
self._logger.debug(__name__, f'Send message to channel {ctx.channel.id}')
self._logger.info(__name__, f'Sent message to channel {ctx.channel.id}')