Metadata-Version: 2.4
Name: tg_bot_screen
Version: 1.4.32
Summary: Lib that helps with telegram bots
Project-URL: Homepage, https://github.com/Neveix/tg_bot_base
Project-URL: Issues, https://github.com/Neveix/tg_bot_base/issues
Author-email: Neveix <i@neveix.ru>
License: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.12
Provides-Extra: ptb
Requires-Dist: python-telegram-bot[job-queue]>=21.9; extra == 'ptb'
Description-Content-Type: text/markdown

# tg_bot_base

tg_bot_base (в pypi - tg_bot_screen) (далее - 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 tg_bot_screen`

### Использование
1. Создайте директорию с вашим проектом  
2. В ней напишите: `python -m tg_bot_screen --ptb`
3. Убедитесь, что в вашем окружении есть переменная `BOT_TOKEN`, в которой записан токен бота из BotFather
4. Готово! Можете дорабатывать бот

















