微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 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 举报,一经查实,本站将立刻删除。