Skip to main content
LampaWeb раздаёт веб-клиент Lampa из каталога wwwroot/, собирает lampainit.js, формирует список расширений, интегрируется с accsdb, обновляет исходники с GitHub через фоновый крон LampaCron и генерирует виджеты Smart TV.

Назначение

  • Корень сайта / подставляет <base> для каталога из conf.index (например lampa-main/index.html), иначе делает редирект на статический файл.
  • Конфиг модуля задаёт репозиторий Git (git, tree) для автоподтягивания исходников и интервал intervalupdate (в минутах), а также флаг autoupdate.

Ключевые маршруты

Событие accsdb в ModInit: для пути /testaccsdb при совпадении UID с shared_passwd выставляется IsAnonymousRequest (обход для общего пароля).

Конфигурация

Секция в init.conf: LampaWeb.

Поля конфигурации

initPlugins и dedup плагинов

Lampac отдаёт плагины двумя путями: Список плагинов для обоих маршрутов собирает LampaPluginBuilder по флагам LampaWeb.initPlugins и customPlugins.

Default URL (flat)

В {initiale} всегда подставляются flat-URL вида {localhost}/online.js, {localhost}/sync.js и т.д. Сервер не подменяет их на */js/{token} автоматически.

Token URL (ручная установка)

Пользователь может добавить token-вариант вручную, например {localhost}/sync/js/myuser или {localhost}/online/js/myuser. На клиенте plugins/lampainit.js при каждом старте:
  • сравнивает server list с уже установленными плагинами
  • не добавляет flat-URL, если в registry уже есть любой URL того же семейства (name.js и name/js/{token} считаются одним плагином)
  • при наличии token-варианта может удалить flat-дубликат (если в runtime Lampa доступен Plugins.remove)

Sync orchestrator

Если включён initPlugins.sync, модуль sync.js сам загружает bookmark и timecode. Builder не добавляет отдельные bookmark.js / timecode.js в {initiale} и /on.js, даже если их флаги в конфиге true.
При sync: true явно ставьте bookmark: false и timecode: false, чтобы избежать дублирования.

customPlugins

Записи из LampaWeb.customPlugins со status: 1 добавляются as-is. Family dedup на клиенте применяется и к ним: например, custom {localhost}/music/js/token блокирует добавление flat {localhost}/music.js из другого источника.

Плагины без token-маршрута

watchtogether.js и startpage.js участвуют в dedup только по exact URL.

Плагин «Дорамы» (dorama.js)

Плагин dorama.js добавляет пункт «Дорамы» в основное меню Lampa сразу после «Сериалы» и регистрирует отдельный источник lampac_dorama. Он не зависит от SISI и подключается только через LampaWeb.initPlugins.dorama: true. Источник строит секции через TMDB Discover TV для корейских драм:
  • with_original_language=ko
  • with_genres=18
  • include_adult=false
Запросы идут через штатный Lampac TMDB proxy /tmdb/api/3/..., когда {localhost} подставлен. Иначе используется нативный TMDB URL-builder клиента. Плагин также перехватывает Dorama category_full ссылки, чтобы кнопка «Ещё» не уходила в активный CUB/TMDB source.

Проверка после изменений

1

Включите плагин

Установите LampaWeb.initPlugins.dorama: true.
2

Проверьте lampainit.js

Откройте Lampa через /lampainit.js и убедитесь, что «Дорамы» стоят сразу после «Сериалы».
3

Проверьте on.js

Откройте Lampa через /on.js и убедитесь, что пункт «Дорамы» появляется без зависимости от SISI.
4

Проверьте загрузку секций

Откройте «Дорамы» и проверьте, что экран секций загружает строки.
5

Проверьте пагинацию

Откройте «Ещё» в любой секции и проверьте, что страница 2 грузится из lampac_dorama, а не из CUB.
6

Проверьте отсутствие дублей

Перезагрузите приложение и убедитесь, что в меню остаётся один пункт «Дорамы».

Telegram Auth Gate

Если accsdb включён, по умолчанию клиент видит deny.js с модалкой пароля/CUB. Можно заменить на гейт Telegram:
Гейт активируется при одновременном выполнении трёх условий:
  1. accsdb.enable: true
  2. telegramAuthGate.enabled: true
  3. Непустой botUsername
Если хотя бы одно условие не выполнено, происходит тихий откат на стандартный deny.js.

Как работает гейт

telegram_auth_gate.js показывает fullscreen overlay с UID устройства, кнопкой «Открыть Telegram» и QR-кодом. Опрашивает GET /tg/auth/status каждые checkIntervalMs (по умолчанию 10 секунд). После успешной авторизации экран закрывается автоматически и приложение перезагружается.

Для ТВ

Крупный QR-код и большой UID для удобного сканирования с телефона.

Для мобильных

Кнопка «Открыть Telegram» открывает чат с ботом, UID подставляется в стартовое сообщение.

Зависимости

  • Каталог wwwroot/ в корне приложения с lampa-main/ и статикой.
  • Плагины модуля в plugins/ (extensions, deny и т.д.).
  • LampaCron для автообновления из Git по конфигу.

Компоненты модуля

Last modified on September 2, 2026