Skip to content

TTA - надстройка, для упрощения создания ботов в telegram

Notifications You must be signed in to change notification settings

falpin/TelegramTextApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TelegramTextApp

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")

❓ Вопросы

Что такое TTA?

TelegramTextApp - это способ создания telegram бота, что бы для его использования было только одно меню

Есть ли обязательные меню и функции?

Да, в TTA есть обязательные условия Обязательными меню являются:

  • none_menu (Если при вызове какгого-то меню, оно не было создано, откроется это меню)
  • update_tta - (Если Вы решили обновить своего бота с использованием TTA, это меню необходимо. Если же вы пишете нового бота, то можете удалить)
  • Вы можете изменять различные параметры этих меню, но название должно остаться неизменным

Обязательные функции:

  • Функция для форматирования текста. Она может называться как угодно, но должна быть передана в TTA при создании

Обязательные кнопки:

  • Все кнопки, которые находятся в general_buttons, являются обязательными, но вы можете изменять их текст

Зачем нужна эта строчка? if __name__ == "__main__":

TTA использует файл, в котором Вы создали бота, как дополнительный модуль, что бы обрабатывать Ваши функции и если не добавить это условие, при каждом выполнении, 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 с описанием изменений

📬 Обратная связь

  • Автор: falbue
  • Баги и предложения: Issues
  • Поддержать проект: ⭐️ Поставьте звезду на GitHub!