首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复制大容量消息时的Discord.py问题

复制大容量消息时的Discord.py问题
EN

Stack Overflow用户
提问于 2020-12-11 11:16:59
回答 1查看 177关注 0票数 0

就上下文而言,我为服务器创建了一个与我自己和我的朋友不和谐的机器人。

我希望这个机器人所做的部分是为了备份,能够在一个通道中复制所有的消息,因为有些通道有我们永远不想丢失的东西。

我已经将它用于复制消息,但它在连续复制多条消息时遇到了问题。

下面是代码:

代码语言:javascript
复制
@client.command()
async def MessageCopy(ctx, comeFrom, goTo):
    attachments = []
    aafile = None
    fromChannel = client.get_channel(int(comeFrom))
    toChannel = client.get_channel(int(goTo))
    async for message in fromChannel.history(oldest_first=True, limit=None):
        if not message.attachments == None:
            for file in message.attachments:
                aafile = await file.to_file()
                attachments.append(aafile)
        try:
            await toChannel.send(content=message.clean_content, file=aafile)
        except:
            continue
        attachments = []
        aafile = None

客户端定义为

代码语言:javascript
复制
commands.Bot(command_prefix="$", case_insensitive=True)

机器人每次都被捕捉到相同的消息,消息没有什么特别之处,它不会抛出错误,它只是悄悄地停止复制。如果这很重要,那就是它无法复制的通道中的第9639条消息。

编辑:我通过它运行了另一个频道,它又安静地停止了,这次是在9758消息上。

EN

回答 1

Stack Overflow用户

发布于 2020-12-11 23:59:33

我找到了解决办法。

结果可能是

代码语言:javascript
复制
aafile = file.to_file()

这会导致它停止复制,代码会导致错误,它会悄悄地停止。

因此,我将代码修改为:

代码语言:javascript
复制
for file in message.attachments:
    try:
        aafile = file.to_file()
        attachments.append(aafile)
    except:
        continue
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65250321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档