Попытка заставить моего диссон-бота набрать python, чтобы произносить одно и то же сообщение каждые 5 секунд. - PullRequest
0 голосов
/ 08 января 2020

Я делаю что-то вроде хака для промозглого мемера. Я сделал свой собственный бот. Моя цель с ботом состояла в том, чтобы заставить его повторять каждые 5 секунд "pls search". В конце концов, я бы сделал команду, которая говорит: «Пожалуйста, дайте 100», чтобы получить монеты. Вместо того, чтобы показываться в раздоре, он появился в моем приложении.

@client.command()
async def go(ctx):
    def printit():
        threading.Timer(5.0, printit).start()
        await ctx.send("pls search")
    printit()  

1 Ответ

0 голосов
/ 08 января 2020

Это будет непрерывно отправлять сообщения, но вы получите ограниченную скорость. Это работает путем планирования задачи в событии l oop, которая отправляет сообщения, а затем отменяет ее.

import asyncio

@bot.command()
async def comm(ctx):
    async def f():
        while True:
            # await asyncio.sleep(.5)  # Control message speed
            await ctx.send('Test')
    await ctx.send("Start")
    task = asyncio.create_task(f())
    await asyncio.sleep(5)
    await ctx.send("End")
    task.cancel()
...