shurup77
@shurup77

Как сделать отправку сообщения Discord в определенное время?

Как сделать отправку сообщения в, например ровно 18:00 по МСК? В боте discord.py. если можете прямо примеры привезти или статьи - буду благодарен :)
  • Вопрос задан
  • 482 просмотра
Решения вопроса 1
shurup77
@shurup77 Автор вопроса
И так, как я сделал:
from discord.ext.tasks import loop
import datetime

# send auto AOP
@loop(seconds=1)
async def task():
    nowtime = str(datetime.datetime.now().time().strftime("%H.%M.%S"))
    if nowtime == "18.30.00":
            # your task

task.start()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Самый простой вариант через встроенный цикл. bg_task будет выполняться каждые n-единиц времени (в примере - каждую секунду, но для указанного вами условия этого излишне, можно, к примеру, каждые полминуты). Ну и в этой функции нужно проверять время и отправлять в соответствующий момент
import asyncio
import discord
from discord.ext import commands
from discord.ext.tasks import loop

bot = commands.Bot(command_prefix = '!!')

@loop(seconds=1)
async def bg_task():
    pass # doing smth

@bot.command()
async def hi(ctx):
    await ctx.send('Hi!')

bg_task.start()
bot.run('************************')
Ответ написан
@Kadabrov
time.sleep это конечно хорошо, но для таких задач есть
cron
Упрощает работу таких задач в разы, более отказоустойчивый
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы