首页 > 解决方案 > discord.ext 在正确通道中发送和设置状态的问题

问题描述

我正在使用 discord.py,然后是 discord.ext 模块。我有一个很长的硒代码在while True循环中运行。这是其中的一部分:

@bot.command()
    async def start(ctx):
        driver.install_addon(r'some_extension.xpi')
        channel = bot.get_channel(791352165393498203)
        user = bot.get_user(257428782233812993)
        while True:
            await bot.change_presence(status=Status.online)
            driver.get('some_link')
            driver.maximize_window()
            time.sleep(5)
            try:
                driver.find_element_by_xpath('//*[@id="pageSize"]').click()
            except NoSuchElementException:
                await ctx.channel.send(f" We had an Exception, please go check")
                time.sleep(60)
                driver.refresh()
                time.sleep(5)
                driver.find_element_by_xpath('//*[@id="pageSize"]').click()
                time.sleep(1)
                await ctx.channel.send(f"Problem solved")

大部分代码都可以正常工作,但有两个主要问题,我没有遇到异常。

标签: pythonpython-3.xdiscord.py

解决方案


  1. Just use channel.send()without ctx,ctx是一堆关于使用的命令(作者、频道等)的信息。
  2. 您无需将状态更改为在线,它会在您启动机器人时自动设置。

哦,我建议使用asyncio.sleep()而不是time.sleep()因为,当你使用time.sleep()机器人时,此时机器人将停止工作,并且不会响应任何命令/事件。


推荐阅读