Passed
Pull Request — main (#195)
by
unknown
01:35
created

guild_emojis_update_middleware()   A

Complexity

Conditions 1

Size

Total Lines 19
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 19
rs 10
c 0
b 0
f 0
cc 1
nop 2
1
# Copyright Pincer 2021-Present
2
# Full MIT License can be found in `LICENSE` at the project root.
3
4
"""Guild events"""
5
6
from __future__ import annotations
7
from ..core.dispatch import GatewayDispatch
8
from ..objects.events.guild import (
0 ignored issues
show
Unused Code introduced by
Unused GuildRoleUpdateEvent imported from objects.events.guild
Loading history...
9
    GuildBanAddEvent,
10
    GuildBanRemoveEvent,
11
    GuildEmojisUpdateEvent,
12
    GuildIntegrationsUpdateEvent,
13
    GuildMemberAddEvent,
14
    GuildMemberRemoveEvent,
15
    GuildMemberUpdateEvent,
16
    GuildMembersChunkEvent,
17
    GuildRoleCreateEvent,
18
    GuildRoleDeleteEvent,
19
    GuildRoleUpdateEvent,
20
    GuildStatusEvent,
21
    GuildStickersUpdateEvent,
22
)
23
from ..utils import Coro
24
from ..objects import Guild, Channel
25
from ..utils.conversion import construct_client_dict
26
from ..objects.guild import Guild, UnavailableGuild
0 ignored issues
show
Unused Code introduced by
The import Guild was already done on line 24. You should be able to
remove this line.
Loading history...
27
28
from typing import TYPE_CHECKING
0 ignored issues
show
introduced by
standard import "from typing import TYPE_CHECKING" should be placed before "from ..core.dispatch import GatewayDispatch"
Loading history...
29
30
if TYPE_CHECKING:
31
    from typing import List, Tuple
32
    from ..core.dispatch import GatewayDispatch
0 ignored issues
show
Unused Code introduced by
The import GatewayDispatch was already done on line 7. You should be able to
remove this line.
Loading history...
33
34
35
async def guild_create_middleware(self, payload: GatewayDispatch):
36
    """|coro|
37
38
    Middleware for ``on_guild_create``,
39
        generate the guild class that was created
40
41
    Parameters
42
    ----------
43
    payload : :class:`GatewayDispatch`
44
        The data received from the guild create event
45
46
    Returns
47
    -------
48
    Tuple[:class:`str`, List[:class:`~pincer.objects.guild.Guild`]]
49
50
        ``on_guild_create`` and a ``Guild``
51
    """
52
    guild = Guild.from_dict(construct_client_dict(self, payload.data))
53
    self.guilds[guild.id] = guild
54
    return "on_guild_create", [guild]
55
56
57
async def guild_ban_add_middleware(self, payload: GatewayDispatch):
58
    """|coro|
59
60
    Middleware for ``on_guild_ban_add`` event.
61
62
    Parameters
63
    ----------
64
    payload : :class:`GatewayDispatch`
65
        The data received from the guild ban add event.
66
67
    Returns
68
    -------
69
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildBaAddEvent`]]
70
        ``on_guild_ban_add_update`` and a ``GuildBanAddEvent``
71
    """
72
73
    return (
74
        "on_guild_ban_add",
75
        [GuildBanAddEvent.from_dict(construct_client_dict(self, payload.data))],
76
    )
77
78
79
async def guild_unban_middleware(self, payload: GatewayDispatch):
80
    """|coro|
81
82
    Middleware for ``on_guild_ban_remove`` event.
83
84
    Parameters
85
    ----------
86
    payload : :class:`GatewayDispatch`
87
        The data received from the guild ban remove event.
88
89
    Returns
90
    -------
91
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildBanRemoveEvent`]]
92
        ``on_guild_ban_remove_update`` and a ``GuildBanRemoveEvent``
93
    """
94
95
    return (
96
        "on_guild_ban_remove",
97
        [GuildBanRemoveEvent.from_dict(construct_client_dict(self, payload.data))],
98
    )
99
100
101
async def guild_delete_middleware(self, payload: GatewayDispatch):
102
    """|coro|
103
104
    Middleware for ``on_guild_delete`` event.
105
106
    Parameters
107
    ----------
108
    payload : :class:`GatewayDispatch`
109
        The data received from the guild delete event.
110
111
    Returns
112
    -------
113
    Tuple[:class:`str`, List[:class:`~pincer.objects.guild.guild.UnavailableGuild`]]
114
        ``on_guild_delete`` and an ``UnavailableGuild``
115
    """
116
    guild = UnavailableGuild.from_dict(construct_client_dict(self, payload.data))
117
118
    if guild.id in self.guilds.key():
119
        self.guilds.pop(guild.id)
120
121
    return "on_guild_delete", [guild]
122
123
124
async def guild_emojis_update_middleware(self, payload: GatewayDispatch):
125
    """|coro|
126
127
    Middleware for ``on_guild_emojis_update`` event.
128
129
    Parameters
130
    ----------
131
    payload : :class:`GatewayDispatch`
132
        The data received from the guild emojis update event.
133
134
    Returns
135
    -------
136
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildEmojisUpdateEvent`]]
137
        ``on_guild_emoji_update`` and a ``GuildEmojisUpdateEvent``
138
    """
139
140
    return (
141
        "on_guild_emojis_update",
142
        [GuildEmojisUpdateEvent.from_dict(construct_client_dict(self, payload.data))],
143
    )
144
145
146
async def guild_integrations_update_middleware(self, payload: GatewayDispatch):
147
    """|coro|
148
149
    Middleware for ``on_guild_integrations_update`` event.
150
151
    Parameters
152
    ----------
153
    payload : :class:`GatewayDispatch`
154
        The data received from the guild integrations update event.
155
156
    Returns
157
    -------
158
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildIntegrationsUpdateEvent`]]
159
        ``on_guild_integration_update`` and a ``GuildIntegrationsUpdateEvent``
160
    """
161
162
    return (
163
        "on_guild_integrations_update",
164
        [
165
            GuildIntegrationsUpdateEvent.from_dict(
166
                construct_client_dict(self, payload.data)
167
            )
168
        ],
169
    )
170
171
172
async def guild_member_add_middleware(self, payload: GatewayDispatch):
173
    """|coro|
174
175
    Middleware for ``on_guild_member_add`` event.
176
177
    Parameters
178
    ----------
179
    payload : :class:`GatewayDispatch`
180
        The data received from the guild member add event.
181
182
    Returns
183
    -------
184
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildMemberAddEvent`]]
185
        ``on_guild_member_add`` and a ``GuildMemberAddEvent``
186
    """
187
188
    return "on_guild_member_add", [
189
        GuildMemberAddEvent.from_dict(construct_client_dict(self, payload.data))
190
    ]
191
192
193
async def guild_member_remove_middleware(self, payload: GatewayDispatch):
194
    """|coro|
195
196
    Middleware for ``on_guild_member_remove`` event.
197
198
    Parameters
199
    ----------
200
    payload : :class:`GatewayDispatch`
201
        The data received from the guild member remove event.
202
203
    Returns
204
    -------
205
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildMemberRemoveEvent`]]
206
        ``on_guild_member_remove`` and a ``GuildMemberRemoveEvent``
207
    """
208
209
    return (
210
        "on_guild_member_remove",
211
        [GuildMemberRemoveEvent.from_dict(construct_client_dict(self, payload.data))],
212
    )
213
214
215
async def guild_member_update_middleware(self, payload: GatewayDispatch):
216
    """|coro|
217
218
    Middleware for ``on_guild_member_update`` event.
219
220
    Parameters
221
    ----------
222
    payload : :class:`GatewayDispatch`
223
        The data received from the guild member update event.
224
225
    Returns
226
    -------
227
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildMemberUpdateEvent`]]
228
        ``on_guild_member_update`` and a ``GuildMemberUpdateEvent``
229
    """
230
231
    return (
232
        "on_guild_member_update",
233
        [GuildMemberUpdateEvent.from_dict(construct_client_dict(self, payload.data))],
234
    )
235
236
237
async def guild_member_chunk_middleware(self, payload: GatewayDispatch):
238
    """|coro|
239
240
    Middleware for ``on_guild_member_chunk`` event.
241
242
    Parameters
243
    ----------
244
    payload : :class:`GatewayDispatch`
245
        The data received from the guild member chunk event.
246
247
    Returns
248
    -------
249
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildMemberChunkEvent`]]
250
        ``on_guild_member_chunk`` and a ``GuildMemberChunkEvent``
251
    """
252
253
    return (
254
        "on_guild_member_chunk",
255
        [GuildMembersChunkEvent.from_dict(construct_client_dict(self, payload.data))],
256
    )
257
258
259
async def guild_role_create_middleware(self, payload: GatewayDispatch):
260
    """|coro|
261
262
    Middleware for ``on_guild_role_create`` event.
263
264
    Parameters
265
    ----------
266
    payload : :class:`GatewayDispatch`
267
        The data received from the guild role create event.
268
269
    Returns
270
    -------
271
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildRoleCreateEvent`]]
272
        ``on_guild_role_create`` and a ``GuildRoleCreateEvent``
273
    """
274
275
    return (
276
        "on_guild_role_create",
277
        [GuildRoleCreateEvent.from_dict(construct_client_dict(self, payload.data))],
278
    )
279
280
281
async def guild_role_delete_middleware(self, payload: GatewayDispatch):
282
    """|coro|
283
284
    Middleware for ``on_guild_role_delete`` event.
285
286
    Parameters
287
    ----------
288
    payload : :class:`GatewayDispatch`
289
        The data received from the guild role delete event.
290
291
    Returns
292
    -------
293
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildRoleDeleteEvent`]]
294
        ``on_guild_role_delete`` and a ``GuildRoleDeleteEvent``
295
    """
296
297
    return (
298
        "on_guild_role_delete",
299
        [GuildRoleDeleteEvent.from_dict(construct_client_dict(self, payload.data))],
300
    )
301
302
303
async def guild_update_middleware(self, payload: GatewayDispatch):
304
    """|coro|
305
306
    Middleware for ``on_guild_update`` event.
307
308
    Parameters
309
    ----------
310
    payload : :class:`GatewayDispatch`
311
        The data received from the guild update event.
312
313
    Returns
314
    -------
315
    Tuple[:class:`str`, List[:class:`~pincer.objects.guild.guild.Guild`]]
316
        ``on_guild_Update`` and an ``Guild``
317
    """
318
319
    channel_list = payload.data.pop("channels", [])
320
321
    channels: List[Channel] = [
322
        Channel.from_dict(construct_client_dict(self, channel))
323
        for channel in channel_list
324
    ]
325
326
    guild = Guild.from_dict(
327
        construct_client_dict(self, {"channels": channels, **payload.data})
328
    )
329
    self.guild[guild.id] = guild
330
331
    return "on_guild_update", [guild]
332
333
334
async def guild_stickers_update_middleware(self, payload: GatewayDispatch):
335
    """|coro|
336
337
    Middleware for ``on_guild_stickers_update`` event.
338
339
    Parameters
340
    ----------
341
    payload : :class:`GatewayDispatch`
342
        The data received from the guild stickers update event.
343
344
    Returns
345
    -------
346
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildStickersUpdateEvent`]]
347
        ``on_guild_sticker_update`` and a ``GuildStickersUpdateEvent``
348
    """
349
350
    return (
351
        "on_guild_stickers_update",
352
        [GuildStickersUpdateEvent.from_dict(construct_client_dict(self, payload.data))],
353
    )
354
355
356
async def guild_status_middleware(self, payload: GatewayDispatch):
357
    """|coro|
358
359
    Middleware for ``on_guild_status`` event.
360
361
    Parameters
362
    ----------
363
    payload : :class:`GatewayDispatch`
364
        The data received from the guild status event.
365
366
    Return
367
    ------
368
    Tuple[:class:`str`, List[:class:`~pincer.objects.events.guild.GuildStatusEvent`]]
369
        ``on_guild_status`` and a ``GuildStatusEvent``
370
    """
371
    return "on_guild_status", [
372
        GuildStatusEvent.from_dict(construct_client_dict(self, payload.data))
373
    ]
374
375
376
def export() -> Coro:
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
377
    return (
378
        guild_ban_add_middleware,
379
        guild_unban_middleware,
380
        guild_create_middleware,
381
        guild_delete_middleware,
382
        guild_emojis_update_middleware,
383
        guild_member_add_middleware,
384
        guild_integrations_update_middleware,
385
        guild_member_remove_middleware,
386
        guild_member_update_middleware,
387
        guild_members_chunk,
0 ignored issues
show
Comprehensibility Best Practice introduced by
Undefined variable 'guild_members_chunk'
Loading history...
388
        guild_role_create_middleware,
389
        guild_update_middleware,
390
        guild_stickers_update_middleware,
391
        guild_status_middleware,
392
    )
393