[WIP] Improved configuration handling
This commit is contained in:
@@ -20,6 +20,7 @@ from gismo_data.model.known_user import KnownUser
|
||||
from gismo_data.model.user import User
|
||||
from gismo_data.model.user_joined_server import UserJoinedServer
|
||||
from gismo_data.model.user_joined_voice_channel import UserJoinedVoiceChannel
|
||||
from modules.base.base_settings import BaseSettings
|
||||
from modules_core.abc.events.on_member_join_abc import OnMemberJoinABC
|
||||
from modules_core.abc.events.on_member_remove_abc import OnMemberRemoveABC
|
||||
from modules_core.abc.events.on_message_abc import OnMessageABC
|
||||
@@ -56,11 +57,16 @@ class Base(ModuleABC, OnMemberJoinABC, OnMemberRemoveABC, OnMessageABC, OnVoiceS
|
||||
self._db = db
|
||||
self._messenger = messenger
|
||||
|
||||
ModuleABC.__init__(self)
|
||||
self._priorities[OnMemberJoinABC] = 1
|
||||
self._priorities[OnMemberRemoveABC] = 1
|
||||
self._priorities[OnMessageABC] = 30
|
||||
self._priorities[OnVoiceStateUpdateABC] = 10
|
||||
ModuleABC.__init__(
|
||||
self,
|
||||
{
|
||||
OnMemberJoinABC: 1,
|
||||
OnMemberRemoveABC: 1,
|
||||
OnMessageABC: 30,
|
||||
OnVoiceStateUpdateABC: 10
|
||||
},
|
||||
BaseSettings
|
||||
)
|
||||
self._logger.trace(__name__, f'Module {type(self)} loaded')
|
||||
|
||||
def _apppend_received_message_count(self, g_id: int):
|
||||
|
76
src/modules/base/base_settings.py
Normal file
76
src/modules/base/base_settings.py
Normal file
@@ -0,0 +1,76 @@
|
||||
import traceback
|
||||
|
||||
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
||||
from cpl_core.console import Console
|
||||
|
||||
|
||||
class BaseSettings(ConfigurationModelABC):
|
||||
|
||||
def __init__(self):
|
||||
ConfigurationModelABC.__init__(self)
|
||||
|
||||
self._welcome_message: str = ''
|
||||
self._welcome_message_for_team: str = ''
|
||||
self._goodbye_message: str = ''
|
||||
self._max_voice_state_hours: int = 0
|
||||
self._xp_per_message: int = 0
|
||||
self._xp_per_ontime_hour: int = 0
|
||||
self._afk_channel_ids: list[int] = []
|
||||
self._admin_roles: list[int] = []
|
||||
self._moderator_roles: list[int] = []
|
||||
|
||||
@property
|
||||
def welcome_message(self) -> str:
|
||||
return self._welcome_message
|
||||
|
||||
@property
|
||||
def welcome_message_for_team(self) -> str:
|
||||
return self._welcome_message_for_team
|
||||
|
||||
@property
|
||||
def goodbye_message(self) -> str:
|
||||
return self._goodbye_message
|
||||
|
||||
@property
|
||||
def max_voice_state_hours(self) -> int:
|
||||
return self._max_voice_state_hours
|
||||
|
||||
@property
|
||||
def xp_per_message(self) -> int:
|
||||
return self._xp_per_message
|
||||
|
||||
@property
|
||||
def xp_per_ontime_hour(self) -> int:
|
||||
return self._xp_per_ontime_hour
|
||||
|
||||
@property
|
||||
def afk_channel_ids(self) -> list[int]:
|
||||
return self._afk_channel_ids
|
||||
|
||||
@property
|
||||
def admin_roles(self) -> list[int]:
|
||||
return self._admin_roles
|
||||
|
||||
@property
|
||||
def moderator_roles(self) -> list[int]:
|
||||
return self._moderator_roles
|
||||
|
||||
def from_dict(self, settings: dict):
|
||||
try:
|
||||
self._welcome_message = settings['WelcomeMessage']
|
||||
self._welcome_message_for_team = settings['WelcomeMessageForTeam']
|
||||
self._goodbye_message = settings['GoodbyeMessage']
|
||||
self._max_voice_state_hours = int(settings['MaxVoiceStateHours'])
|
||||
self._xp_per_message = int(settings['XpPerMessage'])
|
||||
self._xp_per_ontime_hour = int(settings['XpPerOntimeHour'])
|
||||
for id in settings['AFKChannelIds']:
|
||||
self._afk_channel_ids.append(int(id))
|
||||
|
||||
for id in settings['AdminRoleIds']:
|
||||
self._admin_roles.append(int(id))
|
||||
|
||||
for id in settings['ModeratorRoleIds']:
|
||||
self._moderator_roles.append(int(id))
|
||||
except Exception as e:
|
||||
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
|
||||
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|
@@ -52,8 +52,11 @@ class Database(ModuleABC, OnReadyABC):
|
||||
self._user_joins = user_joins
|
||||
self._user_joins_vc = user_joins_vc
|
||||
|
||||
ModuleABC.__init__(self)
|
||||
self._priorities[OnReadyABC] = 0
|
||||
ModuleABC.__init__(
|
||||
self,
|
||||
{ OnReadyABC: 0 },
|
||||
None
|
||||
)
|
||||
self._logger.trace(__name__, f'Module {type(self)} loaded')
|
||||
|
||||
def _validate_init_time(self):
|
||||
|
Reference in New Issue
Block a user