Example #1
0
    async def icon(self, ctx: Context, *, guild: Guild = None) -> None:
        """
        Displays a servers icon.
        `guild`: The server of which to get the icon for. Can be it's ID or Name. Defaults to the current server.
        """

        if not guild:
            guild = ctx.guild

        if not guild.icon:
            await ctx.send(
                description=f'The server `{guild}` does not have an icon.',
                color=Color.red())
            return

        embed = Embed(title=f"{guild.name}'s icon",
                      description=f'''
            [PNG]({guild.icon_url_as(format="png")})
            [JPEG]({guild.icon_url_as(format="jpeg")})
            [WEBP]({guild.icon_url_as(format="webp")})
            ''',
                      color=Color.blue())
        embed.set_image(url=str(guild.icon_url_as(format='png')))

        if guild.is_icon_animated():
            embed.description += f'\n[GIF]({guild.icon_url_as(format="gif")})'
            embed.set_image(
                url=str(guild.icon_url_as(size=1024, format='gif')))

        await ctx.send(embed=embed)
Example #2
0
    async def on_guild_remove(self, guild: discord.Guild):

        if self.bot.log_channel:

            embed = discord.Embed(colour=discord.Colour.gold())
            embed.set_thumbnail(url=str(
                guild.icon_url_as(
                    format='gif' if guild.is_icon_animated() is True else 'png'
                )))
            embed.title = f'Left a {"blacklisted " if guild.id in self.bot.guild_blacklist.keys() else ""}guild'
            embed.description = f'`Name:` {guild.name}\n`ID:` {guild.id}\n`Owner:` {guild.owner}'
            await self.bot.log_channel.send(embed=embed)

        self.bot.log.info(
            f'Left a guild. Name: {guild.name} | ID: {guild.id} | Owner: {guild.owner}'
        )
Example #3
0
    async def on_guild_remove(self, guild: discord.Guild) -> None:

        log.info(
            f'Left a guild. Name: {guild.name} | ID: {guild.id} | Owner: {guild.owner} | Members: {len(guild.members)}'
        )

        time = self.bot.utils.format_datetime(datetime=pendulum.now(tz='UTC'))
        embed = discord.Embed(
            colour=discord.Colour.gold(),
            title=f'Left a guild',
            description=
            f'`Name:` {guild.name}\n`ID:` {guild.id}\n`Owner:` {guild.owner}\n`Time:` {time}\n`Members:` {len(guild.members)}'
        )
        embed.set_thumbnail(url=str(
            guild.icon_url_as(
                format='gif' if guild.is_icon_animated() else 'png')))
        await self.bot.logging_webhook.send(
            embed=embed, avatar_url=guild.icon_url_as(format='png'))
Example #4
0
    async def on_guild_join(self, guild: discord.Guild) -> None:

        self.bot.log.info(
            f'Joined a guild. Name: {guild.name} | ID: {guild.id} | Owner: {guild.owner} | Members: {len(guild.members)}'
        )

        time = self.bot.utils.format_datetime(datetime=datetime.now(pytz.UTC))
        embed = discord.Embed(
            colour=discord.Colour.gold(),
            title=f'Joined a guild',
            description=
            f'`Name:` {guild.name}\n`ID:` {guild.id}\n`Owner:` {guild.owner}\n`Time:` {time}\n`Members:` {len(guild.members)}'
        )
        embed.set_thumbnail(url=str(
            guild.icon_url_as(
                format='gif' if guild.is_icon_animated() else 'png')))
        await self.bot.logging_webhook.send(
            embed=embed, avatar_url=guild.icon_url_as(format='png'))

        if guild.id in self.bot.guild_blacklist.keys():
            await guild.leave()
Example #5
0
    async def on_guild_join(self, guild: discord.Guild):

        if self.bot.log_channel:

            embed = discord.Embed(colour=discord.Colour.gold())
            embed.set_thumbnail(url=str(
                guild.icon_url_as(
                    format='gif' if guild.is_icon_animated() is True else 'png'
                )))
            embed.title = f'Joined a guild'
            time = datetime.strftime(guild.me.joined_at,
                                     "%A %d %B %Y at %H:%M:%S")
            embed.description = f'`Name:` {guild.name}\n`ID:` {guild.id}\n`Owner:` {guild.owner}\n`Time:` {time}'
            await self.bot.log_channel.send(embed=embed)

        self.bot.log.info(
            f'Joined a guild. Name: {guild.name} | ID: {guild.id} | Owner: {guild.owner}'
        )

        if guild.id in self.bot.guild_blacklist.keys():
            await guild.leave()
Example #6
0
def get_icon(guild: discord.Guild) -> str:
    fmt = 'gif' if guild.is_icon_animated() else 'png'
    return str(guild.icon_url_as(format=fmt))