diff --git a/personal/plans/lampac-pidtor-503-fix.md b/personal/plans/lampac-pidtor-503-fix.md new file mode 100644 index 00000000..326d3beb --- /dev/null +++ b/personal/plans/lampac-pidtor-503-fix.md @@ -0,0 +1,112 @@ +# PidTor 503 в «Торренты» — диагноз и фикс + +**Дата:** 2026-09-22 +**Статус:** 🔴 ПЛАН, требует подтверждения (нужен рестарт lampac) +**Связано:** [[personal/tech/lampac-torrserver]], [[personal/tech/lampac-deployment]] + +--- + +## Симптом (Alex) + +> «по просмотру: у меня есть определенные сомнения что через torrserver идут, +> там только пункт "смотреть онлайн" работает и он добавляет вотермарк и рекламу +> 1xbet... потому что если пункт "торренты" выбрать при просмотре - то там пусто.» + +## Диагноз: 503 закэширован lampac + +### Ключевое доказательство + +``` +GET /lite/pidtor?title=F1&year=2025 +HTTP/1.1 503 Service Unavailable +Content-Length: 0 +X-Invoke-Cache: HIT ← 🔴 ОТВЕТ ИЗ КЭША, запроса к JacRed НЕТ +время ответа: 0.0016s ← мгновенно = из памяти +``` + +### При этом ВСЁ исправно + +``` +JacRed локальный: /api/v2.0/indexers/all/results?Query=F1 -> 200, 72 раздачи + sid=203, 26, 18, 7... (богатая выдача) +JacRed локальный: ?Query=Гамнет -> 200, 14 раздач, max sid=79 +jac.red (чужой): ?Query=Гамнет -> 200, 15 раздач, 0.35s +TorrServer: /ts/echo -> MatriX.135, качает (343 пира на тесте) +JacRed изнутри: 0.12s локально, 0.20s внешний хост +``` + +**Вывод: один раз PidTor получил отказ → lampac закэшировал 503 → теперь отдаёт +его всем запросам по этим фильмам ~40 минут.** + +### Где искать раздачи — PidTor ходит НАРУЖУ, не на Кра́кен + +``` +PidTor.redapi = "http://jac.red" (144.31.3.10) ← ЧУЖОЙ хост + +Цепочка: + Lampa → lampac PidTor → jac.red (ПОИСК раздач, чужой сервер) + → magnet → TorrServer Кра́кена (КАЧАЕТ, локально) + → поток /lite/pidtor/s + +🔴 Поиск раздач — на чужом сервере. TorrServer только качает. +``` + +Оба варианта поиска рабочие: +- локальный JacRed lampac (`/api/v2.0/indexers/all/results`) — 0.12s +- внешний `jac.red` — 0.35s + +## План фикса + +### Шаг 1 — сбросить кэш 503 (рестарт lampac) + +```bash +docker restart lampac +``` + +Кэш `X-Invoke-Cache` живёт в памяти процесса → сбрасывается рестартом. + +**Проверка после рестарта:** +```bash +curl -s -o /dev/null -w '%{http_code}\n' \ + "http://127.0.0.1:9118/lite/pidtor?title=F1&year=2025" +# ожидаем 200 (было 503) +``` + +### Шаг 2 — переключить PidTor на ЛОКАЛЬНЫЙ JacRed (стабильнее) + +`config-module/init.conf`: + +```json +{ + "PidTor": { + "enable": true, + "redapi": "http://127.0.0.1:9118", + "min_sid": 1 + } +} +``` + +Зачем: +- **`redapi` на локальный lampac** — не зависим от чужого `jac.red`, который + подтормаживает и даёт таймауты (причина закэшированного 503). +- **`min_sid: 1`** вместо 15 — сейчас отсекает большинство раздач. + По Гамнету: из 14 раздач только 6 проходят `min_sid=15`. + По F1 раздачи с sid=1, 4, 7 отсекаются, хотя они рабочие. + +⚠️ `min_sid` — спорно: низкий sid = медленнее качает. Нужно решение Alex: + компромисс `min_sid: 3..5`, либо 1 (показывать всё). + +### Шаг 3 — проверить, что 503 не возвращается + +Прогнать 5 фильмов с паузой, убедиться: все 200. + +## Питфоллы + +1. 🔴 **`X-Invoke-Cache: HIT` в заголовках** — главный маркер «ответ из кэша, + а не от источника». Всегда смотреть заголовки, не только код. +2. 🔴 **503 ≠ «раздач нет».** При отсутствии раздач PidTor отдаёт 200 с пустым + списком. 503 = отказ источника. +3. 🔴 **`min_sid: 15` режет выдачу.** Реальные сиды по свежим фильмам: 1–37. +4. 🔴 **Поиск раздач идёт наружу** (`jac.red`), TorrServer качает локально. + Не путать эти роли при диагностике. +5. 🔴 **Кэш PidTor ~40 минут** (README), в памяти процесса. diff --git a/personal/tech/lampac-torrserver.md b/personal/tech/lampac-torrserver.md index c760d93d..16dae707 100644 --- a/personal/tech/lampac-torrserver.md +++ b/personal/tech/lampac-torrserver.md @@ -1,8 +1,11 @@ -# TorrServer на Кра́кене — диагностика (исправен) +# TorrServer на Кра́кене — диагностика **Дата:** 2026-09-22 -**Вывод:** 🔴 **ЧИНИТЬ НЕЧЕГО. TorrServer и вся торрент-цепочка работают.** -**Связано:** [[personal/tech/lampac-deployment]], [[personal/plans/lampac-disable-1xbet-ads]] +**Вывод:** ✅ **TorrServer исправен.** Но «Торренты» пусто по ДВУМ причинам, +найденным после первой проверки: 🔴 **закэшированный 503** (`X-Invoke-Cache: HIT`) +и 🔴 **`min_sid: 15` режет выдачу**. Диагноз и фикс — [[personal/plans/lampac-pidtor-503-fix]]. +**Связано:** [[personal/tech/lampac-deployment]], [[personal/plans/lampac-pidtor-503-fix]], +[[personal/plans/lampac-disable-1xbet-ads]] --- @@ -60,7 +63,7 @@ curl -s "http://127.0.0.1:9118/api/v1.0/torrents?search=Матрица" ```bash curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year=1999" -# HTTP 200, 8435 байт +# HTTP 200, 8435 байт, 12 раздач ``` Ответ содержит рабочий торрент: @@ -75,6 +78,50 @@ getent hosts jac.red -> 144.31.3.10 curl http://jac.red -> HTTP 200 ``` +### 5. 🔴 НО: часть фильмов отдаёт 503 ИЗ КЭША + +Массовая проверка 12 позиций каталога дала **11 × HTTP 503**, 1 × HTTP 200. +При этом JacRed по тем же фильмам отдаёт раздачи: + +``` +F1 (2025) -> /api/v2.0/indexers/all/results -> 200, 72 раздачи (sid=203,26,18…) +Гамнет (2025) -> 200, 14 раздач (max sid=79, 6 проходят min_sid=15) +А /lite/pidtor?title=F1 -> 503 с заголовком X-Invoke-Cache: HIT +``` + +**`X-Invoke-Cache: HIT` + время ответа 0.0016s = ответ из памяти, запроса к +JacRed НЕ было.** Один раз источник отказал → lampac закэшировал 503 на ~40 мин. + +🔴 **Диагностический признак: смотреть заголовки, не только код.** +503 ≠ «раздач нет» (тогда был бы 200 с пустым списком). 503 = отказ источника, +закэшированный процессом. Сброс — `docker restart lampac`. + +## 🔴 Роли в цепочке: поиск НАРУЖУ, качание локально + +``` +Lampa → lampac PidTor → jac.red (ПОИСК раздач — ЧУЖОЙ хост 144.31.3.10) + → magnet → TorrServer Кра́кена (КАЧАЕТ, локально) + → поток /lite/pidtor/s +``` + +⚠️ Поиск раздач **не локален** — `PidTor.redapi = "http://jac.red"`. TorrServer +только качает то, что нашёл чужой сервер. Не путать эти роли при диагностике. + +Рабочая альтернатива — локальный JacRed lampac: +`/api/v2.0/indexers/all/results?Query=…` отвечает за **0.12s** (внешний — 0.35s). + +## 🔴 `min_sid: 15` — второй фильтр, режущий выдачу + +Реальные сиды по свежим фильмам: **1–37**. Порог 15 отсекает большинство: + +``` +Гамнет: из 14 раздач проходят только 6 +F1: отсекаются раздачи с sid=1, 4, 7 (рабочие) +``` + +Понижение `min_sid` — решение Alex (низкий sid = медленнее качает). +Варианты: `1` (показывать всё) · `3..5` (компромисс) · оставить `15`. + ## 🔴 Маршруты — главный питфолл разбора TorrServer **НЕ доступен по порту 9085 напрямую** — lampac проксирует его @@ -172,9 +219,35 @@ GET /api/v2.0/indexers/{status}/results?Query= -> JacRed/Jackett-формат не подключён в `sisi/index.html`; `modification.js` (22 КБ) даёт 0 совпадений на `1xbet|vast|adTag`, домены только `w3.org`. Реклама от онлайн-источников. -## Если «Торренты» всё же пусто у Alex — что проверить +## Итог: что реально делает «Смотреть онлайн» vs «Торренты» -1. Что именно за фильм (есть ли раздачи в принципе — старые/редкие могут быть без сидов) -2. `curl "http://127.0.0.1:9118/lite/pidtor?title=<название>&year=<год>"` — отдаёт ли -3. `docker logs lampac | grep -i pidtor` — доходит ли запрос -4. `min_sid: 15` — раздачи с сидами < 15 **отсекаются**. Возможно, поэтому пусто +``` +«Смотреть онлайн» = 20 источников из /lite/events. Из них ТОРРЕНТНЫЙ — РОВНО ОДИН: + PidTor http://127.0.0.1:9118/lite/pidtor balanser=pidtor + + Остальные 19 — онлайн-балансеры (чужой CDN, реклама 1xbet): + Filmix · pizdatoehd · Kinobase · Phantom · Kinogo · AniDub · LeProduction · + VeoVeo · Collaps · HDVB · Rutube · VK Видео · Kinoteatr.kg · Vibix · + Kinotochka · Eneyida · UaKino · UAFilm · Geosaitebi +``` + +**Отдельного пункта «Торренты» в `/lite/events` НЕТ** — это не источник, а +интерфейс выбора раздачи внутри PidTor. Путь в UI: +карточка → «Смотреть онлайн» → **PidTor** → список раздач → выбор качества. + +```bash +# проверка количества раздач на фильме из терминала +ssh kraken 'curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year=1999" \ + | grep -c data-json=' # -> 12 + +# пакетная проверка позиций каталога +python3 /tmp/probe_pidtor_batch.py +``` + +### Если пусто — порядок проверки + +1. `curl -i "…/lite/pidtor?title=<название>&year=<год>"` — **смотреть заголовки**: + `X-Invoke-Cache: HIT` → это кэш, лечение `docker restart lampac` +2. Пришёл 503 → источник отказал, кэш держит ~40 мин +3. Пришёл 200, но 0 раздач → реально нет раздач у трекеров +4. `min_sid: 15` — сиды < 15 отсекаются (свежие фильмы часто 1–37)