Плагины Murkir / Kino Cinema
DLE 21.0 · KINO CINEMA 0.3.0 · API 1.1
Каталог фильмов, автоматизация и тема — в одном комплекте.
Kino Cinema помогает находить фильмы и сериалы, создавать карточки с постерами, подключать плееры и пополнять сайт из списка, автоматически или по запросу из чата. Тема Kino Cinema отвечает за представление каталога посетителю.
Это обзор нашего комплекта по документации от 20 октября 2026 года. Он описывает Kino Cinema для DLE, а не прежний WordPress-плагин. Совместимость заявлена для DLE 21.0; DLE 18.1 не поддерживается, другие версии требуют отдельной проверки.
Посмотреть каталог на kino.murkir.com →
Коротко о главном
- Три источника: TMDB, Кинопоиск через Poiskkino.dev и UaCDN.
- Четыре сценария: ручной поиск, массовый список, автоимпорт и внешняя API-очередь.
- Работа с изображениями: локальные постеры, WebP и восстановление недостающих картинок.
- Плееры: TABUS и UaCDN с отдельными настройками для фильмов и сериалов.
- Редактура: переписывание и перевод через OpenRouter либо готовый текст от клиента API.
- Тема Kino Cinema: украинский интерфейс, мобильная версия, поиск, жанры, отзывы и штатный рейтинг DLE.
Четыре способа наполнять каталог
1. Найти и добавить одну карточку
В админке выбираем источник и тип: фильм или сериал. Ищем по названию с годом либо по идентификатору. Результат показывает постер, год, ID, рейтинг и отметку, если публикация уже существует. Для сериалов указываем год начала.
У каждого каталога свои ID. Внутренний ID UaCDN, числовой ID Кинопоиска и IMDb с префиксом tt — разные значения. Для внешних ID в UaCDN предусмотрены отдельные режимы. Если поиск по названию не дал результата, можно проверить другие варианты названия или поиск через Кинопоиск при наличии нужных ключей.
2. Загрузить список до 200 строк
Вместо ручного поиска каждой карточки можно передать список:
Матрица — 1999
Начало (2010)
Интерстеллар — 2014
Массовый импорт поддерживает названия с годом и ID в выбранном режиме. Доступны TMDB, Кинопоиск, UaCDN и автоматический вариант Кинопоиск → TMDB. Для списка ID нужно выбрать конкретный источник.
Очередь работает постепенно: один шаг — поиск страницы либо импорт карточки. Неоднозначное совпадение требует выбора. Есть пауза, продолжение и ручной шаг; обычные ошибки повторяются до трёх раз. Повторный импорт сохраняет уже существующую публикацию.
3. Включить регулярный автоимпорт
Автоимпорт пополняет каталог без открытой админки: серверный планировщик запускает обработчик, который чередует фильмы и сериалы. Можно выбрать один источник или автоматическое чередование доступных источников с ключами.
Дневной лимит — от 1 до 100 записей, по умолчанию 3. Один шаг добавляет не более одной записи. Смена источника не обнуляет счётчик, а дубликаты не расходуют лимит. День определяется часовым поясом DLE.
4. Передать задание из ChatGPT или другого HTTP-клиента
Внешний API позволяет искать материалы, получать тематические кандидаты из TMDB, ставить импорт в очередь и менять название или описание существующей записи. Это отдельный путь работы с собственными квотами и журналом. Подключение описано ниже.
Массовый список, автоимпорт и внешний API не делят один дневной счётчик. При этом все обращения к каталогам подчиняются квотам самих поставщиков. Список из 200 фильмов может потребовать больше 200 запросов.
Карточка проверяется перед публикацией
Плагин учитывает настройки статуса, рейтинга, изображения и проверки видео. Поэтому «найден в базе» не означает «готов к публикации».
| Проверка | Поведение |
|---|---|
| Дубликат | Новая копия не создаётся; повторный импорт не переписывает прежний текст. |
| Рейтинг | Если фильтр включён, отсутствующая или нулевая оценка не проходит даже при минимуме 0. |
| Постер | Без скачанного изображения новая запись остаётся на модерации. |
| Видео | При включённой проверке требуется подтверждение хотя бы одного включённого плеера. Ошибка или отсутствие подтверждения оставляет запись на модерации. |
Проверку видео можно отключить, но тогда доступность видео до публикации не гарантируется. Наличие iframe, ID фильма или HTTP 200 само по себе не доказывает, что фильм можно посмотреть. Антибот-защита источника также может мешать проверке.
Постеры без ручной работы с каждой картинкой
По умолчанию изображения сохраняются в WebP с качеством 85 и предельным размером 500 × 750 пикселей. Пропорции сохраняются, маленькие картинки не увеличиваются. При поддержке GD можно выбрать JPEG или PNG.
Если исходное изображение недоступно, Kino Cinema проверяет связанные карточки других источников по ID и соответствию фильма. Для этого нужны доступные связи и ключи. Фоновая задача повторяет загрузку; если запись ожидала именно постер и остальные проверки соблюдены, она может быть опубликована. Явный черновик автоматически не публикуется.
Новые изображения размещаются по месяцам: uploads/posts/YYYY-MM/kino/. Для ручной замены поле poster, если оно есть, имеет приоритет над kino_poster. Новые настройки формата не перекодируют старые файлы автоматически.
Kino Cinema: тема для готового каталога
Плагин собирает данные, а тема превращает их в страницы каталога. Рабочая тема комплекта — Kino Cinema. Каталог templates/KinoCinema в документации отмечен как историческая заглушка, использовать его вместо рабочей темы не нужно.
- Украинский интерфейс и мобильная версия.
- Карточки фильмов и сериалов, поиск и варианты оформления.
- Отзывы, штатный рейтинг DLE и блок плееров.
- Меню жанров и переходы по году, жанрам и странам.
- Перенос длинных названий без перекрытия постером.
Разделы строятся на дополнительных полях и штатном xfsearch DLE. Например, тип материала задаётся как kino_type=movie или tv. Для работы нужны ЧПУ и корректный индекс дополнительных полей. Актёры и режиссёры выводятся текстом.
При импорте жанры и страны нормализуются по словарям; для старых записей предусмотрены предпросмотр и применение нормализации. Неизвестные значения сохраняются для проверки. Исторический файл GENRES.md содержит старые русские канонические названия; актуальное руководство описывает украинские справочники.
Украинская тема сама по себе не переводит полученные из источников описания. Язык контента настраивается отдельно.
Переписывание и перевод через OpenRouter
Humanize помогает отредактировать описание, перевести его на украинский или русский язык и при необходимости заполнить отсутствующий текст. Перевод названия включается отдельно. Переписывание и перевод объединены в один запрос генерации.
Для этого нужен ключ OpenRouter, доступная модель с ID вида provider/model и её оплачиваемый либо доступный по условиям сервиса лимит. Подписка ChatGPT не заменяет ключ и баланс OpenRouter. При ошибке генерации исходное описание сохраняется; факты в полученном тексте всё равно стоит проверять.
Два способа избежать повторной обработки: отключить OpenRouter только для API-импорта специальной настройкой либо передать готовые title и description прямо в import. Во втором случае текст новой публикации сохраняется без дополнительного Humanize независимо от галочки. Повторный импорт существующей записи её не меняет.
Ручная команда Humanize для существующей публикации сразу заменяет текст. Предусмотрено восстановление сохранённого оригинала, но при этом нужно учитывать последующие ручные правки.
Сайт, которым можно управлять из чата
Kino Cinema API 1.1 — ограниченный интерфейс внутри плагина. Клиент получает возможность поиска, импорта и разрешённого редактирования текста. Удаление публикаций, произвольный SQL и выполнение PHP через него не предусмотрены.
Сценарий запроса может выглядеть так:
Найди пять триллеров, которых ещё нет на сайте. Сначала проверь UaCDN, затем TMDB. Подготовь украинские названия и описания. Добавь подходящие фильмы, проверь результат каждого задания и верни ссылки с фактическим статусом публикации.
Чтобы это работало, клиенту нужны HTTP-инструменты или настроенные Actions, схема OpenAPI, инструкции и Bearer-авторизация. Загрузка документации в обычный чат без сетевых инструментов сама по себе не подключает сайт. Для Grok и Qwen способ настройки зависит от используемого клиента. В клиенте с бесплатным доступом и поддержкой HTTP-инструментов можно управлять сайтом через Kino Cinema API без отдельной платы за сам этот API. Доступность бесплатного режима, инструменты и лимиты зависят от сервиса. Внешние источники данных и OpenRouter могут иметь собственные платные условия.
- На сайте включаем API и нужные операции.
- В настройках создаём отдельный ключ Kino Cinema и сохраняем его в защищённой настройке клиента.
- Добавляем актуальную OpenAPI-схему и инструкции работы.
- Проверяем health и usage, затем поиск и один импорт.
- После получения job_id проверяем задание и статус публикации.
HTTP 202 означает приём задания. Статус done означает завершённую обработку: результатом может быть дубль или пропуск. Публикацию подтверждает approve=1 в данных публикации. Если карточка осталась на модерации, клиент должен сообщить об этом прямо.
Для сетевых повторов используется request_id; для редактирования — свежий полный хеш version. Это помогает не создавать повторные задания и не затирать более поздние изменения редактора. До 50 статусов можно читать одним запросом.
По умолчанию API допускает 120 запросов в минуту и 500 новых заданий за скользящие 24 часа. Импорт и edit расходуют общий лимит; ошибки заданий тоже учитываются. Параметры настраиваются в админке, поэтому клиент должен читать реальные остатки через usage. Квоты внешних источников сохраняются.
Установка: от комплекта до первой карточки
По документации проверенная среда — PHP 8.3, MySQL/MariaDB с InnoDB, cURL, mbstring и GD с поддержкой изображений. Для фоновых задач нужны PHP CLI и планировщик, для внешнего API — публичный HTTPS с действительным сертификатом и передача Authorization в PHP.
- Сохранить файлы и базу. Проверить работающую DLE 21.0 и права записи в необходимые каталоги, без общего chmod 777.
- Загрузить комплект. Папку engine,
templates/Kino Cinemaиkino-api.php— с сохранением структуры. Ядро DLE в комплект не входит. - Установить плагин. Импортировать
kino-plugin.xmlчерез управление плагинами. При проблеме с XML документация предусматривает авторизованный установщикadmin.php?mod=kino_install. - Открыть Kino Cinema. Главный администратор переходит в
admin.php?mod=kino; создаются собственные таблицы и необходимые поля. - Активировать тему. Выбрать Kino Cinema, очистить кеш и проверить ЧПУ.
- Ввести ключи. Настроить хотя бы один источник, постеры, рейтинг и плееры.
- Проверить один импорт на модерацию. Открыть карточку, изображение и плеер, затем включить нужную автоматизацию.
После успешной установки через PHP-установщик документация рекомендует удалить именно engine/inc/kino_install.php. Внутренние install.php и package.xml модуля оставляются.
Какие ключи нужны
| Сервис | Назначение | Где начать |
|---|---|---|
| TMDB | Каталог, изображения, подборки и связанные ID | Настройки API TMDB |
| Poiskkino.dev | Данные Кинопоиска и сопоставление ID | Poiskkino.dev |
| UaCDN | Каталог и данные источника | UaCDN |
| OpenRouter | Humanize и перевод | API Keys |
| Kino Cinema | Авторизация внешнего клиента на вашем сайте | Создаётся администратором в плагине |
Ключ каждого сервиса оформляется отдельно по его условиям. Для плееров используйте необходимые параметры их подключения. Endpoint сайта — адрес приёма запросов, а не место выдачи ключа. Секреты не включаются в публичные статьи и архивы темы.
Фоновые задачи
Для новой установки пользовательский crontab может выглядеть так; путь /ABS/PATH/TO/SITE нужно заменить на реальный:
*/5 * * * * /usr/bin/php /ABS/PATH/TO/SITE/engine/modules/kino/cron.php
* * * * * /usr/bin/php /ABS/PATH/TO/SITE/engine/modules/kino/cron.php --bulk
*/2 * * * * /usr/bin/php /ABS/PATH/TO/SITE/engine/modules/kino/cron.php --posters
* * * * * /usr/bin/php /ABS/PATH/TO/SITE/engine/modules/kino/cron.php --api
Режим без флага обслуживает автоимпорт, остальные — массовый список, восстановление постеров и внешние задания. Cron запускается через PHP CLI: открытие файла в браузере импорт не запускает. При обновлении уже работающего сайта существующее расписание не дублируется. Для /etc/cron.d формат отличается: требуется имя пользователя.
Что важно знать до запуска
Работает ли комплект без ключей?
Без доступа к внешним источникам соответствующие интеграции не работают. Для Humanize нужен отдельный OpenRouter. Сама тема не выдаёт доступ к каталогам или видео.
Может ли чат обратиться к локальному dle.test?
Облачному клиенту нужен доступный публичный HTTPS-адрес. Локальная установка в WSL подходит для разработки, но её наличие не даёт облачному чату сетевой доступ к компьютеру.
Меняется ли ядро DLE?
По документации комплект добавляет собственные файлы, таблицы, дополнительные поля и штатные подключения без ручной правки ядра. Это не означает отсутствие изменений в базе и настройках, поэтому резервная копия перед установкой обязательна.
Можно ли поставить на старую версию DLE?
Заявлена DLE 21.0. Простая замена номера версии в XML не обеспечивает совместимость; DLE 18.1 не поддерживается.
Где скачать плагин и тему?
На этой странице опубликован обзор. Архив установочного комплекта ещё не размещён: приложенные материалы содержат документацию, а не сам плагин и тему.
Обзор подготовлен по предоставленным README, руководству, инструкциям установки, массового и автоматического импорта, постеров, Humanize, API, клиентским инструкциям и OpenAPI-схеме. Исторические замечания GENRES.md отделены от актуального руководства. Исходный код комплекта в рамках подготовки статьи не проверялся.
← Все плагины и разработки · Как мы разрабатываем плагины в Codex и WSL
