Продолжение цикла статей об Авакари. В прошлый раз я рассказывал о запуске телеграм бота. Настало время подробнее рассказать о том, как и зачем этим можно пользоваться.

Общие рекоммендации

Ограничения

На текущий момент бот позволяет каждому пользователю:

  1. Создавать 1 подписку, срок которой никогда не истечёт ("навсегда"). Подписку всегда можно удалять и создавать заново в рамках этого ограничения.

  2. Публиковать в Авакари до 10 сообщений в день.

Телеграм имеет ограничение на доставку ботами сообщений пользователю - не более 20 в минуту на группу. При превышении этого порога могут возникнуть задержки доставки в конкретный чат. Поэтому более специфичные критерии подписок лучше, чем более общие. Например, в случае создания простой подписки следующий запрос к боту создаст подписку с односложным описанием "Telegramdev1" и текстовым условием с ключевыми словами "telegram" и "api":

В результате, подходить под такое условие будут все сообщения, в которых содержатся слова "telegram" или "api". Как можно догадаться, это слишком общие критерии. Лучше:

Использование логики "и" для условий также помогает делать подписки более специфичными. Для этого нужно создавать подписку с помощью кнопки "+ Custom":

Затем нужно нажать кнопку "properties" для корневого условия и выбрать тип условия "Group":

В примере выше - создание "сложной" подписки, где корневое условие является группой из 2-х текстовых дочерних условий. Чтобы сообщение удовлетворяло корневому условию, оба дочерних условия должны выполняться сразу ("And"). В первом текстовом условии перечислены через пробел варианты ключевого слова на английском и на русском. Между этими вариантами будет применяться "или".

Тестирование

Когда подписка имеет очень специфичные условия, новых сообщений для неё можно ждать довольно долго. Но это не проблема, так как всегда можно быстро проверить, правильно ли работает подписка, отправив тестовое сообщение:

Только интересные новости

Самое очевидное применение. Следующий пример подписки демонстрирует следующие возможности:

  1. Фильтрация по источнику сообщений - "habr" (да, с помощью бота можно просто читать хабр в телеграме).

  2. Дополнительное условие - пусть это будет слово "zapier". Честно говоря, я не знаю что это, но будет для примера.

  3. Исключение условиями с отрицанием ("Not"). Здесь будет то, что будет "отбраковывать" сообщения, удовлетворяющие такому условию. Очень полезно для фильтрации спама.

Для этого потребуется создание "сложной" (Custom) подписки и выбор группы в качестве корневого условия. Дочерние условия можно добавлять кнопкой "+ Condition":

После этого можно указать дополнительное условие для исключения:

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

Получить работу мечты

Авакари на данный момент получает сообщения из почти 50-и лент новостей и ещё столько же популярных телеграм каналов. Среди них есть те, что публикуют вакансии, причём на разных языках и в разных странах. И дальше количество источников сообщений будет планомерно наращиваться. Поэтому это может быть полезно тем, кто ищет работу. Для этого нужно создать подписку следующего вида:

После чего можно ждать, пока Авакари не найдёт подходящую работу:

Доска объявлений

Среди источников Авакари также есть множество каналов коммерческих объявлений. И также на разных языках. Поэтому это можно использовать как "доску объявлений":

Когда/если количество пользователей вырастет, также станет возможным публиковать собственные объявления о продаже машины, коляски, ноутбука и так далее.

Мониторинг упоминаний

Авакари позволяет в режиме реального времени получать уведомления об упоминании кого-либо или чего-либо во множестве самых разных СМИ. Может быть полезно, когда:

  • Вы - знаменитость

  • Следите за новостями о знаменитости

  • Следите за новостями о компании, бренде или конкуренте

В прошлый раз автор уже получил уведомление, о том, что некто упомянул Awakari в новой статье на Хабре:

PS

Статья посвящена демонстрации экспериментальной системы, поэтому пишите о своих вопросах и предложениях в комментариях, либо в телеграм группе.

