如何制作定时函数并使用“ ctx”? (Discord.py)

时间:2018-10-28 15:22:24

标签: python-3.x discord.py

因此,我正在尝试为使用Python的Discord机器人创建一个定时函数。

所以我的功能如下:

async def checkday(ctx):
    while(True):
        "code yada yada"
        if true:
            await ctx.send("hello")
        await asyncio.sleep(X)

并在底部:

bot.loop.create_task(checkday())

但是,我遇到此错误:

Traceback (most recent call last):
  File "C:\Users\philk\Desktop\Discord Bot\testrevbot.py", line 374, in <module>
    bot.loop.create_task(checkday())
TypeError: checkday() missing 1 required positional argument: 'ctx'

所以我假设这里缺少一个论点:

bot.loop.create_task(checkday())

我将如何解决此问题?我相信我正在使用重写,所以有没有一种方法可以在没有上下文的情况下发送消息?

编辑:例如,我想每12小时在checkday()中运行一次循环,如果满足条件,则发送一条消息。

https://github.com/Rapptz/discord.py/blob/rewrite/examples/background_task.py”似乎不适用于我。

1 个答案:

答案 0 :(得分:-2)

如果您是在嵌齿轮中执行此操作,则很可能会丢失self作为第一个参数。