Skip to content

Releases: prethink/PRTelegramBot

v0.9.5

03 Jan 05:01

Choose a tag to compare

🧩 Common

  • В PRBotBase добавлен метод SetServiceProvider.
  • Если в DI добавлен ILogger, а не ILoggerFactory, бот попытается его использовать для логирования.

Приоритет источников логера:

  1. Фабрика логеров, заданная в билдере
  2. ILogger из DI
  3. ILoggerFactory из DI
  4. Встроенная фабрика логеров (fallback)

v0.9.4

03 Jan 02:20

Choose a tag to compare

🧩 Common

  • Telegram.Bot: обновлен до 22.8.1

v0.9.3

01 Jan 23:17

Choose a tag to compare

🧩 Common

  • Telegram.Bot: обновлен до 22.8.0

v0.9.2

28 Dec 00:01

Choose a tag to compare

🧩 Common

  • Библиотека Microsoft.Extensions.Configuration обновлена до версии 9.0.11
  • Библиотека Microsoft.Extensions.Configuration.Json обновлена до версии 9.0.11
  • Библиотека Microsoft.Extensions.Configuration.Json обновлена до версии 9.0.11
  • Библиотека Microsoft.Extensions.Hosting.Abstractions обновлена до версии 9.0.11
  • Добавлена библиотека Microsoft.Extensions.Logging.Abstractions версии 9.0.11

🧾 Logger

  • Добавлена поддержка ILogger и ILoggerFactory.
  • Через PRBotBuilder можно указать собственную фабрику логеров ILoggerFactory, которая будет использоваться для создания ILogger.
  • Также поддерживается получение ILoggerFactory из DI-контейнера.
  • Если ни один из вариантов не задан, используется встроенная (дефолтная) фабрика логеров, которая обеспечивает обратную совместимость со старым механизмом.

Приоритет источников логера:

  1. Фабрика логеров, заданная в билдере
  2. ILoggerFactory из DI
  3. Встроенная фабрика логеров (fallback)

v0.9.1

23 Dec 01:11

Choose a tag to compare

🔄 Breaking changes

  • В MiddlewareBase стал абстрактным классом.
  • В MiddlewareBase добавлено новое свойство ExecutionOrder. Определяет порядок выполнения.

Common

  • В PRConstants добавлена константа ALL_BOTS_ID = -1. Данный идентификатор используется, когда следует применить команду для всех ботов. Может относиться не только к командам.
  • Мелкий рефакторинг
  • Добавлен модуль фоновых задач. Фоновые задачи поддерживают DI
  • В MiddlewareBase добавлена поддержка DI.
  • Добавлена поддержка шины событий.

v0.9

13 Dec 00:41

Choose a tag to compare

🔄 Breaking changes

  • PRBotBuilder перенесён из PRTelegramBot.Core в PRTelegramBot.Builders
  • Метод Message.NotifyFromCallBack перенесён в IBotContext

🧱 Builders

  • Добавлен builder reply-кнопок — ReplyKeyboardBuilder
  • Добавлен builder inline-кнопок — InlineKeyboardBuilder

♻️ Refactoring

  • Проведён рефакторинг класса Message
    Класс разделён на отдельные компоненты:
    • MessageSender
    • MessageEditor
    • MessageDeleter
    • MessageNotification
    • MessageCopier
    • MediaEditor
    • MediaSender

📋 Inline меню/конвертация

  • Добавлен интерфейс IInlineMenuConverter для конвертации данных для inline меню.
  • В Builder бота теперь можно указать свою реализацию конвертации меню .SetInlineMenuConverter(IInlineMenuConverter inlineMenuConverter)
  • Добавлен класс FileInlineConverter, реализующий IInlineMenuConverter для конвертации данных в inline меню с использованием файловой системы для обхода ограничения размера callback_data.

🧱 Builders

🧭 Контекст выполнения

  • Добавлен BotContextScope, обеспечивающий доступ к текущему экземпляру бота и контексту в рамках обработки обновления.
    Теперь можно легко получить их в любом месте кода, если этот код был вызван обновлением telegram:
    var currentContext = CurrentScope.Context; var currentBot = CurrentScope.Bot; var serviceScope = CurrentScope.Services (IServiceProvider);

📡 События

  • Добавлены события для updateType:
    • PurchasedPaidMedia
    • BusinessMessage
  • Добавлены события для messageType:
    • PaidMedia
    • RefundedPayment
    • Gift
    • UniqueGift
    • PaidMessagePriceChanged
    • Checklist
    • ChecklistTasksDone
    • ChecklistTasksAdded
    • DirectMessagePriceChanged
    • SuggestedPostApproved
    • SuggestedPostApprovalFailed
    • SuggestedPostDeclined
    • SuggestedPostPaid
    • SuggestedPostRefunded

🏗 Инициализация бота

  • В билдер добавлена возможность указать Action инициализации бота. SetInitializeAction(Action action). Данный Action будет вызван при старте бота после инициализации всех менеджеров.

👮 Менеджеры и интерфейсы

  • AdminManager теперь реализовывает интерфейс IAdminManager.
  • В интерфейсы IUserManager, IWhiteListManager, IAdminManager добавлен метод Initialize().

💉 Интеграция с DI

  • Интерфейсы IInlineMenuConverter, IPRSerializer, IAdminManager, IWhiteListManager должны подружиться с DI.
    Если вы используете DI контейнер, то зарегистрируйте их там и боты сами подтянут о них информацию в AdminManager, WhiteListManager.
    Приоритетность использования ботом данных интерфейсов работает в следующем порядке.
  1. Через установку билдера SetAdminManager, SetWhiteListManager, SetInlineMenuConverter, SetPRSerializer
  2. Через DI
  3. Локальные/дефолтные классы.

v0.8.6

08 Dec 00:16

Choose a tag to compare

  • Telegram.Bot: обновлен до 22.7.6

v0.8.5

04 Dec 02:04

Choose a tag to compare

  • В атрибут SlashHandlerAttribute добавлена возможность указать символ разделителя для аргументов. Пример [SlashHandler('_', "/get")]
  • Добавлена возможность при выполнение slash команд получить список аргументов из контекста.
    var args = context.GetSlashArgs();
    var args = context.GetSlashArgs();
    var args = context.GetSlashArgs();
  • /start с deeplink теперь можно использовать в своих slash методах, а не как раньше, только через события.

v0.8.4

29 Nov 03:14

Choose a tag to compare

  • В билдере теперь есть возможность указать каким сериализатором пользоваться (SetInlineSerializer) для Inline кнопок. JsonSerializerWrapper или ToonSerializerWrapper. ToonSerializerWrapper использует меньше байт в callback_data.
  • При создание экземпляра сериализатора можно устанавливать параметры сериализации.
  • Добавлен класс глобальных настроек проекта PRSettingsProvider.
  • Добавлена библиотека ToonNet.
  • Добавлена Microsoft.Extensions.Hosting.Abstractions для возможности использования бота как IHostedService сервиса.

v0.8.3

09 Nov 07:25

Choose a tag to compare

Telegram.Bot: обновлен до 22.7.5