From 5cbd40ec03e6b6259c655fe09b1ab89ed551488c Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 18 Nov 2021 08:51:15 +0100 Subject: [PATCH] Moved event abc & added event function (without content) to ModuleService --- src/modules/boot_log/boot_log.py | 2 +- .../abc/{ => events}/on_message_abc.py | 0 .../abc/{ => events}/on_ready_abc.py | 0 src/modules_core/service/module_service.py | 127 +++++++++++++++++- 4 files changed, 122 insertions(+), 7 deletions(-) rename src/modules_core/abc/{ => events}/on_message_abc.py (100%) rename src/modules_core/abc/{ => events}/on_ready_abc.py (100%) diff --git a/src/modules/boot_log/boot_log.py b/src/modules/boot_log/boot_log.py index df54145..e703255 100644 --- a/src/modules/boot_log/boot_log.py +++ b/src/modules/boot_log/boot_log.py @@ -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.configuration.server_settings import ServerSettings 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): diff --git a/src/modules_core/abc/on_message_abc.py b/src/modules_core/abc/events/on_message_abc.py similarity index 100% rename from src/modules_core/abc/on_message_abc.py rename to src/modules_core/abc/events/on_message_abc.py diff --git a/src/modules_core/abc/on_ready_abc.py b/src/modules_core/abc/events/on_ready_abc.py similarity index 100% rename from src/modules_core/abc/on_ready_abc.py rename to src/modules_core/abc/events/on_ready_abc.py diff --git a/src/modules_core/service/module_service.py b/src/modules_core/service/module_service.py index e297f66..abb1f76 100644 --- a/src/modules_core/service/module_service.py +++ b/src/modules_core/service/module_service.py @@ -1,4 +1,5 @@ -from async_timeout import asyncio +from datetime import datetime +from typing import Optional, Sequence, Union import discord from discord.ext import commands @@ -8,8 +9,8 @@ from cpl_core.logging import LoggerABC from cpl_query.extension import List from modules_core.abc.module_abc import ModuleABC from modules_core.abc.module_service_abc import ModuleServiceABC -from modules_core.abc.on_message_abc import OnMessageABC -from modules_core.abc.on_ready_abc import OnReadyABC +from modules_core.abc.events.on_message_abc import OnMessageABC +from modules_core.abc.events.on_ready_abc import OnReadyABC class ModuleService(ModuleServiceABC): @@ -21,6 +22,10 @@ class ModuleService(ModuleServiceABC): self._modules: List[ModuleABC] = List() self._modules.extend(ModuleABC.__subclasses__()) + async def on_connect(self): pass + + async def on_disconnect(self): pass + async def on_ready(self): self._logger.debug(__name__, 'Start on_ready modules') modules = self._modules.where(lambda m: issubclass(m, OnReadyABC)) @@ -28,9 +33,15 @@ class ModuleService(ModuleServiceABC): module_type = module_type module: OnReadyABC = self._services.get_service(module_type) await module.on_ready() - 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): self._logger.debug(__name__, 'Start on_message modules') modules = self._modules.where(lambda m: issubclass(m, OnMessageABC)) @@ -38,5 +49,109 @@ class ModuleService(ModuleServiceABC): module_type = module_type module: OnMessageABC = self._services.get_service(module_type) await module.on_message(message) - - self._logger.debug(__name__, f'Stopped on_message modules') \ No newline at end of file + 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