1. Что такое формат .fptools?
Формат .fptools — это стандартизированный JSON-контейнер. Он используется для обмена настройками, шаблонами, автоответами и правилами ИИ между пользователями приложения FunPay Tools. Файл имеет структуру обычного JSON, но сохраняется с расширением .fptools для привязки к приложению Android/PC.
2. Структура корневого объекта
{
"version": 1,
"author": "Nickname",
"description": "Описание пака",
"data": { ... }
}
3. Модели данных (внутри объекта data)
Шаблоны сообщений (templates)
Массив объектов. Ключи:
id (String) — Уникальный UUID.
name (String) — Название кнопки шаблона.
text (String) — Текст сообщения. Поддерживает плейсхолдеры: $username, $date, $welcome.
imageUri (String | null) — URI картинки.
imageFirst (Boolean) — Порядок отправки.
Автоответы (auto_responses)
Массив объектов. Ключи:
trigger (String) — Слово или фраза-триггер.
response (String) — Текст ответа бота.
exactMatch (Boolean) — Точное совпадение.
caseSensitive (Boolean) — Учет регистра.
callMode (Boolean) — Режим вызова продавца.
callStyle (String) — "notification" или "fullscreen".
callAutoReplyTextRaw (String | null) — Сообщение при дозвоне.
Ответы на отзывы (review_reply_settings)
Объект. Ключи: enabled, useAi, aiLength, aiWritingStyle, aiCustomInstruction, aiFallbackText, manualTemplates, disabledStars.
Приветствие (greeting_settings)
Объект. Ключи: enabled, text, cooldownHours, ignoreSystemMessages.
4. Импорт и отказоустойчивость
Парсер приложения обрабатывает каждый элемент массива в отдельном блоке try-catch. Если один элемент невалиден — остальные импортируются корректно.
Логика парсера Kotlin
- Читаем объект
data.
- Итерируем массив
templates.
- Каждый элемент — отдельный
try-catch.
- При
JSONException — элемент пропускается, цикл продолжается.
- Итог: корректные элементы импортируются успешно.