Ejemplo n.º 1
0
    async def on_member_remove(self, member):
        webhook = await self._get_webhook(member.guild, 'join_leave_log')
        if not webhook:
            return

        roles = ', '.join([role.mention for role in member.roles][1:])

        embed = log_embed_danger(
            'Member left',
            self.bot
        )
        embed.add_field(name='Name:', value=member.name, inline=True)
        embed.add_field(name='Mention:', value=member.mention, inline=True)
        embed.add_field(name='Joined Discord:', value=ago.human(
            member.created_at), inline=True)
        embed.add_field(name='Roles:', value=roles or 'No roles', inline=False)

        embed.set_footer(
            text=f'Member ID: {member.id}', icon_url=member.avatar_url)
        embed.set_thumbnail(url=member.avatar_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 2
0
    async def on_invite_delete(self, invite):
        await self.invites_collection.delete_one({'_id': invite.id})

        webhook = await self._get_webhook(invite.guild, 'invite_log')
        if not webhook:
            return

        embed = log_embed_danger(
            'Invite Deleted',
            self.bot
        )
        embed.add_field(name='ID:', value=invite.id, inline=True)
        embed.add_field(name='Guild:',
                        value=invite.guild.name, inline=True)

        embed.add_field(name='URL', value=invite.url)

        embed.set_footer(
            text=f'Channel ID: {invite.channel.id}')
        embed.set_thumbnail(url=invite.guild.icon_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 3
0
    async def on_bulk_message_delete(self, messages):
        webhook = await self._get_webhook(messages[0].guild, 'message_log')
        if not webhook:
            return

        if messages[0].author.bot:
            return

        available_space_per_message = 2048 / len(messages)
        description = ''
        for message in messages:
            to_be_added = f'**By {message.author}**: {message.content}'
            shortened_message = textwrap.shorten(
                to_be_added, width=available_space_per_message)
            description += f'{shortened_message}\n'

        embed = log_embed_danger(
            'Bulk Messages Deleted(Purged)',
            self.bot,
            description=description
        )
        embed.set_footer(text=f'{len(messages)} messages deleted',
                         icon_url=messages[0].author.avatar_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 4
0
    async def on_message_delete(self, message):
        if not message:
            return

        if not message.content:
            return

        if message.author.bot:
            return

        webhook = await self._get_webhook(message.guild, 'message_log')
        if not webhook:
            return

        embed = log_embed_danger(
            'Message Deleted',
            self.bot
        )
        embed.add_field(name='Author:', value=message.author.name, inline=True)
        embed.add_field(name='Channel:',
                        value=message.channel.name, inline=True)
        embed.add_field(name='Content:', value=message.content, inline=False)

        embed.set_footer(
            text=f'Message ID: {message.id}', icon_url=message.author.avatar_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 5
0
    async def on_guild_channel_delete(self, channel):
        webhook = await self._get_webhook(channel.guild, 'server_log')
        if not webhook:
            return

        embed = log_embed_danger(
            'Channel deleted',
            self.bot
        )
        embed.add_field(name='Name:', value=channel.name, inline=True)
        embed.add_field(name='Type:', value=channel.type, inline=True)
        embed.add_field(name='Category:', value=channel.category, inline=True)

        embed.set_footer(text=f'Channel ID: {channel.id}')

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 6
0
    async def on_member_ban(self, guild, member_or_user):
        webhook = await self._get_webhook(guild, 'people_log')
        if not webhook:
            return

        embed = log_embed_danger(
            'Member Banned',
            self.bot
        )
        embed.add_field(name='Name:', value=member_or_user.name, inline=True)
        embed.add_field(name='Roles:', value=', '.join(
            [role.mention for role in member_or_user.roles]), inline=False)

        embed.set_footer(
            text=f'User ID: {member_or_user.id}', icon_url=member_or_user.avatar_url)
        embed.set_thumbnail(url=member_or_user.avatar_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )
Ejemplo n.º 7
0
    async def on_guild_role_delete(self, role):
        guild = role.guild
        webhook = await self._get_webhook(guild, 'server_log')
        if not webhook:
            return

        embed = log_embed_danger(
            'Role deleted',
            self.bot
        )

        embed.add_field(name='Name:', value=role.name, inline=True)
        embed.add_field(name='Hoisted:', value=role.hoist, inline=True)
        embed.add_field(name='Color:', value=role.color, inline=True)

        embed.set_footer(
            text=f'Role ID: {role.id}', icon_url=guild.icon_url)
        embed.set_thumbnail(url=guild.icon_url)

        await send_webhook(
            webhook.url,
            self.bot.aio_session,
            embed=embed
        )