Подобной возможности нет в самом Discord.
Например, как в том же VK или Telegram.
Но есть
tasks и библиотека
shedule, которая позволяет задавать время.
Однако
tasks делает не в задаваемое время, а в
каждое указанное время (каждые 5-10-15 секунд-минут-часов).
shedule хоть и может отправлять в определенное время
every().day.at("время").do(job)
,
но не может указать дату и блокирует весь остальной функционал, то есть можно запустить только одну задачу, без параллельного выполнения.
Да, можно запустить проверку в отдельном треде через
thread.start(), но опять же только на одно сообщение. Не очень удобно.
Также пробовал вариант со сравнением текущего времени и нужного, но там опять блокируется функционал на одной задаче.
Получилось прийти к вот такому варианту, но только для одного сообщения:
@tasks.loop(seconds=5)
async def late():
global need_date
if datetime.datetime.now().replace(microsecond=0)==need_date:
await msg.publish()
if need_date!=None:
late.start()
Вопрос: есть ли возможность сделать
несколько параллельно работающих отложенных сообщений, которые не будут блокировать остальной функционал и будут отправляться в заданные дату и время?
Условия таковы, что необходимо задавать сообщение и время не через слэшовую
def функцию, а через лс.
Например, сначала присылается текст, записывается в переменную, потом картинки, кнопка и т.д.
Реально ли при таких условиях сделать их несколько?
Или из-за наличия переменных, которые каждый раз перезаписываются, это нужно переделывать?