Как запланировать сообщение в дискорде

Изначально Discord создавался как место, где игроки могут собираться вместе и использовать голосовой чат. Сервис постоянно получает новые функции, и скоро появится новый пакет, в котором вы планируете события на сервере и меняете свой профиль для каждого сервера, на котором вы находитесь.

В соответствии с Грани, приложение чата получает новую функцию запланированных событий, которая позволяет вам создавать событие и делиться им с сервером, как событие Facebook. Лично я использую Discord для удаленных игр Dungeons D, вы можете использовать имя своего персонажа на сервере, посвященном игре Dhttps://cpab.ru/discord-nakonec-to-pozvolit-vam-planirovat-servernye-sobytiya/» target=»_blank»]cpab.ru[/mask_link]

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

edward_freedom

edward_freedom, да, я пытался через нее делать, но почему-то он не отправляет сообщение 🙁

Как сделать в Дискорде отложенные сообщения как Вконтакте?


Как лучше реализовать на данной либе?

edward_freedom

Денис, сделай вместо отправки сообщения вывод в консоль и проверь работоспособность таймера

shurup77

edward_freedom, хорошо, спасибо. Попробую)
Решения вопроса 1

shurup77

И так, как я сделал:
Ответ написан более года назад
Комментировать
Нравится Комментировать
Ответы на вопрос 2

AlexNest

Работаю с Python/Django

Самый простой вариант через встроенный цикл. bg_task будет выполняться каждые n-единиц времени (в примере — каждую секунду, но для указанного вами условия этого излишне, можно, к примеру, каждые полминуты). Ну и в этой функции нужно проверять время и отправлять в соответствующий момент

Ответ написан более года назад

shurup77

Получается в «bg_task» сделать if, где сравнивается настоящие время(берется из datetime.now) и время которое надо, потом внутри этого if’а я пишу что мне надо сделать. А в конце всего кода прописываю например «bg_task.start()» ?

Еще по теме:  Что такое днд дискорд

Источник: qna.habr.com

discord.py как отправлять сообщения каждый день в определенное время

Я хочу создать бота раздора, который отправляет 2 сообщения каждый день в определенное время. Следующий код заставит сообщения войти в цикл и будет отправлять сообщение, например, каждые 5 секунд. Как я могу установить определенное время для отправки сообщений каждый день, например, сообщение 1 в 18:00 и сообщение 2 в 10:00. Я нашел этот код здесь, но не нашел того, что хотел.

Как настроить отображение сообщений в дискорде ( Discord )

Anthony Kez 7 Сен 2020 в 02:14

4 ответа

Вот простая реализация. Каждый день он спит до целевого времени, а затем отправляет ваше сообщение.

from discord.ext import commands from datetime import datetime, time, timedelta import asyncio bot = commands.Bot(command_prefix=»$») WHEN = time(18, 0, 0) # 6:00 PM channel_id = 1 # Put your channel id here async def called_once_a_day(): # Fired every day await bot.wait_until_ready() # Make sure your guild cache is ready so the channel can be found via get_channel channel = bot.get_channel(channel_id) # Note: It’s more efficient to do bot.get_guild(guild_id).get_channel(channel_id) as there’s less looping involved, but just get_channel still works fine await channel.send(«your message here») async def background_task(): now = datetime.utcnow() if now.time() > WHEN: # Make sure loop doesn’t start after as then it will send immediately the first time as negative seconds will make the sleep yield instantly tomorrow = datetime.combine(now.date() + timedelta(days=1), time(0)) seconds = (tomorrow — now).total_seconds() # Seconds until tomorrow (midnight) await asyncio.sleep(seconds) # Sleep until tomorrow and then the loop will start while True: now = datetime.utcnow() # You can do now() or a specific timezone if that matters, but I’ll leave it with utcnow target_time = datetime.combine(now.date(), WHEN) # 6:00 PM today (In UTC) seconds_until_target = (target_time — now).total_seconds() await asyncio.sleep(seconds_until_target) # Sleep until we hit the target time await called_once_a_day() # Call the helper function that sends the message tomorrow = datetime.combine(now.date() + timedelta(days=1), time(0)) seconds = (tomorrow — now).total_seconds() # Seconds until tomorrow (midnight) await asyncio.sleep(seconds) # Sleep until tomorrow and then the loop will start a new iteration if __name__ == «__main__»: bot.loop.create_task(background_task()) bot.run(‘token’)

Еще по теме:  Как зайти в настройки в дискорд

Distorted Pumpkin 19 Мар 2021 в 23:57

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...