From 7bf5d2210147f82b01810aeb75bd75b9485ded04 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 25 Sep 2026 21:35:27 +0600 Subject: [PATCH] [2026-09-25] eagle: family/how-to/lampac-torrents.md personal/tech/lampa-jellyfin-plugin.md --- family/how-to/lampac-torrents.md | 207 +++++++++++++++++++++++++ personal/tech/lampa-jellyfin-plugin.md | 31 ++++ 2 files changed, 238 insertions(+) diff --git a/family/how-to/lampac-torrents.md b/family/how-to/lampac-torrents.md index 1d1548e1..458be4df 100644 --- a/family/how-to/lampac-torrents.md +++ b/family/how-to/lampac-torrents.md @@ -1,3 +1,32 @@ +--- +created: '2026-09-22' +namespace: family +type: how-to +status: работает-min_sid-на-обсуждении +tags: + - lampa + - lampac + - pidtor + - torrents + - jacred + - torrserver + - kraken + - min_sid + - diagnostics +title: Torrents в Lampa — как оно работает и как чинить +updated: '2026-09-25' +related: + - '[[personal/tech/lampac-torrserver]]' + - '[[personal/tech/lampac-deployment]]' + - '[[personal/tech/lampa-jellyfin-plugin]]' + - '[[family/how-to/tv-lampac-plugin]]' + - '[[family/how-to/arr-stack-kraken]]' + - '[[personal/plans/lampac-kraken]]' +summary: >- + PidTor: три причины пустого списка — кэш-503, Playwright-503 на многословном + title, и min_sid:15 отрезающий нишевые раздачи. Свежие фильмы работают, + документалки требуют решения Alex по min_sid. +--- # Torrents в Lampa — как оно работает и как чинить **Обновлено:** 2026-09-25 @@ -19,6 +48,10 @@ **Вторая причина 503 (найдена 2026-09-25): длинный многословный `title`.** См. раздел ниже. +**Третья причина (2026-09-25): `min_sid: 15` отбрасывает нишевые раздачи.** Даже когда +JacRed нашёл и `title` короткий — пустой список. Документалки не набирают 15 сидов. +См. раздел «Третья причина» ниже. + --- ## 🔴 Где на самом деле кэш (исправлено 2026-09-24) @@ -118,6 +151,85 @@ Playwright в контейнере lampac уходит в цикл и валит --- +## 🔴 Третья причина: `min_sid: 15` — фильтр, который режет документалки (2026-09-25) + +**Повод:** Alex — *«понятно. занеси наблюдение в доку по лампе»* (после разбора +документалок с диска Kraken). + +**Факт.** Даже когда JacRed раздачу нашёл и `title` короткий (200, не 503), PidTor +может отдать пустой список. Причина — **`min_sid` в секции `PidTor`**. + +Текущее значение в `current.conf` lampac (строка 3378): + +```json +"PidTor": { + "enable": true, + "redapi": "http://jac.red", + "apikey": null, + "min_sid": 15, ← 🔴 вот он + "max_size": 0, + "emptyVoice": true, + "forceAll": false, + "torrs": null, + "auth_torrs": null +} +``` + +Фильтр в `PidTor/Controller.cs:86-89`: + +```csharp +int sid = torrent.Seeders; +if (sid >= init.min_sid) // 15 по умолчанию + … // раздача показывается +``` + +Раздача с `Seeders < 15` **отбрасывается молча** — наружу приходит пустой список, +не ошибка. + +### Почему это бьёт именно по документалкам + +Нишевый контент не набирает сидов: + +| Запрос | JacRed нашёл | Сидов | PidTor отдал | +|---|---|---|---| +| `шпион в снегах` (BBC Spy in the Snow) | rutracker, bitru, nnmclub, kinozal | **3** | ❌ отфильтровано | +| `Spy in the Snow` (rutracker) | WEB-DL 1080p ДБ | **3** | ❌ отфильтровано | +| `attenborough` → Blue Planet II | rutracker + nnmclub, 156 ГБ 4K | — | зависит от сидов | + +Для фильмов-новинок 15 сидов норма; для BBC-документалки 2018 года — почти недостижимо. + +### Второй барьер рядом — фильтр по качеству + +`Controller.cs:84`: раздача проходит дальше только если `forceAll == true` **или** +в имени есть `2160p` / `1080p` / `720p` (либо `4k`/`uhd`). +`Spy in the Snow` содержит `1080p` → этот барьер проходит; `min_sid` его убивает. + +### Как снижать `min_sid` + +| Значение | Смысл | +|---|---| +| `0` | показывать всё, включая мёртвые раздачи (0 сидов) | +| `1`–`2` | компромисс: мёртвые отсекаются, нишевые проходят | +| `15` | текущее; режет почти все документалки | + +**Порядок правки боевого конфига** ([[personal/plans/lampac-kraken]]): +коммит `current.conf` **до** → правка `min_sid` → заливка + рестарт lampac → +**приёмка Alex в UI** (искать `Spy in the Snow` в PidTor) → коммит **после**. + +🔴 Приёмка = раздача **видна в UI**, а не «API отвечает 200». + +### Добавка к диагностике: `rjson` как быстрый чекап + +```bash +# пустой список vs 503 — различать так (тело {} = отфильтровано, не сбой): +curl "http://127.0.0.1:9118/lite/pidtor?title=Spy&rjson=true" → {} +``` + +`rjson=true` отдаёт JSON вместо HTML — удобнее для скриптов. Пустой `{}` при +известной раздаче в JacRed = фильтр `min_sid`/качество, а не поломка. + +--- + ## По каким трекерам ищет PidTor Свой список PidTor **не держит**. Он идёт на `{redapi}/api/v2.0/indexers/all/results?title=..&year=..` @@ -244,6 +356,99 @@ curl -s -X POST http://127.0.0.1:9118/ts/torrents \ --- +## ⚠️ ПРЕДЫСТОРИЯ: `min_sid` уже трогали — и откатили (2026-09-22) + +🔴 **Перед любой правкой `min_sid` прочитать это.** + +На сессии 2026-09-22 я **сам понижал `min_sid` до `3`** — и это было **откачено**: + +``` +· min_sid: мой 3 убран → стоковое 15 +``` + +Причина отката — **`min_sid` не был причиной пустого списка у Alex**. Реальная +причина была `redapi`: он указывал на локальный JacRed, который отдаёт формат +**без поля `info`** → `PidTor/Controller.cs:97` (`torrent.info.sizeName`) → NPE → 500. + +Стоковое `15` **рабочее состояние, зафиксированное в [[personal/tech/lampac-torrserver]] +§«Статус закрытия»: ✅ `min_sid: 3` убран → сток `15`.** +Трогать его — значит переоткрывать закрытую задачу. + +⚠️ **Не путать два случая:** + +| | 2026-09-22 (закрыто) | 2026-09-25 (открыто) | +|---|---|---| +| Симптом | «Торренты» **пусто у всех фильмов** | конкретные **документалки** пусто | +| Причина | `redapi` → локальный JacRed (нет `info`) | `Seeders < 15` | +| Фикс | `redapi = http://jac.red` | обсуждение `min_sid` | +| Вывод | `min_sid` **не при чём** | `min_sid` — вероятная причина | + +Т.е. понижение `min_sid` обосновано **только** для нишевого контента +(BBC-документалки, 0–3 сида). Для свежих фильмов стоковое `15` всех устраивало — +Гамнет: из 14 раздач проходили 6, F1 играл, **приёмка Alex пройдена**. + +--- + +## 📋 Решение ожидает Alex: `min_sid` 15 → 1–2 (НЕ НАЧАТО) + +**Статус:** план записан, правка не начата, ждёт подтверждения Alex. + +**Что предлагается:** понизить `min_sid` до `1`–`2`, чтобы нишевые документалки +(BBC `Spy in the Snow`, сидов 0–3) перестали отсеиваться. + +**Цена (озвучена Alex, не забыть повторить): понижение `min_sid` — решение Alex, +низкий sid = медленнее качает.** Т.е. раздачи с 1–2 сидами будут играть хуже. + +| Значение | Что даёт | Риск | +|---|---|---| +| `15` (текущее) | свежие фильмы отлично, документалки пусто | нишевый контент недоступен | +| `1`–`2` | документалки появляются | медленная загрузка на нишевых раздачах | +| `0` | всё, включая мёртвые | плеер будет висеть на раздачах с 0 сидов | + +### Порядок правки (если Alex подтвердит) + +1. **Коммит `current.conf` ДО** правки. +2. Правка `min_sid` в `config-module/init.conf` (**не** `config/init.conf` — + правки там не применяются и не дают ошибки). +3. Заливка + `docker restart lampac`. +4. 🔴 **Приёмка Alex В UI:** искать `Spy in the Snow` в разделе PidTor, запустить. + «API отвечает 200» ≠ «работает». +5. **Коммит ПОСЛЕ.** + +Объём: ~15 минут + приёмка на ТВ. + +⚠️ **Файл:** правки идут в `config-module/init.conf`. `current.conf` — эффективный, +слитый из `base.conf` + `init.conf`; правка `current.conf` напрямую перезапишется +при старте. Держать в голове, в каком из двух файлов менять. + +--- + +## Открытый дефект: Playwright валит длинные запросы (не закрыт) + +**Статус:** найден 2026-09-25, **не трогал**, ждёт решения Alex. + +**Симптом:** `/lite/pidtor?title=Spy%20in%20the%20Snow` → **503**, а `?title=Spy` → **200**. +Multi-word `title` уходит в 180-секундный таймаут Chromium/Playwright внутри lampac. + +``` +Chromium: Browser_Disconnected → Initialization → CreateAsync → LaunchAsync +Chromium: Timeout 180000ms exceeded. + - [err] Failed to connect to the bus: /run/dbus/system_bus_socket: No such file +``` + +**Кандидаты на фикс:** +- ограничить параллельный запуск Chromium; +- отключить headless-модули в `base.conf` (`SkipModules` уже содержит + `Potok`, `MsxNative`, `ForkPlayerXML`). + +**Обходной путь (работает сейчас):** искать одним-двумя словами. +Русские документалки — по русскому названию, **не** по имени папки на диске. + +⚠️ Это **отдельный дефект** от `min_sid`. Если починить Playwright, длинные запросы +начнут отвечать, но `min_sid` всё равно отрежет раздачи с <15 сидов. + +--- + ## Питфоллы 1. 🔴 **503 — это кэш, а не ошибка.** Сначала снять кэш **ответа**, потом делать выводы. Иначе час диагностики по закэшированному отказу. ⚠️ Кэш **не в `cache/fdb/`** (там пусто) — см. «Где на самом деле кэш»; быстрее всего запросить **новый ключ** (другой год/title). @@ -259,6 +464,8 @@ curl -s -X POST http://127.0.0.1:9118/ts/torrents \ 11. 🔴 **`title` из нескольких слов = 503 (Playwright-таймаут).** Проверено 2026-09-25: `title=Spy%20in%20the%20Snow` → 503, `title=Spy` → 200. Это НЕ «раздач нет» и НЕ кэш (`X-Invoke-Cache` отсутствует). Искать одним словом. 12. 🔴 **Шум `dbus/bus.cc:405 … /run/dbus/system_bus_socket` в `docker logs lampac` — маркер той же проблемы.** Chromium в контейнере без dbus стартует и отваливается; `Browser_Disconnected` + `Timeout 180000ms exceeded` в логе = PidTor будет отдавать 503. 13. ⚠️ **`docker logs lampac` тонет в Chromium-шуме** (`grep -viE "dbus|chromium|playwright"`) — иначе реальные строки не видно. Исключений PidTor там по-прежнему НЕТ (см. п. 5). +14. 🔴 **Пустой список ≠ 503.** Три разных состояния: `503` (кэш/Playwright), `{}`/пусто при 200 (= фильтры `min_sid`/качество отрезали), `500` (NPE на `info`). Проверять `rjson=true` для быстрого различения. +15. 🔴 **`min_sid: 15` режет документалки молча.** Сидов у BBC-докфильмов обычно 0–3. Если JacRed находит, а PidTor пусто — смотреть `min_sid` первым делом, не трекеры. --- diff --git a/personal/tech/lampa-jellyfin-plugin.md b/personal/tech/lampa-jellyfin-plugin.md index 41f7be43..e8dad812 100644 --- a/personal/tech/lampa-jellyfin-plugin.md +++ b/personal/tech/lampa-jellyfin-plugin.md @@ -17,9 +17,13 @@ tags: - cartoons - pidtor - torrents + - min_sid title: lampa-jellyfin-plugin — документалки Jellyfin в Lampa type: tech-note updated: '2026-09-25' +summary: >- + PidTor находит документалки только если смотреть title 1-2 словами + снизить + min_sid с 15 до 1-2 (BBC-докфильмы держат 0-3 сида) --- # Документалки Jellyfin в Lampa — исследование (2026-09-24) @@ -57,6 +61,29 @@ title=Spy → 200 ✅ а не по транслитерации имени папки на диске. Имена папок в `media/documentaries` это локальные имена закачек, и они не равны тому, что нужно в `title`. +⚠️ **Уточнение (2026-09-25):** `title=Penguin Meet the Family` → **503**, а не «пусто». +Первая запись «⚠️ пусто» в таблице выше стояла для многословного запроса — +на самом деле это тот же Playwright-503, что и у `Spy in the Snow`. + +### 🔴 И второе правило: `min_sid` надо снижать, иначе пусто + +Даже когда JacRed раздачу нашёл и `title` короткий — PidTor отдаёт пусто, +потому что фильтрует по **`min_sid: 15`** (`PidTor/Controller.cs:86-89`). +BBC-документалки 2018 года держат **0–3 сида** — все отсеиваются. + +Проверено: `шпион в снегах` → JacRed нашёл 4 трекера (rutracker, bitru, +nnmclub, kinozal), `Seeders: 3` → **PidTor не показал ничего**. + +Понижение `min_sid` до `1`–`2` (или `0`) — и они появятся. + +🔴 **Но: `min_sid` уже трогали 2026-09-22 и ОТКАТИЛИ обратно на стоковое 15** +(понижение до `3` не помогло — реальная причина тогда была `redapi`, не `min_sid`). +Стоковое `15` зафиксировано как рабочее. Возвращаться к нему — только ради +нишевого контента и только с подтверждения Alex. + +Полный разбор: [[family/how-to/lampac-torrents]] §«Предыстория min_sid» ++ §«Решение ожидает Alex». + ### Новое: 45 документалок на диске найдены (пути) ``` @@ -86,6 +113,10 @@ PidTor о них не знает и знать не может; торренты Alex хочет видеть **именно свою библиотеку с диска** — то, чего в торрентах нет или что качается медленно. Два независимых пути, не альтернативы одного выбора. +🔴 **Оговорка (2026-09-25):** «находятся в PidTor» требует снижения `min_sid` +с 15 до 1–2 — иначе JacRed находит, а PidTor показывает пусто (сидов < 15). +Правка ждёт подтверждения Alex. См. §«И второе правило» выше. + ## Ключевые факты ### 1. Lampa не играет с диска Kraken