使用 Python Rewrite 从 Discord 下载 PNG/GIF/MP3 文件

问题描述

所以有人帮我使用 Python Rewrite (Bot) 下载了 discord 中的 Image/Gif 我的机器人为服务器/频道创建备份。

这是我的代码(直到我朋友写的部分我才明白)

async def history(ctx,channel_name,path,atcpath):
    if channel_name == "Default":
        channel_name = ctx.channel.name
    files = glob.glob(f"{atcpath}/*")
    for f in files:
        os.remove(f)
    channel = discord.utils.get(ctx.guild.channels,name=channel_name)
    messages = await channel.history(limit=1000).flatten()
    jsonstruct = getJson(path)
    i = len(messages)
    jsonstruct.clear()
    for message in messages:
        content = message.content
        try:
            if message.content == "":
                jsonstruct[i] = f"."
            else:
                jsonstruct[i] = message.content

        except:
            print ("fail")
            pass
    

        #THE PORTION MY FRIEND WROTE
        if (len(message.attachments) > 0):
            async with aiohttp.ClientSession() as session:
                url = message.attachments[0].proxy_url
                async with session.get(url) as resp:
                    if resp.status == 200:
                        f_data = await resp.read()
                        f_path = f"{i}.png"
                        print (atcpath)
                        f = open(atcpath + "/" + f_path,mode='wb')
                        f.write(f_data)
                        f.close()

        i -= 1
    

它工作正常,但问题是它甚至将 GIF 文件下载为 png。 我想将所有图像类型转换为 png 但不是 GIF。 甚至音乐文件也没有通过此代码下载。 所以我的代码应该知道它是什么类型的文件,MP3,PNG,GIF,然后根据那个名称文件的路径?但是我不知道该怎么做,因为我朋友写的代码让我无法理解。

任何帮助将不胜感激,并为我的英语蹩脚感到抱歉。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)