Манифест дополнения
Добро пожаловать к первому шагу создания дополнения EMET Surf! Начнём с манифеста — это «сердце» дополнения, которое сообщает приложению всё необходимое.
Манифест — это JSON‑файл по адресу /manifest.json на вашем сервере. Подумайте о нём как о визитке вашего дополнения: он представляет его EMET Surf и объясняет, что оно умеет.
Создаём первый манифес т
Минимальный манифест для старта:
{
"id": "my.first.emet.addon",
"version": "1.0.0",
"name": "Hello, World",
"description": "My first EMET Surf add-on",
"logo": "https://example.com/logo-256.png",
"resources": [],
"types": []
}
Разберём поля:
Обязательные:
id: Уникальный идентификатор (точечная нотация:com.example.movies)version: Семантическая версификация (1.0.0,2.1.3)name: Отображаемое имя дополненияdescription: Краткое описание того, что делает дополнение
Опционально, но рекомендуется:
logo: Квадрат 256×256, визуальный идентификатор
Скоро добавим:
resources: Какие ресурсы вы предоставляете (catalog, meta, stream и др.)types: Какие типы контента поддерживаете (movie, series и др.)
Расширенные возможности манифеста
Перенаправляемый манифест:
{
"location": ["https://my-addon-server.com/manifest.json"]
}
Позволяет публиковать манифест отдельно от серверов с данными.
Локализованные описания:
{
"localizedDescription": {
"en": "Provides information about movies",
"es": "Proporciona información sobre películas",
"ru": "Предоставляет информацию про фильмы",
"uk": "Надає інформацію про фільми"
}
}
Даёт пользователям описание на их языке.
Справочник жанров:
{
"genres": [
{
"id": 28,
"localizedName": {"en": "Action", "ru": "Боевик"},
"name": "Action"
},
{
"id": 12,
"localizedName": {"en": "Adventures", "ru": "Приключения"},
"name": "Adventures"
}
]
}
Структура жанра:
id: Числовой идентификатор жанраlocalizedName: Локализованные названияname: Базовое название (обычно на англ ийском)
Полный пример:
{
"id": "test.addon",
"version": "1.0.0",
"name": "Test Add-on",
"description": "Provides information about movies",
"localizedDescription": {
"en": "Provides information about movies",
"es": "Proporciona información sobre películas",
"ru": "Предоставляет информацию про фильмы",
"uk": "Надає інформацію про фільми"
},
"logo": "https://example.com/logo-256.png",
"location": ["https://test-addon.example.com/manifest.json"],
"resources": ["catalog", "meta", "stream"],
"types": ["movie"],
"genres": [
{"id": 28, "localizedName": {"en": "Action", "ru": "Боевик"}, "name": "Action"},
{"id": 12, "localizedName": {"en": "Adventures", "ru": "Приключения"}, "name": "Adventures"}
]
}
Создание папки проекта
Windows:
mkdir my-emet-addon
cd my-emet-addon
macOS/Linux:
mkdir -p my-emet-addon
cd my-emet-addon
Создайте manifest.json и заполните базовым содержимым.
Важно:
- Следите за валидностью JSON
- Логотип должен быть публично доступен
idдолжен быть уникален
Что дальше?
У вас есть рабочий манифест! В следующих шагах добавим функциональность.
Итоги
- Манифест описывает ваше дополнение
- Обязательные поля:
id,version,name,description - Рекомендуется
logo - Поддерживаются перенаправляемые манифесты и локализации
- Манифест доступен по
/manifest.json