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)
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}' )
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'))
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()
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()
def get_icon(guild: discord.Guild) -> str: fmt = 'gif' if guild.is_icon_animated() else 'png' return str(guild.icon_url_as(format=fmt))