Improved message service & added logic to send login message
This commit is contained in:
@@ -4,17 +4,30 @@ from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.console import Console
|
||||
from cpl_core.logging import LoggerABC, LoggingLevelEnum, LoggingSettings
|
||||
from discord import guild
|
||||
|
||||
from gismo_core.abc.bot_service_abc import BotServiceABC
|
||||
from gismo_core.abc.message_service_abc import MessageServiceABC
|
||||
from gismo_core.configuration.server_settings import ServerSettings
|
||||
from modules_core.abc.module_abc import ModuleABC
|
||||
|
||||
|
||||
class BootLog(ModuleABC):
|
||||
|
||||
def __init__(self, config: ConfigurationABC, logging_st: LoggingSettings, logger: LoggerABC, bot: BotServiceABC):
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
logging_st: LoggingSettings,
|
||||
logger: LoggerABC,
|
||||
bot: BotServiceABC,
|
||||
message_service: MessageServiceABC
|
||||
):
|
||||
self._config = config
|
||||
self._logging_st = logging_st
|
||||
|
||||
self._logger = logger
|
||||
self._bot = bot
|
||||
self._message_service = message_service
|
||||
|
||||
ModuleABC.__init__(self)
|
||||
self._logger.trace(__name__, f'Module {type(self)} loaded')
|
||||
|
||||
@@ -27,26 +40,37 @@ class BootLog(ModuleABC):
|
||||
self._logger.debug(__name__, f'Bot Init time: {init_time}s')
|
||||
# print warning if initialisation took too long
|
||||
if init_time >= 30:
|
||||
self._logger.warn(__name__, 'It takes long time to start the bot!')
|
||||
|
||||
self._logger.warn(
|
||||
__name__, 'It takes long time to start the bot!')
|
||||
|
||||
# print error if initialisation took way too long
|
||||
elif init_time >= 90:
|
||||
self._logger.error(__name__, 'It takes very long time to start the bot!!!')
|
||||
self._logger.error(
|
||||
__name__, 'It takes very long time to start the bot!!!')
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, 'Init time calculation failed', e)
|
||||
return
|
||||
|
||||
|
||||
self._logger.header(f'{self._bot.user.name}:')
|
||||
if self._logging_st.console.value >= LoggingLevelEnum.INFO.value:
|
||||
Console.banner(self._bot.user.name)
|
||||
|
||||
|
||||
for g in self._bot.guilds:
|
||||
g: guild = g
|
||||
self._logger.debug(__name__, f'Server detected: {g.id}')
|
||||
|
||||
server_config = self._config.get_configuration(f'DSERVER_{g.id}')
|
||||
if server_config is None:
|
||||
self._logger.error(__name__, f'Config for server {g.id} not found!')
|
||||
|
||||
server_settings: ServerSettings = self._config.get_configuration(
|
||||
f'DSERVER_{g.id}')
|
||||
if server_settings is None:
|
||||
self._logger.error(
|
||||
__name__, f'Config for server {g.id} not found!')
|
||||
await self._bot.close()
|
||||
|
||||
return
|
||||
|
||||
await self._message_service.send_channel_message(
|
||||
self._bot.get_channel(
|
||||
server_settings.login_message_channel_id),
|
||||
server_settings.login_message.format(init_time)
|
||||
)
|
||||
|
||||
self._logger.trace(__name__, f'Module {type(self)} stopped')
|
||||
|
Reference in New Issue
Block a user