Категории

Язык
Окружение
Проект

1 ноября 2015 г. 16:50 (ред. 1 ноября 2015 г. 16:56)
Вслед за torrt рассылать телеграммы научилось и django-sitemessage.
Напомню, что в начале этой недели поддержка рассылки телеграмм появилась в приложении torrt, сегодня же вышла очередная версия django-sitemessage — приложения для Django, представляющего собой каркас для рассылки разного типа сообщений различными способами (эл. почта, Jabber, Twitter и пр.)

Отсылка телеграмм потребует установленного пакета requests. В остальном она ничем не отличается от рассылки прочих типов сообщений — выполняются два основных шага: 1. конфигурируется посыльный (Messenger) нужного типа (обычно нужные посыльные конфигурируются в файле sitemessages.py одного из приложений вашего проекта); 2. сообщение ставиться в очередь отправки (это может происходить, например, по сигналу при возникновении какого-либо события):


from sitemessage.shortcuts import schedule_telegram_message
from sitemessage.messengers.telegram import TelegramMessenger

# Конфигурируем посыльного Telegram.
# `bot_token` - это токен, полученный при создании телеграм-бота.
register_messenger_objects(TelegramMessenger('bot_token'))

# Ставим сообщение в очередь.
# Оно будет отослано в переписку (чат) с ID 01234567.
schedule_telegram_message('Бот приветствует вас.', '01234567')

Если у вас получилось создать своего бота, то, скорее всего, получится и узнать нужный ID переписки, но чтобы упростить эту задачу ещё, можно воспользоваться методом посыльного get_chat_ids(), возвращающим список идентификаторов переписок с пользователями, которые отослали боту команду /start.

Отослать сообщение можно и в канал, если использовать вместо ID переписки нотацию @channelname, однако для этого бот должен состоять в списке администраторов канала. Ввиду того, что каналы появились относительно недавно, с отсылкой вполне могут возникать различного рода проблемы.

Помимо описанного выше, в версии 0.7.0 появилась функция-упрощение schedule_tweet() для быстрого отправления твитов; исправлена ошибка в работе функции get_user_preferences_for_ui(), генерирующей данные для виджета, при помощи которого пользователи могут подписываться на сообщения нужного типа самостоятельно; для фильтрации доступности в упомянутом ранее виджете для классов сообщений и посыльных добавлена возможность указания атрибута allow_user_subscription.

Оповещайте.