Added reaction raw events

This commit is contained in:
Sven Heidemann 2022-10-03 17:31:42 +02:00
parent 4db000f6d7
commit 8ad6d50a04
15 changed files with 99 additions and 18 deletions

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -55,4 +55,4 @@ def get_discord_collection(services: 'ServiceCollectionABC') -> 'DiscordCollecti
# build-ignore-end # build-ignore-end
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.application'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -24,4 +24,4 @@ from collections import namedtuple
from .discord_bot_application_abc import DiscordBotApplicationABC from .discord_bot_application_abc import DiscordBotApplicationABC
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.command'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC
from .discord_commands_meta import DiscordCogMeta from .discord_commands_meta import DiscordCogMeta
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.configuration'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -24,4 +24,4 @@ from collections import namedtuple
from .discord_bot_settings import DiscordBotSettings from .discord_bot_settings import DiscordBotSettings
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.container'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -31,4 +31,4 @@ from .thread import Thread
from .voice_channel import VoiceChannel from .voice_channel import VoiceChannel
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -4,7 +4,7 @@
"Version": { "Version": {
"Major": "2022", "Major": "2022",
"Minor": "10", "Minor": "10",
"Micro": "0.post2" "Micro": "0.post3"
}, },
"Author": "Sven Heidemann", "Author": "Sven Heidemann",
"AuthorEmail": "sven.heidemann@sh-edraft.de", "AuthorEmail": "sven.heidemann@sh-edraft.de",

View File

@ -37,6 +37,10 @@ from cpl_discord.events.on_private_channel_create_abc import OnPrivateChannelCre
from cpl_discord.events.on_private_channel_delete_abc import OnPrivateChannelDeleteABC from cpl_discord.events.on_private_channel_delete_abc import OnPrivateChannelDeleteABC
from cpl_discord.events.on_private_channel_pins_update_abc import OnPrivateChannelPinsUpdateABC from cpl_discord.events.on_private_channel_pins_update_abc import OnPrivateChannelPinsUpdateABC
from cpl_discord.events.on_private_channel_update_abc import OnPrivateChannelUpdateABC from cpl_discord.events.on_private_channel_update_abc import OnPrivateChannelUpdateABC
from cpl_discord.events.on_raw_reaction_add_abc import OnRawReactionAddABC
from cpl_discord.events.on_raw_reaction_clear_abc import OnRawReactionClearABC
from cpl_discord.events.on_raw_reaction_clear_emoji_abc import OnRawReactionClearEmojiABC
from cpl_discord.events.on_raw_reaction_remove_abc import OnRawReactionRemoveABC
from cpl_discord.events.on_reaction_add_abc import OnReactionAddABC from cpl_discord.events.on_reaction_add_abc import OnReactionAddABC
from cpl_discord.events.on_reaction_clear_abc import OnReactionClearABC from cpl_discord.events.on_reaction_clear_abc import OnReactionClearABC
from cpl_discord.events.on_reaction_clear_emoji_abc import OnReactionClearEmojiABC from cpl_discord.events.on_reaction_clear_emoji_abc import OnReactionClearEmojiABC
@ -87,6 +91,10 @@ class DiscordEventTypesEnum(Enum):
on_private_channel_delete = OnPrivateChannelDeleteABC on_private_channel_delete = OnPrivateChannelDeleteABC
on_private_channel_pins_update = OnPrivateChannelPinsUpdateABC on_private_channel_pins_update = OnPrivateChannelPinsUpdateABC
on_private_channel_update = OnPrivateChannelUpdateABC on_private_channel_update = OnPrivateChannelUpdateABC
on_raw_reaction_add = OnRawReactionAddABC
on_raw_reaction_clear = OnRawReactionClearABC
on_raw_reaction_clear_emoji = OnRawReactionClearEmojiABC
on_raw_reaction_remove = OnRawReactionRemoveABC
on_reaction_add = OnReactionAddABC on_reaction_add = OnReactionAddABC
on_reaction_clear = OnReactionClearABC on_reaction_clear = OnReactionClearABC
on_reaction_clear_emoji = OnReactionClearEmojiABC on_reaction_clear_emoji = OnReactionClearEmojiABC

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.events'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC
from .on_webhooks_update_abc import OnWebhooksUpdateABC from .on_webhooks_update_abc import OnWebhooksUpdateABC
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -0,0 +1,13 @@
from abc import ABC, abstractmethod
import discord
from discord import RawReactionActionEvent
class OnRawReactionAddABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
async def on_raw_reaction_add(self, payload: RawReactionActionEvent): pass