Комментарии (13)


  1. iamoblomov
    16.10.2023 10:19
    +1

    В смысле, я не понял, а источники новостей что, фиксированные и их нельзя поменять?

    Есть такая штука иноридер, он тоже умеет по кейвордам из ютуб тг и RRS выбирать подборки, но там прайс несколько завышен за большое количество поисков


    1. akurilov Автор
      16.10.2023 10:19
      +1

      Действительно, возможность добавлять произвольные источники сообщений нужна. Надо подумать над этим. Спасибо за информацию.


      1. iamoblomov
        16.10.2023 10:19

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

        Допустим я хочу получать политические новости или про войну (ну может я больной, или наоборот психически устойчивый). А у вас там одна медуза и прочие бибиси с дойчавеллями, или наоборот рашатудей, соловьиный помет и газета правда (или как там она щас называется)


        1. akurilov Автор
          16.10.2023 10:19

          Всё не совсем так. По идее, на входе должно быть все подряд. С помощью условий своей персональной подписки вы решаете, что получать, а что нет.

          Среди источников может быть и бибиси и газета правда. Возможности удалять чужие источники для всех не будет.

          Полный контроль над источниками - только когда деплоите авакари у себя.

          В остальном - нет проблем. Возможность добавления источников будет добавлена в ближайшее время. Пока что можете сделать это пулл реквестом. Потом можно будет делать это через бота.


          1. iamoblomov
            16.10.2023 10:19

            имхо сейчас дело в том что вы используете выборку под себя, и от этого вам то и она и результаты поисков кажутся идеальными, но как говорится есть нюанс, люди разные)


            1. akurilov Автор
              16.10.2023 10:19

              Возможность добавлять свои источники скоро появится


    1. akurilov Автор
      16.10.2023 10:19

      И ещё кое-что

      https://www.inoreader.com/developers/stream-contents

      Иноридер - это про поллинг, в то время как авакари делает push новых сообщений сразу. Используя иноридер вы не сможете получать обновления раньше, чем их запросите сами. А ещё у них есть рэйт лимит, что накладывает ограничения снизу на время доставки. По умолчанию - не чаще чем раз в 15 минут. Это минимальная задержка новостей в Иноридер в идеальном случае

      См. также:

      https://dev.to/anubhavitis/push-vs-pull-api-architecture-1djo

      Покопал ещё, Иноридер может пуш, но только в своём мобильном приложении


      1. iamoblomov
        16.10.2023 10:19

        Ну вот смотрите, мой кейс с иноридером. В источниках сотня RSS, телеграмм каналы, ютуб. Ищутся:

        1. Обновления программ на трекерах. Допустим базы консультант+, или солидворкс

        2. Курсы и имена тренеров, допустим тот же солидворкс, компас, Журавлев, Шадрин на сайтах сливов

        3. Интересные темы, допустим микротик, висфера, проксмокс или шэдоусокс

        Все это работало прекрасно пока не стало стоить 30 долл в месяц за сто поисков. теперь в поиске, рассматриваю стендалоун решения, где хостить у меня есть. Пробовал тинирсс фрешрсс, все не то, но как то с костылями можно юзать

        А зачем пуш. Иноридер делал из результатов одну ленту на которую можно было подписаться в любом ридере


        1. akurilov Автор
          16.10.2023 10:19

          Я не знаю, что такое сайты сливов, но в остальном я использую авакари также.

          Пуш жизненно необходим для масштабирования и снижения задержки.

          Если 1000 юзеров будут опрашивать обновления с периодом 1 мин? А если больше юзеров? Правильно, будет очень дорого и, по крайней мере, часть ресурсов уйдёт впустую. Потому что не каждый запрос будет приносить новые результаты. При росте числа пользователей у Иноридера будет линейно расти стоимость обслуживания и нагрузка. При росте входного трафика нагрузка будет расти ещё быстрее. Поэтому они и дальше будут поднимать цену.

          Иноридер это решает путем рэйт лимита - не более 100 запросов в день. Но тогда мин задержка становится от 15 мин и выше. Тоже плохо.

          Короче, поллинг не масштабируется, поэтому обратный поиск и пуш. Я это решил сразу же, на начальном этапе проектирования ещё. Поэтому на выходе - не RSS и его в принципе не будет.

          Также я сразу отказался от идеи своего UI и мобильного приложения. Зачем изобретать велосипед, если уже есть телеграч.


          1. iamoblomov
            16.10.2023 10:19

            Ну если один сервер, селфхостед и один или пара тройка юзеров, это несущественно.

            Обратный поиск вообще выглядит красиво, с точки зрения идеи алго, но я лично готов любые разумные вычислительные ресурсы выделить, лишь бы работало)

            Для меня не критично придет новость о том что выложили новые базы консультант+ или видеоуроки прямо сейчас, или через 15мин. Мне наоборот предпочтительнее формат дайджеста

            Ютуб по метаданным к видео планируется? А есть вообще техническая возможность получить доступ к полным автосубтитрам к видео?


            1. akurilov Автор
              16.10.2023 10:19

              Можно сделать переходник для rss, но хостить ленту юзер будет у себя. Хороший вариант для contribution от community)

              Что такое ютуб по метаданным к видео? Где там источник сообщений? Я знаю что у ютуба есть xml ленты обновлений для каналов и некоторые из них уже используются


              1. iamoblomov
                16.10.2023 10:19

                Описание к видео, теги. Иноридер умеет искать по ним. Где то видел проект человек пилит поиск по субтитрам в ютуб, но не могу вспомнить где


                1. akurilov Автор
                  16.10.2023 10:19

                  Авакари - не поисковая система. Только обратный поиск заинтересованных по входящим сообщениям.