Пару месяцев назад в публичном доступе появился телеграм-бот Awakari. Он позволял управлять подписками и источниками, получать и отправлять сообщения в систему. После успешной интеграции с Telegram естественным образом возник вопрос - почему бы не интегрировать Awakari также с WhatsApp, WeChat и так далее? Однако дублировать одни и те же функции интерфейса в разных чат-ботах желания не нашлось. В итоге, было решено остановиться на web UI для функций управления подписками и источниками. Мессенджеры должны эксплуатироваться по своему прямому назначению - для отправки и доставки сообщений. В этой статье я расскажу о том, что из этого вышло.
Но сначала небольшое введение для тех, кто впервые читает об Awakari:
Awakari - бесплатный сервис, который "читает интернет" за вас и уведомляет вас только о том, что вам интересно. Для этого достаточно создать подписку с "поисковым" запросом на интересующие вас темы и ждать новых сообщений. Сервис получает сообщения из разных источников: уже 100 лент RSS, 74 телеграм-каналов, 35 сайтов. Если нужного источника нет в списке, можно добавить свой.
Можно установить это как PWA, что может быть удобно при работе с мобильного телефона.
![Установка PWA на Android Установка PWA на Android](https://habrastorage.org/getpro/habr/upload_files/0f1/e02/816/0f1e02816bb82ce8b0815bd9a6e33395.png)
Сервис принципиально не хранит никаких данных пользователей, аутентификация - внешняя. На данный момент, чтобы получать сообщения по подпискам в телеграм, нужно выбрать соответствующий способ (единственно доступный к тому же):
![](https://habrastorage.org/getpro/habr/upload_files/6a7/216/a1a/6a7216a1a46ec04957294851d6f52715.png)
Сервис состоит по сути из двух основных функций - Publish и Subscribe. Поэтому интерфейс содержит эти две вкладки:
![](https://habrastorage.org/getpro/habr/upload_files/cef/b7b/c2d/cefb7bc2d35a366513bb4bcc589c92a1.png)
На вкладке "Pub" можно управлять источниками сообщений или отправить отдельное сообщение кнопкой "+ Message". Если очень нужно отправить картинку, видео или что-то такое, то лучше перейти по кнопке "Publish in Telegram".
![Интерфейс подсказывет варианты наиболее часто используемых атрибутов сообщений. В зависимости от выбранного атрибута также автоматически выбирается тип и пример значения атрибута. Интерфейс подсказывет варианты наиболее часто используемых атрибутов сообщений. В зависимости от выбранного атрибута также автоматически выбирается тип и пример значения атрибута.](https://habrastorage.org/getpro/habr/upload_files/cf8/baf/4cf/cf8baf4cfb4ca7b8cea808f835d38ec2.png)
Соответственно, на вкладке "Sub" - всё для управления подписками текущего пользователя:
![](https://habrastorage.org/getpro/habr/upload_files/af1/b81/3f9/af1b813f9ea604ee50aeb8214cbf6fbd.png)
Новую подписку можно создать нажатием кнопки "+ Subscribe". Диалог создания новой подписки имеет новый упрощенный вид, где можно просто перечислять ключевые слова через пробел. В этом упрощенном режиме можно также создать "цепочку фильтров" (до 4-х), каждое из которых будет обязательным условием (если указано и не пустое):
![](https://habrastorage.org/getpro/habr/upload_files/dc0/4d2/c33/dc04d2c33d4be0a050622a5f2afc3bd3.png)
Продвинутый режим переключается с помощью "Advanced" вверху справа. Тогда диалог создания подписки будет выглядеть также, как и редактирование уже существующей подписки, то есть так:
![](https://habrastorage.org/getpro/habr/upload_files/851/023/dd7/851023dd72145ee93767e5f855e88f90.png)
В расширенном режиме можно задавать более сложные условия фильтрации и группировать их. Подробнее об этом - в статье Использование Awakari на практике.
Другие изменения в Awakari
Источники сообщений
Для ресурсов, у которых нет ни полезного телеграм канала, ни RSS-ленты появилось новое экспериментальное решение. Тип источника "сайт", который поддерживает адреса произвольных сайтов интернета. Сообщения генерируются, если на сайте есть изменения. Изменения проверяются раз в сутки.
![:Каждое из результатов становится отдельным сообщением :Каждое из результатов становится отдельным сообщением](https://habrastorage.org/getpro/habr/upload_files/885/9de/ee1/8859deee15bddd1717d8e9159affdb2c.png)
Для добавления сайта нужно выбрать соответствующий тип, адрес следует указывать без протокола "https://":
![](https://habrastorage.org/getpro/habr/upload_files/993/271/5a6/9932715a624a3b12381b526595eac757.png)
Телеграм бот
Все дублирующиеся в PWA функции были удалены из телеграм-бота. Таким образом, бот теперь может использоваться только для отправки и получения сообщений. При этом, добавился новый режим работы бота в телеграм-канале, который дополняет существующий телеграм-клиент, читающий сообщения публичных каналов.
Таким образом, у телеграм бота теперь 3 режима работы:
Приватный чат - для отправки сообщения в Awakari.
Группа - выбор подписки и чтение входящих сообщений по этой подписке.
Канал - бот читает сообщения канала и отправляет их в Awakari.
Поэтому предпочтительный способ добавления телеграм-канала в коллекцию источников Awakari теперь - это пригласить бота в канал. К сожалению, телеграм позволяет добавлять бота в канал только как админа, но можно просто выключить все админские права:
![Для спокойствия Для спокойствия](https://habrastorage.org/getpro/habr/upload_files/6bf/4be/a26/6bf4bea26af96224ed1d2c9f8db010d4.jpg)