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.6.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.6-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: telegramtextapp-0.5.6.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.6.tar.gz
Algorithm Hash digest
SHA256 7998eb2304f5148c8201f7e331e59a31c0dfc07a195a8591c678a42b34d48b06
MD5 f1afa4342f64d30bce0e1560eba3c242
BLAKE2b-256 8a018aa439e5d34ac4896ed0fe9ac24285955f8c7b50380d086ee1a0c5922e88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for telegramtextapp-0.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fca00af13944ecb7de901ca426dfcf93ae6cc990cce02c5656d5757d8eca5053
MD5 e640b7c0e4eeb6894dfd3bb1c7a43a6c
BLAKE2b-256 c8e05b0365d52cf44dd70f0c139fbd382036847264dad543df6b75d4d232d39c

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