# PRTelegramBot

> #### <mark style="color:$info;">**Если проект был вам полезен, вы можете поддержать его развитие на Boosty:**</mark> [<mark style="color:orange;">**https://boosty.to/prethink**</mark>](https://boosty.to/prethink) <mark style="color:$info;">**Звезда ⭐**</mark> [<mark style="color:blue;">**репозиторию**</mark>](https://github.com/prethink/PRTelegramBot) <mark style="color:$info;">**тоже будет отличной поддержкой.**</mark>

## Исходники

<https://github.com/prethink/PRTelegramBot>

Документация актуальна для версии 0.9.7

## ⚛️ Ядро фреймворка

***Внимание! В основе PRTelegramBot лежит библиотека*** [***TelegramBot***](https://github.com/TelegramBots/Telegram.Bot)***, поэтому вы можете использовать все функции которые задействует эта библиотека.*** [***Документация***](https://telegrambots.github.io/book/)

* TelegramBot v22.9.0 <https://github.com/TelegramBots/Telegram.Bot>

## 💎 Функционал

* **Работа с reply командами.** Поддержка простых текстовых команд.
* **Работа с динамическими командами ответа.** Текстовые команды, загружаемые из конфигурационного файла без необходимости компиляции.
* **Обработка команд с параметрами.** Возможность работы с командами, содержащими параметры в скобках, например, "Тест (1)".
* **Работа с slash командами.** Обработка команд типа /get\_1, /users и других текстовых команд.
* **Гибкая работа с inline-командами.** Генератор и парсер inline-команд.
* **Создание меню.** Простое и гибкое создание reply и inline меню.
* **Работа с конфигурационными файлами.** Поддержка конфигурационных файлов для каждого бота с возможностью реализации собственного провайдера конфигураций. По умолчанию используется JSON.
* **Админ-менеджер.** Управление администраторами бота с возможностью реализации собственного админ-менеджера.
* **Менеджер белого списка пользователей.** Гибкое управление белым списком с возможностью добавления методов, игнорируемых белым списком, и реализации собственного менеджера белого списка.
* **Обработка update.** Возможность реализации собственного обработчика update.
* **Система событий.** Гибкая система обработки событий.
* **Многоботная система.** Возможность создания нескольких ботов в одном проекте.
* **Система middleware.** Добавление собственных обработчиков до и после update, аналогично middleware в ASP.NET.
* **Проверки перед выполнением команд.** Внутренние проверки для команд reply, dynamicreply, nextstep, slash и inline.
* **Создание собственных обработчиков для update типа message и callbackQuery.** Реализация своих обработчиков как reply, slash, inlineCallback.
* **Динамическое управление командами.** Возможность добавления и удаления команд в реальном времени с реализацией собственного регистратора команд.
* **Сброс старых update.** Возможность сброса всех старых update перед запуском бота.
* **Пошаговое выполнение команд.** Возможность выполнения пошаговых наборов reply-команд.
* **Подключение к собственным серверам.** Работа ботов через собственные сервера.
* **Создание polling и webhook ботов.** Поддержка различных методов работы с ботами.
* **Встроенный функционал календаря.** Работа с датами и календарями.
* **Постраничная работа с сообщениями.** Управление сообщениями с постраничной навигацией.
* **Хранение кэша пользователей.** Работа с пользовательским кэшем.
* **Ограничение доступа к методам.** Возможность ограничения доступа к определенным методам.
* **Работа с dependency injection.** Поддержка внедрения зависимостей.
* **Парсинг из конфигурационных файлов.** Парсинг сообщений, команд и кнопок из конфигурационных файлов.
* **Фоновые задачи.**
* **Шина событий.**
* **Функционал предоставляемый telegram.bot.**

## 🧱 Интегрированные пакеты

CalendarPicker | karb0f0s <https://github.com/karb0f0s/CalendarPicker>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://prethink.gitbook.io/prtelegrambot/prtelegrambot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
