Skip to content
falbue edited this page Dec 17, 2025 · 5 revisions

Параметры

Для взаимодействия с библиотекой, нужно уметь настраивать json конфигурацию бота.

Параметры бота

  • name:str - Название бота
  • short_description:str - Короткое описание бота, которое указано в его профиле
  • description:str - описание бота, которое отображается по центру чата
  • font_style:str - стиль текста по умолчанию. Не обязательный параметр. bold Параметры, которые добавятся автоматически:
    • username:str - линк бота
    • id:int - id бота

Параметры меню

название_меню:

  • text:str - текст меню. Поддерживает шаблонизацию. Обязательный параметр
  • function:str - название функции, которая есть в Вашем файле. Будет выполнено перед обработкой всех параметров
  • send:dict - отправка меню, указанным пользователям. Параметры:
    • text:str - Обязательный параметр, если не указан параметр menu. К меню будет добавлена кнопка: {"notification" : "{variables.tta_notification}"}
    • menu:str - название меню, которое будет отправлено. Обязательный параметр
    • id:str list int - telegram_id пользователя, которому будет отправлено меню. Обязательный параметр. Типы значения параметров:
      • int - прямое указание telegram_id: 123456789
      • list - указать несколько telegram_id: [-123456789, 987654321]
      • str - указание роли в TTA. Меню будет отправлено всем пользователям с такой ролью: "user"
  • input:dict - меню, будет ожидать (пока что) ввод сообщения пользователя для дальнейшей обработки. После ввода, сообщение пользователя удалится, а текущее меню бота обновится. Параметры:
    • menu:str - меню, которое откроется. Обязательный параметр
    • function:str - функция, которая будет выполнена после ввода
    • data:str - Название параметра, которое будет передано в Вашу функцию. По умолчанию, параметр будет назван input_text
  • popup:str dict - Всплывающее меню. Открывается перед открытием меню. Можно указать текст сразу. Так же есть параметры:
    • text:str - текст всплывающего меню. Обязательный параметр
    • size:str - размер всплывающего меню (big, small). По умолчанию - small
    • blocked:bool - заблокирует вывод меню. Меню, просто не откроется и будет показано только всплывающее меню (true, false). По умолчанию - false
  • keyboard:str dict- inline клавиатура, которая будет показана под сообщением. Поддерживает 2 типа значений параметров: str, dict. Если указан текст, то будет выполнена функция, которая должна вернуть dict. Параметры для типа dict:
    • название_меню:str - текст кнопки. Если перед текстом кнопки указать \, то кнопка перенесется на следующую строку
    • function:str - название функции.Ещё одно выполнение функции, но только теперь кнопки вставятся в уже готовую клавиатуру
    • Так же существуют дополнительные магические слова, которые нужно добавлять перед название_меню:
      • url:ссылка_на_страницу - Будет создана кнопка - ссылка, которая будет открывать указанную страницу
      • app:ссылка_на_mini_app - будет открыто мини приложение телеграмма, которое привязано к боту
      • copy:текст_для_копирования - при нажатии, в буфер обмена копируется текст_для_копирования
      • role:роль_из_TTA - указывается даже перед всеми магическими словами. Кнопка добавится только тем пользователям, кто обладает такой ролью
  • return:str - название меню. Кнопка, которая добавится в текущую клавиатуру, на следующую строку. Обычно используется для возврата в указанное меню. Использует текст variables.tta_return
  • row:int - ширина клавиатуры. По умолчанию: 2
  • loading:str bool - выполняется раньше всех параметров. Рекомендуется использовать, если функции, будут долго выполнятся. Использует 2 типа параметров: bool, str. Если указано true, текст меню, будет указан variables.tta_loading. Если указать текст, то будет отображен этот текст. По умолчанию false
  • pagination:int - количество кнопок, которые отобразятся в клавиатуре. Как только количество кнопок, превысит это значение, будут автоматически добавлены кнопки пагинации. По умолчанию: 10

Параметры команд

название_команды - название будет отображено в списке команд, если не указан параметр visible

  • description:str - описание команды. Обязательный параметр. Не поддерживает шаблонизацию
  • menu:str - название меню, которое будет открыто после выполнения команды. Обязательный параметр
  • delete:bool - удаление сообщения пользователя, с названием команды. По умолчанию true
  • update:bool - параметр, который влияет на то, отправится ли новое меню пользователю или будет изменено старое. По умолчанию true
  • visible:bool - отображение команды, в списке команд бота. По умолчанию true

Шаблонизация

Работа с шаблонами, осуществляется с помощью {название_шаблона} Практически все параметры str поддерживают шаблонизацию

Шаблоны в меню

Что бы передать параметр в меню, нужно использовать шаблон: название_меню|{название_шаблона}.После этого, название_шаблона добавляется в список переменных меню

Шаблоны функции

Некоторые параметры передать невозможно передать заранее, поэтому для этого можно использовать параметр меню function. Ваша функция, должна будет вернуть dict, чтобы добавить Ваши значения в список переменных меню

Список переменных меню

Список переменных меню - массив данных, которые используются для шаблонизации Изначально, это словарь dict, который на моменте шаблонизации превращается в плоский словарь. В плоском словаре, вложенность указывается через . Пример: user.username Данные, которые есть в СПМ:

{
	"user": {},
	"menu_name":"название_текущего_меню",
	"bot":{},
	"variables":{},
	"error":{}
}

Параметры, которые были переданы в названии меню, добавляются на самый верхний уровень

Работа с функциями

Например вы вернули из function: my_function словарь:

{
	"data":10,
	"order":{
		order_id: 1,
		username: "test"
		}
}

В СПМ, этот словарь будет иметь ключ, в виде названия функции, которая вернула этот словарь. Функции для работы с клавиатурой записываться в СПМ не будут

Что бы вставить ваши данные, например, в текст меню, нужно указать: {my_function.data}. Или если мы хотим получить username пользователя: {my_function.order.username}

Проверка

Clone this wiki locally