1 заметка с тегом

telegram

[Telegram] Core: приближающийся мажорный v2.1

Близится дата релиза следующего «мажорного» апдейта [Telegram] Core, и на момент написания заметки, уже вышли основные изменения, которые будут представлены в новой версии:

  • Несколько ботов. Может использоваться сторонними дополнениями для некоторых специфичных задач.
  • Более удобное API для реализации команд.
    • Для реализации команды, достаточно написать небольшой класс-хандлер (наследуется от специального класса).
    • Ядро строит цепочки обработчиков для той или иной команды. К примеру, есть «супер-обработчик» /start, который при виде специального аргумента, передаст управление на обработчики команды /auth.
    • Пока что необходимо вручную «вставлять» запись в базу при установке; при удалении — удалять. Позже будет механизм импорта/экспорта, как основная часть метаданных самого движка сделана (те же шаблоны).
  • Markdown Renderer. Теперь можно те же темы «рендерить» для отправки в Telegram. Единственные ограничения — это сам Markdown; те же таблицы никак не отрисовать.
  • Пользовательские команды. Можно реализовать свою команду по типу /rules, которая будет выводить относительно статический контент. Может быть полезно в групповых чатах. Для групповых чатов так же позже будет выложено отдельное дополнение, которое расширит возможности интеграции.
  • Клиент и API теперь можно расширять через функционал движка Class extensions.

Обновление

При обновлении на новую версию будут выполнены следующие действия:

  1. Созданы таблицы для хранения обработчиков команд (xf_smodders_tgcore_command), пользовательских команд (xf_smodders_tgcore_user_command) и ботов (xf_smodders_tgcore_bot).
  2. В таблицу обработчиков команд будут занесены все стандартные обработчики (их два): /start и /auth.
  3. Будет произведён импорт токена в «ботов», установлен «бот для авторизации» в настройках интеграции.
  4. Перестроен локальный кеш команд. Пока что он глобальный, но к релизу он станет локальным для каждого бота, и можно будет выключать обработку тех или иных команд для бота индивидуально

Админка

Все скриншоты были сделаны на версии движка XenForo v2.1.10 Patch 2 и версии дополнения [Telegram] Core v2.0.5 Alpha 8
После установки обновления, в админке появится отдельный раздел Telegram

Раздел в админ-панели

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

Выбор бота

В интерфейсе редактирования бота, по сути, есть только одно важное поле для заполнения: токен доступа (он же «Ключ доступа» в русской локализации).

Интерфейс редактирования бота

Если не заполнять заголовок, туда автоматически подставится юзернейм бота.
Если бот был импортирован с прошлой установки — он получит «заголовок» Authorization bot (@username).

«Пользовательские» команды крайне минималистичны на данный момент. При создании команды, Вам нужно заполнить только два поля: сама команда и ответ бота на неё.
В ответе работает шаблонизатор XenForo, и доступна глобальная переменная $xf, что позволяет, к примеру, делать такие штуки:

Пользовательская команда, отправляющая пользователю ссылку на правила

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

Прямо сейчас Вы можете установить текущую альфа-версию на свой форум, но понадобится собрать релизную версию или включить на «продакшене» режим разработчика (как?) и установить дополнение через консоль. Все исходники, как и прежде, доступны на GitHub.

О номере версии

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

8 мес   addons   telegram   telegram core   update announcement   xenforo