@@ 11-40 (lines=30) @@ | ||
8 | from ..utils.conversion import construct_client_dict |
|
9 | ||
10 | ||
11 | async def channel_update_middleware(self, payload: GatewayDispatch): |
|
12 | """|coro| |
|
13 | ||
14 | Middleware for ``on_channel_update`` event. |
|
15 | ||
16 | Parameters |
|
17 | ---------- |
|
18 | self : :class:`Client` |
|
19 | The current client/bot. |
|
20 | ||
21 | payload : :class:`GatewayDispatch` |
|
22 | The data received from the channel update event. |
|
23 | ||
24 | ||
25 | Returns |
|
26 | ------- |
|
27 | Tuple[:class:`str`, List[:class:`~pincer.objects.channel.channel.Channel`]] |
|
28 | ``on_channel_update`` and a ``Channel`` |
|
29 | """ |
|
30 | ||
31 | channel = Channel.from_dict(construct_client_dict(self, payload.data)) |
|
32 | ||
33 | if channel.guild_id in self.guilds.keys(): |
|
34 | guild = self.guilds[channel.guild_id] |
|
35 | old = filter(lambda c: c.id == channel.id, guild.channels) |
|
36 | if old: |
|
37 | guild.channels.remove(old) |
|
38 | guild.channels.append(channel) |
|
39 | ||
40 | return "on_channel_update", [channel] |
|
41 | ||
42 | ||
43 | def export(): |
@@ 11-38 (lines=28) @@ | ||
8 | from ..utils.conversion import construct_client_dict |
|
9 | ||
10 | ||
11 | async def channel_delete_middleware(self, payload: GatewayDispatch): |
|
12 | """|coro| |
|
13 | ||
14 | Middleware for ``on_channel_delete``, |
|
15 | ||
16 | Parameters |
|
17 | ---------- |
|
18 | self : :class:`Client` |
|
19 | The current client/bot. |
|
20 | ||
21 | payload : :class:`pincer.core.dispatch.GatewayDispatch` |
|
22 | The data received from the channel delete event. |
|
23 | ||
24 | Returns |
|
25 | ------- |
|
26 | Tuple[:class:`str`, `~pincer.objects.guild.channel.Channel`] |
|
27 | ``on_channel_delete`` and a ``Channel`` |
|
28 | """ |
|
29 | ||
30 | channel = Channel.from_dict(construct_client_dict(self, payload.data)) |
|
31 | ||
32 | if channel.guild_id in self.guilds: |
|
33 | guild = self.guilds[channel.guild_id] |
|
34 | old = filter(lambda c: c.id == channel.id, guild.channels) |
|
35 | if old: |
|
36 | guild.channels.remove(old) |
|
37 | ||
38 | return "on_channel_delete", [channel] |
|
39 | ||
40 | ||
41 | def export(): |