如何在不使用“除外”python的情况下退出不和谐机器人

Posted

技术标签:

【中文标题】如何在不使用“除外”python的情况下退出不和谐机器人【英文标题】:How to quit a discord bot without using 'except' python 【发布时间】:2021-11-08 08:57:54 【问题描述】:

需要快速帮助 这是仅发布到不和谐频道的代码',我已经使用了 while 循环和所有这些,但没有任何效果。

def post_discord():
    print('POSTING NEW OFFER TO DISCORD')
    token = 'token here'
    while True:
        bot = commands.Bot(command_prefix='!')
        @bot.command()
        async def on_ready():

            await bot.wait_until_ready()
            channel = bot.get_channel(12345678) # replace with channel ID that you want to send to
                # await channel.send()
            await channel.send(text,file =discord.File('promo.png'))

            await asyncio.sleep(2)

            # exit()
            # await bot.close()





        bot.loop.create_task(on_ready())

        bot.run(token)
        time.sleep(3)

【问题讨论】:

我建议改用 Discord webhook。详细答案见here 【参考方案1】:

如果您真的只想在机器人完成您希望它做的任何事情后停止运行,那么您正在寻找的是discord.Client.logout()。在您的场景中,用法为bot.logout()

尽管正如回复您帖子的人所说,webhook 可能更适合您的用例。使用 requests 发送消息的简单 webhook 如下所示:

import requests


data = "content": "Message Content"
requests.post("Webhook URL", data=data)

Discord 的相关文档可以在 here 找到,这条路线的显着限制是您无法附加文件,但如果您只需要发送图像和一些文本,则可以使用 .png 链接足够了,因为 Discord 将隐藏消息中的链接。

【讨论】:

以上是关于如何在不使用“除外”python的情况下退出不和谐机器人的主要内容,如果未能解决你的问题,请参考以下文章

如何在不将其注册为机器人的情况下创建不和谐机器人?

如何在不使用终端的情况下退出 omxplayer?

Python多重处理会在不退出文件的情况下失去活动性

如何在不退出的情况下更新会话值?

在不退出程序的情况下引发异常

如何在不退出的情况下使用 Firebase API 创建新用户? [复制]