A-0.1 - Modularer Aufbau #13

Merged
edraft merged 118 commits from 0.1 into Alpha 2021-11-25 21:02:12 +01:00
4 changed files with 122 additions and 7 deletions
Showing only changes of commit 5cbd40ec03 - Show all commits

View File

@ -10,7 +10,7 @@ from gismo_core.abc.bot_service_abc import BotServiceABC
from gismo_core.abc.message_service_abc import MessageServiceABC from gismo_core.abc.message_service_abc import MessageServiceABC
from gismo_core.configuration.server_settings import ServerSettings from gismo_core.configuration.server_settings import ServerSettings
from modules_core.abc.module_abc import ModuleABC from modules_core.abc.module_abc import ModuleABC
from modules_core.abc.on_ready_abc import OnReadyABC from modules_core.abc.events.on_ready_abc import OnReadyABC
class BootLog(ModuleABC, OnReadyABC): class BootLog(ModuleABC, OnReadyABC):

View File

@ -1,4 +1,5 @@
from async_timeout import asyncio from datetime import datetime
from typing import Optional, Sequence, Union
import discord import discord
from discord.ext import commands from discord.ext import commands
@ -8,8 +9,8 @@ from cpl_core.logging import LoggerABC
from cpl_query.extension import List from cpl_query.extension import List
from modules_core.abc.module_abc import ModuleABC from modules_core.abc.module_abc import ModuleABC
from modules_core.abc.module_service_abc import ModuleServiceABC from modules_core.abc.module_service_abc import ModuleServiceABC
from modules_core.abc.on_message_abc import OnMessageABC from modules_core.abc.events.on_message_abc import OnMessageABC
from modules_core.abc.on_ready_abc import OnReadyABC from modules_core.abc.events.on_ready_abc import OnReadyABC
class ModuleService(ModuleServiceABC): class ModuleService(ModuleServiceABC):
@ -21,6 +22,10 @@ class ModuleService(ModuleServiceABC):
self._modules: List[ModuleABC] = List() self._modules: List[ModuleABC] = List()
self._modules.extend(ModuleABC.__subclasses__()) self._modules.extend(ModuleABC.__subclasses__())
async def on_connect(self): pass
async def on_disconnect(self): pass
async def on_ready(self): async def on_ready(self):
self._logger.debug(__name__, 'Start on_ready modules') self._logger.debug(__name__, 'Start on_ready modules')
modules = self._modules.where(lambda m: issubclass(m, OnReadyABC)) modules = self._modules.where(lambda m: issubclass(m, OnReadyABC))
@ -28,9 +33,15 @@ class ModuleService(ModuleServiceABC):
module_type = module_type module_type = module_type
module: OnReadyABC = self._services.get_service(module_type) module: OnReadyABC = self._services.get_service(module_type)
await module.on_ready() await module.on_ready()
self._logger.debug(__name__, 'Stopped on_ready modules') self._logger.debug(__name__, 'Stopped on_ready modules')
async def on_resume(self): pass
async def on_error(self, event: str, *args, **kwargs): pass
async def on_typing(self, channel: discord.abc.Messageable,
user: Union[discord.User, discord.Member], when: datetime): pass
async def on_message(self, message: discord.Message): async def on_message(self, message: discord.Message):
self._logger.debug(__name__, 'Start on_message modules') self._logger.debug(__name__, 'Start on_message modules')
modules = self._modules.where(lambda m: issubclass(m, OnMessageABC)) modules = self._modules.where(lambda m: issubclass(m, OnMessageABC))
@ -38,5 +49,109 @@ class ModuleService(ModuleServiceABC):
module_type = module_type module_type = module_type
module: OnMessageABC = self._services.get_service(module_type) module: OnMessageABC = self._services.get_service(module_type)
await module.on_message(message) await module.on_message(message)
self._logger.debug(__name__, f'Stopped on_message modules') self._logger.debug(__name__, f'Stopped on_message modules')
async def on_message_delete(self, message: discord.Message): pass
async def on_bulk_message_delete(self, message: discord.Message): pass
async def on_message_edit(
self, before: discord.Message, after: discord.Message): pass
async def on_reaction_add(
self, reaction: discord.Reaction, user: discord.User): pass
async def on_reaction_remove(
self, reaction: discord.Reaction, user: discord.User): pass
async def on_reaction_clear(
self, message: discord.Message, reactions: list[discord.Reaction]): pass
async def on_reaction_clear_emoji(self, reaction: discord.Reaction): pass
async def on_private_channel_delete(
self, channel: discord.abc.PrivateChannel): pass
async def on_private_channel_create(
self, channel: discord.abc.PrivateChannel): pass
async def on_private_channel_update(
self, before: discord.GroupChannel, after: discord.GroupChannel): pass
async def on_private_channel_pins_update(
self, channel: discord.abc.PrivateChannel, list_pin: Optional[datetime]): pass
async def on_guild_channel_delete(
self, channel: discord.abc.GuildChannel): pass
async def on_guild_channel_create(
self, channel: discord.abc.GuildChannel): pass
async def on_guild_channel_update(
self, before: discord.abc.GuildChannel, after: discord.abc.GuildChannel): pass
async def on_guild_channel_pins_update(
self, channel: discord.abc.GuildChannel, list_pin: Optional[datetime]): pass
async def on_guild_integrations_update(self, guild: discord.Guild): pass
async def on_webhooks_update(self, channel: discord.abc.GuildChannel): pass
async def on_member_join(self, member: discord.Member): pass
async def on_member_remove(self, member: discord.Member): pass
async def on_member_update(
self, before: discord.Member, after: discord.Member): pass
async def on_user_update(self, before: discord.User,
after: discord.User): pass
async def on_guild_join(self, guild: discord.Guild): pass
async def on_guild_remove(self, guild: discord.Guild): pass
async def on_guild_update(
self, before: discord.Guild, after: discord.Guild): pass
async def on_guild_role_create(self, role: discord.Role): pass
async def on_guild_role_delete(self, role: discord.Role): pass
async def on_guild_role_update(
self, before: discord.Role, after: discord.Role): pass
async def on_guild_emojis_update(
self, guild: discord.Guild, before: Sequence[discord.Emoji], after: Sequence[discord.Emoji]): pass
async def on_guild_available(self, guild: discord.Guild): pass
async def on_guild_unavailable(self, guild: discord.Guild): pass
async def on_voice_state_update(
self, member: discord.Member, before: discord.VoiceState, after: discord.VoiceState): pass
async def on_member_ban(self, guild: discord.Guild,
user: discord.User): pass
async def on_member_unban(
self, guild: discord.Guild, user: discord.User): pass
async def on_invite_create(self, invite: discord.Invite): pass
async def on_invite_delete(self, invite: discord.Invite): pass
async def on_group_join(
self, chhanel: discord.GroupChannel, user: discord.User): pass
async def on_group_remove(
self, chhanel: discord.GroupChannel, user: discord.User): pass
async def on_relationship_add(
self, relationship: discord.Relationship): pass
async def on_relationship_remove(
self, relationship: discord.Relationship): pass
async def on_relationship_update(
self, before: discord.Relationship, after: discord.Relationship): pass