将两条不和谐的横幅命令合并为一条



嗨,我正试图把我的两个横幅gif变成一个,现在我有一个用于gif和基本图像。我怎样才能让它们显示gif,如果不是gif,只显示图像或设置的颜色?

@client.command(aliases=['bn'])
async def banner(ctx, member: discord.Member=None):
if member == None:
member = ctx.author
icon_url = member.avatar_url
avatarEmbed = discord.Embed(title = f"{member.name}'s Banner", color = 0x8bc1a9)
req = await client.http.request(discord.http.Route("GET", "/users/{uid}", uid=member.id))
banner_id = req["banner"]

if banner_id:
banner_url = f"https://cdn.discordapp.com/banners/{member.id}/{banner_id}?size=1024"
avatarEmbed.set_image(url = f"{banner_url}")
avatarEmbed.timestamp = ctx.message.created_at
await ctx.send(embed = avatarEmbed)

@client.command(aliases=['bngif'])
async def bannergif(ctx, member: discord.Member=None):
if member == None:
member = ctx.author
icon_url = member.avatar_url
avatarEmbed = discord.Embed(title = f"{member.name}'s Banner", color = 0x8bc1a9)
req = await client.http.request(discord.http.Route("GET", "/users/{uid}", uid=member.id))
banner_id = req["banner"]

if banner_id:
banner_url = f"https://cdn.discordapp.com/banners/{member.id}/{banner_id}.gif?size=1024"
avatarEmbed.set_image(url = f"{banner_url}")
avatarEmbed.timestamp = ctx.message.created_at
await ctx.send(embed = avatarEmbed)

Gif banners的hashes(id(以a_开头,因此您可以根据这一点更改文件扩展名。

image_size = '?size=1024'
animated = banner_hash.startswith('a_')
file_extension = 'gif' if animated else 'png'
image_base_url = 'https://cdn.discordapp.com/'
banners_endpoint = f'banners/{member.id}/{banner_hash}.{file_extension}'
image = f'{image_base_url}{banners_endpoint}{image_size}'

最新更新