Auto Post Telegram Bot

Download Build Status

Get automatic notifications about new "AutoPostTelegramBot" versions

Как начать использовать?

Если необходимо самостоятельно собрать проект, можно воспользоваться простой инструкцией:

  1. Скачать проект с Github
  2. Сделать ./gradlew исполняемым (chmod 455 ./gradlew для *nix)
  3. Выполнить ./gradlew build

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

  1. Profit

Возможности

Что бот может?

Если кратко, назначением бота является автоматизация и нормализация создания и публикации постов в каком-либо чате/канале. Под постом в данном случае понимается совокупность сообщений, которые должны быть опубликованы одновременно. Публикация происходит из чата/канала, выбранного как sourceChat путем выставления соответствующего sourceChatId.

A little bit deep или капелька взгляда изнутри

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

База

Данный бот в основе своей имеет абсолютный минимум для запуска:

Если посмотреть на пакет с базовым кодом, вы увидите только базу данных, модельки настроек и плагин-корень. Весь прочий функционал достигается плагинами, описанными после этого раздела.

Плагины

Любой плагин наследуется от класса Plugin

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

Остальное

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

Формат времени

После длительного тестирования и проверок было решено добавить стандартизированную работу с временем, которая позволила бы разработчикам плагинов не писать лишний и повторяющийся код, а пользователям (администраторам каналов и групп) - не забивать голову лишними форматами конфигураций. Итак, что из себя представляет простейший формат времени?

Примеры:

Вольный параметр - значение, которое может увеличиться до следующего, если, например, вы запрашиваете нечто в будущем. Для формата 15 вольным будет час, для 12:15 - день и так далее.

Плагины, включенные в базовый пакет

Секции конфигурации

В корне конфигурации лежат следующие параметры (учтите, что ChatId - именно id, не username):

Заметки

Бот игнорирует сообщения, начинающиеся с / и не являющиеся известной ему командой. Это значит, что какие-то объявления можно писать, начиная сообщение со знака /. Учтите, что если вам понадобится закрепить такое сообщение - сообщение о закреплении будет являться полноценным сообщением и будет отмечено как пост. В таком случае его следует удалить как пост - через команду /deletePost.

Послесловие

Так или иначе, жду отзывы и предложения в Telegram и по email.