Skip to main content

Библиотека для создания текстовых приложений в telegram

Project description

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 есть обязательные условия Обязательными меню являются:

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

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

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

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

TTA использует файл, в котором Вы создали бота, как дополнительный модуль, что бы обрабатывать Ваши функции и если не добавить это условие, при каждом выполнении, TTA будет запускать себя снова и снова


📝 Примеры

Готовый пример - Расписание ЧЭнК

Создание TTA

TTA.start(
  "API", # API Вашего бота
  "menus", # Название файла, где будут меню 
  debug=False, # True - при каждой ошибке, будет остановка бота, с указанием где ошибка     False(По умолчанию) - Быстрый перезапус при ошибке
  tta_experience=True, # Бот будет удалять сообщения пользователя и старые меню бота, для поддеркжки TTA
  formating_text="formating_text" # Название функции, для форматирования текста. Если не указать, текст форматироваться не будет
  )

Создание меню

"название_меню":{
  "width":2, // ширина клавиатуры,
  "list_page":20, // количество кнопок в меню (если кнопок больше, чем указано, автоматически добавятся навигационные кнопки)
  "text":"Любой текст. *Можно* _использовать_ __markdown__ ||разметку|| [telegram](telegram.com)",
  "error_text":"Произошла ошибка",
  "buttons":{
    "название_меню_которое_нужно_открыть":"Текст кнопки",
    "menu_name:Дополнительный_параметр":"Текст кнопки"
  },
  "create_buttons":"название_вашей_функции", // создание своих кнопкок (не рекомендуется использовать с button) 
  "return":"название_меню", // кнопка возврата в указаное меню
  "function":"название_вашей функции", // выполнение вашей функции, при открытии меню (если text остутсвует, Вы обязаны его вернуть из этой функции) 
  "loading":"Если Ваша функция будет долго выполняться, можно использовать эту заглушку",
  "handler": { // ожидание отправки сообщения от пользователя с последующим выполнением
    "function":"название_вашей_функции",
    "menu":"название_меню_которое_откроется"
  },
  "query":{
    "text":"Текст уведомления",
    "show_alert":false // размер уведомления
  },
  "send":{
    "text":"текст_рассылки",
    "recipient":"all" //роль, кому будет отправленна рассылка (так же можно указать id telegram)
  }
},

Создание команды

"текст_команды":{
  "menu":"название_меню_которое_откроется",
  "text":"Краткое описание команды"
},

Функция для форматирования текста

def formating_text(tta_data, text, type_data = None):
  format_dict = {}
  try:
    format_dict = {"input_text":tta_data["input_text"]}
    formatted_text = text.format_map(
      {key: format_dict.get(key, None) for key in re.findall(r'\{(.*?)\}', text)}
      )
  except Exception as e:
    formatted_text = text.format_map(
      {key: format_dict.get(key, None) for key in re.findall(r'\{(.*?)\}', text)}
      )

    if type_data == "text": 
      formatted_text = f"*{formatted_text}*"
      return formatted_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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telegramtextapp-0.5.3.3.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telegramtextapp-0.5.3.3-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file telegramtextapp-0.5.3.3.tar.gz.

File metadata

  • Download URL: telegramtextapp-0.5.3.3.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for telegramtextapp-0.5.3.3.tar.gz
Algorithm Hash digest
SHA256 d073034d7d66e56e9d39aa2bcdc52cfe90b873979a70ca694269b9fa8edc4639
MD5 704311cd5a914a9e6ac325425b928fa4
BLAKE2b-256 ed354382fa929d39d7642bb57e6bd4cec3ad51176b71d542597ce95b7a232b98

See more details on using hashes here.

File details

Details for the file telegramtextapp-0.5.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for telegramtextapp-0.5.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 41c3989e3be257ea3a9a71b358b22530b63aa84078a73c866bee4577d1698231
MD5 422ff823cd72cb8f0bd939285cf0f92e
BLAKE2b-256 9650e6d2b93b1885044f22aaf6c5afd4fe384007d855da7c30989ee990fa326c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page