View File

@ -0,0 +1,13 @@
from abc import ABC, abstractmethod
import discord
from discord import RawReactionActionEvent
class OnRawReactionClearABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
async def on_raw_reaction_clear(self, payload: RawReactionActionEvent): pass

View File

@ -0,0 +1,13 @@
from abc import ABC, abstractmethod
import discord
from discord import RawReactionActionEvent
class OnRawReactionClearEmojiABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
async def on_raw_reaction_clear_emoji(self, payload: RawReactionActionEvent): pass

View File

@ -0,0 +1,13 @@
from abc import ABC, abstractmethod
import discord
from discord import RawReactionActionEvent
class OnRawReactionRemoveABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
async def on_raw_reaction_remove(self, payload: RawReactionActionEvent): pass

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.helper'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -24,4 +24,4 @@ from collections import namedtuple
from .to_containers_converter import ToContainersConverter from .to_containers_converter import ToContainersConverter
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -15,7 +15,7 @@ __title__ = 'cpl_discord.service'
__author__ = 'Sven Heidemann' __author__ = 'Sven Heidemann'
__license__ = 'MIT' __license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de'
__version__ = '2022.10.0.post2' __version__ = '2022.10.0.post3'
from collections import namedtuple from collections import namedtuple
@ -29,4 +29,4 @@ from .discord_service import DiscordService
from .discord_service_abc import DiscordServiceABC from .discord_service_abc import DiscordServiceABC
VersionInfo = namedtuple('VersionInfo', 'major minor micro') VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='10', micro='0.post2') version_info = VersionInfo(major='2022', minor='10', micro='0.post3')

View File

@ -2,6 +2,7 @@ from datetime import datetime
from typing import Optional, Sequence, Union, Type from typing import Optional, Sequence, Union, Type
import discord import discord
from discord import RawReactionActionEvent
from discord.ext import commands from discord.ext import commands
from discord.ext.commands import Context, CommandError, Cog, Command from discord.ext.commands import Context, CommandError, Cog, Command
@ -175,10 +176,30 @@ class DiscordService(DiscordServiceABC, commands.Cog, metaclass=DiscordCogMeta):
await self._handle_event(OnBulkMessageDeleteABC, messages) await self._handle_event(OnBulkMessageDeleteABC, messages)
@commands.Cog.listener() @commands.Cog.listener()
async def on_message_edit(self, before: discord.Message, after: discord.Message): async def on_raw_message_edit(self, before: discord.Message, after: discord.Message):
self._logger.trace(__name__, f'Received on_message_edit:\n\t{before}\n\t{after}') self._logger.trace(__name__, f'Received on_message_edit:\n\t{before}\n\t{after}')
await self._handle_event(OnMessageEditABC, before, after) await self._handle_event(OnMessageEditABC, before, after)
@commands.Cog.listener()
async def on_raw_reaction_add(self, payload: RawReactionActionEvent):
self._logger.trace(__name__, f'Received on_raw_reaction_add')
await self._handle_event(OnReactionAddABC, payload)
@commands.Cog.listener()
async def on_raw_reaction_remove(self, payload: RawReactionActionEvent):
self._logger.trace(__name__, f'Received on_raw_reaction_remove')
await self._handle_event(OnReactionRemoveABC, payload)
@commands.Cog.listener()
async def on_raw_reaction_clear(self, payload: RawReactionActionEvent):
self._logger.trace(__name__, f'Received on_raw_reaction_clear')
await self._handle_event(OnReactionClearABC, payload)
@commands.Cog.listener()
async def on_raw_reaction_clear_emoji(self, payload: RawReactionActionEvent):
self._logger.trace(__name__, f'Received on_raw_reaction_clear_emoji')
await self._handle_event(OnReactionClearEmojiABC, payload)
@commands.Cog.listener() @commands.Cog.listener()
async def on_reaction_add(self, reaction: discord.Reaction, user: discord.User): async def on_reaction_add(self, reaction: discord.Reaction, user: discord.User):
self._logger.trace(__name__, f'Received on_reaction_add:\n\t{reaction}\n\t{user}') self._logger.trace(__name__, f'Received on_reaction_add:\n\t{reaction}\n\t{user}')