TelegramTextApp — это надстройка над telebot, которая упрощает создание бота в telegram
- Создание всех меню в одном файле
- Для запуска, нужен только API-ключ
- Быстрое создание макета бота
- Python 3.10 или новее
- Аккаунт Telegram
pip install git+https://github.com/falpin/TelegramTextApp.git
if __name__ == "__main__":
from TelegramTextApp import TTA
TTA.start("API_ключ_бота", "'название_файла_для_хранения_меню'.json")
TelegramTextApp - это способ создания telegram бота, что бы для его использования было только одно меню
Да, в TTA есть обязательные условия Обязательными меню являются:
none_menu
(Если при вызове какгого-то меню, оно не было создано, откроется это меню)update_tta
- (Если Вы решили обновить своего бота с использованием TTA, это меню необходимо. Если же вы пишете нового бота, то можете удалить)- Вы можете изменять различные параметры этих меню, но название должно остаться неизменным
Обязательные функции:
- Функция для форматирования текста. Она может называться как угодно, но должна быть передана в TTA при создании
Обязательные кнопки:
- Все кнопки, которые находятся в general_buttons, являются обязательными, но вы можете изменять их текст
TTA использует файл, в котором Вы создали бота, как дополнительный модуль, что бы обрабатывать Ваши функции и если не добавить это условие, при каждом выполнении, TTA будет запускать себя снова и снова
Готовый пример - Расписание ЧЭнК
TTA.start(
"API", # API Вашего бота
"menus.json", # Название файла, где будут меню
debug=False, # True - при каждой ошибке, будет остановка бота, с указанием где ошибка False(По умолчанию) - Быстрый перезапус при ошибке
tta_experience=True, # Бот будет удалять сообщения пользователя и старые меню бота, для поддеркжки TTA
formating_text="formating_text" # Название функции, для форматирования текста. Если не указать, текст форматироваться не будет
)
"название_меню":{
"text":"Любой текст. *Можно* _использовать_ __markdown__ ||разметку|| [telegram](telegram.com)",
"buttons":{
"название_меню_которое_нужно_открыть":"Текст кнопки",
"menu_name:Дополнительный_параметр":"Текст кнопки"
},
"create_buttons":"название_вашей_функции", // создание своих кнопкок (не рекомендуется использовать с button)
"return":"название_меню", // кнопка возврата в указаное меню
"function":"название_вашей функции", // выполнение вашей функции, при открытии меню (если text остутсвует, Вы обязаны его вернуть из этой функции)
"loading":"Если Ваша функция будет долго выполняться, можно использовать эту заглушку"
},
"текст_команды":{
"menu":"название_меню_которое_откроется",
"text":"Краткое описание команды"
},
def formating_text(tta_data, text):
# пример текста: Ваше имя пользователя {username}\nСегодня {day_week}
text = text.format(
username='Человек',
day_week="Понедельник"
)
return text
def create_my_buttons(tta_data=None):
buttons = {}
buttons['название_меню'] = "Текст кнопки"
return buttons
def my_text(tta_data=None):
text = "Это мой текст"
return text
- Форкните репозиторий
- Создайте ветку с фичей/исправлением:
- Зафиксируйте изменения и отправьте в форк
- Создайте Pull Request с описанием изменений