# tg_bot_base
tg_bot_base (далее - TBB) - это Python библиотека для упрощения создания телеграм ботов на базе Python-Telegram-Bot (далее - PTB).
При этом планируется сделать TBB независимым от PTB.

## Основные возможности
1. Экраны - позволяют легко переключаться между заранее известными меню
> Например. В вашем боте есть главное меню, из которого кнопки ведут в 3 других меню.
> Для этого вы можете заранее создать всевозможные меню, и организовать систему переходов между ними.  
> **Не придётся переписывать и дублировать меню несколько раз**

2. Режим пользовательского ввода - позволяет принимать от пользователя сообщение в нужный момент, и выходить из этого режима, когда будет нужно.
> Это может пригодиться в очень многих ситуациях, когда после нажатия на кнопку или после ввода сообщения нужно принять от пользователя ввод.
> Для этого бот переключается в режим ожидания ввода, и после того, как пользователь ввёл что-то, вызвалась пользовательская callback-функция

3. Наличие подробных типов при создании клавиатур - снижает вероятность ошибки во время создания клавиатур и экранов в целом.
> В телеграмме клавиатура представляется как двойной массив кнопок. Когда клавиатуры приходится динамически создавать, добавлять к ним строки,
> кнопки, многократно увеличивается возможность ошибиться. И только после Runtime Error разработчик узнаёт, что допустил ошибку, но даже в этот момент он может не понять, чем она была вызвана.
TBB исключает такую возможность: Клавиатура, строка кнопок, кнопка, меню, экран в нём - это отдельные классы, в некоторых из которых прописаны выкидывание ошибок из-за несоответствия типов.

4. Динамичность - Экраны, меню, текст, клавиатуры в TBB имеют возможность быть динамическими, и генерироваться в моменте.
> Это может пригодиться в любых не самых простых ботах, в которых экраны хоть как-то могут меняться. Экран будет создаваться в моменте под определённую ситуацию.
> Так же это можно использовать для ботов, переведённых на несколько языков

5. Лёгкий доступ к компонентам - большинство функций в TBB и в вашем боте будет нуждаться лишь в двух аргументах - bot_manager и user_id.
> BotManager - это класс, который призван собрать в себе функционал всего бота. Из него есть ссылки к буквально всему - экранам, пользовательским переменным, базам данных,
> прочим менеджерам.
## Установка и использование
#### Замените версию на нужную вам.
`pip install git+https://github.com/Neveix/tg_bot_base.git@v1.4.3`

### Использование
#### Краткий обзор















