[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