Code Duplication    Length = 28-30 lines in 2 locations

pincer/middleware/channel_update.py 1 location

@@ 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():

pincer/middleware/channel_delete.py 1 location

@@ 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():