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

Использую aiogram. Нужно сделать так, чтобы сообщение отправлялось в определенное время каждый день. Как это можно реализовать?

  • Вопрос задан более года назад
  • 6414 просмотров

1 комментарий

Простой 1 комментарий

Musickk

Dr. Bacon, д я уже похожий вопрос отметил)
Решения вопроса 1

Vindicar

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

import time from datetime import datetime time = datetime(datetime.now().year, datetime.now().month, datetime.now().day, datetime.now().hour, datetime.now().minute) if time.hour == and time.minute == : await bot.send_message(message.from_user.id, f’Время: :’) else: await bot.send_message(message.from_user.id, time)

Где в и нужно указать час и минуту, при котором, бот будет отправлять сообщение
Ответ написан более года назад

serhiops, нет. При таком решении сообщение отправится только если в пользователь напишет ровно в 12:44 боту.

Отправка уведомлений через телеграм бота на python (питон)

shurshur, а каким образом можно реализовать нужный мне вариант?

serhiops, в обработчике команды ничего не надо отправлять. В нём нужно только добавить задание в очередь с указанием времени. Например (но необязательно!), очередь можно хранить в таблице в базе, для чего сделаем таблицу message_queue с такими полями:

id — главный ключ;
send_time — время отправки;
recipient_id — id получателся;
message — текст сообщения;
status — статус сообщений, пусть имеет значения awaiting или sent.

Вместо отправки добавим сообщение в таблицу в статусе awating (ожидает).

Регулярно пусть выполняется выгрузка из базы сообщений, которые ещё awaitng, но время уже наступило:

SELECT id,send_time,recipient_id,message FROM message_queue WHERE status=’awaiting’ AND send_time

Извлечённые сообщения отправляем. Каждое переводим в статус sent, чтобы не отправить второй раз:

UPDATE message_queue SET status=’sent’ WHERE сообщения в очереди>;

Остаётся вопрос: как организовать регулярную выборку сообщений из очереди? Можно сделать по-разному:

Еще по теме:  Дединскйдовские названия для ТГ канала на английском

1. Сделать отдельный тред в скрипте, который будет отслеживать очередь, перемежая это вызовами sleep. Или вместо треда таску в asyncio (если уже используется aiogram, то это более чем разумно).

2. Обрабатывать очеред в отдельном постоянно запущенном скрипте, либо запускать скрипт из cron каждую минуту.

Первый способ хорош тем, что всё в одном скрипте и потенциально очередь можно хранить не в базе, не в файле, не в брокере очереди типа rabbitmq, а прямо в переменной в скрипте. Правда, при этом в случае падения скрипта все запланированные задания на отправку будут потеряны. Второй хорош тем, что проблемы/тормоза скрипта отправке не будут вредить основному коду бота.

И, наконец, есть ещё один способ, при котором можно избежать организации очереди своими силами — использовать модули schedule/aioschedule (синхронный и асинхронный соответственно). Фактически, они берут на себя сохранение задания в очереди и вызов запрошенной функции в нужное время. Именно это тут посоветовали в первом ответе.

Как в популярном приложении телеграмм поставить время отправки сообщения

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

В Telegram появилась отложенная отправка сообщений и возможность полностью скрывать номер

В Telegram появилась отложенная отправка сообщений и возможность полностью скрывать номер

В мессенджере Telegram появились функция отложенной отправки сообщений и возможность полностью скрывать свой телефонный номер от других пользователей. Нововведения стали доступны после очередного обновления сервиса.

Для того чтобы установить таймер отправки сообщений в десктопной версии, вам необходимо кликнуть правой кнопкой мыши на кнопку отправки и выбрать соответствующую функцию в появившемся меню. В мобильном приложении для этого тоже нужно удерживать кнопку отправки. Кстати, функцию можно использовать и для сохраненных сообщений — тогда они получат значок календаря и станут напоминаниями.

Возможность польностью скрыть свой номер появилась после изменений настроек приватности Telegram. Ранее на наличие уязвимостей в настройках конфиденциальности жаловались участники протестов в Гонконге.

Еще по теме:  Если я удалила сообщение у себя в Телеграме а потом удалила переписку

Ранее Telegram представил функцию беззвучной отправки сообщений и «медленный режим» для чатов.

Источник: www.buro247.ru

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