[2026-09-22] eagle: personal/plans/lampac-pidtor-503-fix.md personal/plans/watchlist-tmdb-missing-marker.md personal/tech/lampac-deployment.md personal/tech/lampac-torrserver.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 19:30:17 +06:00
1 parent f7c06d2e41
commit 9e4713f81c
4 files changed
+232 -101

No files matched your search

+70 -8
View File
@@ -707,24 +707,40 @@ GET /ts/torrents -> 404 (метода нет)
GET /ts/settings -> 403 (нужна авторизация ts:tspass)
```
#### 🔴 Вероятная причина пустого списка у Alex: `min_sid: 15`
#### 🔴🔴 РЕАЛЬНАЯ причина пустого списка у Alex: `redapi` (найдено 2026-09-22)
**Не `min_sid`, не TorrServer.** Причина — `redapi` в секции `PidTor`:
```json
"PidTor": { "enable": true, "enabled": false, "redapi": "http://jac.red",
"PidTor": { "enable": true, "enabled": false,
"redapi": "http://jac.red", ← ДОЛЖНО БЫТЬ ИМЕННО ТАК
"min_sid": 15, "torrs": null, "auth_torrs": null }
```
Раздачи с числом сидов **< 15 отсекаются**. Редкие/старые фильмы дадут пусто
именно из-за этого. Проверка по конкретному фильму:
Если `redapi` переключить на локальный JacRed lampac (`http://127.0.0.1:9118`),
PidTor падает на **всех** фильмах: локальный JacRed отдаёт формат БЕЗ поля
`info`, а `PidTor/Controller.cs:97` читает `torrent.info.sizeName` → NPE → HTTP 500.
```bash
curl -s "http://127.0.0.1:9118/lite/pidtor?title=<название>&year=<год>"
docker logs lampac 2>&1 | grep -i pidtor
```
НАШ JacRed → поля без "info"
jac.red → + info{quality, voices, sizeName, name, originalname, relased}
PidTor ждёт → torrent.info.sizeName
```
Проверка: `curl -s -o /dev/null -w '%{http_code}' \
"http://127.0.0.1:9118/lite/pidtor?title=Гамнет&year=2025"` → должно быть **200**.
Полный разбор: [[personal/plans/lampac-pidtor-503-fix]]
⚠️ **Вторичный фильтр — `min_sid: 15`** (сток). Сиды < 15 отсекаются; свежие
фильмы часто имеют 1–37. Понижение — решение Alex (низкий sid = медленнее).
⚠️ **README PidTor устарел:** там написано «пункт появляется только если заданы
`torrs`/`auth_torrs`, иначе список пустой». Фактически при `null` `/lite/pidtor`
отдал 8435 байт с рабочей раздачей. Верить факту, не README.
отдаёт рабочие раздачи. Верить факту, не README.
⚠️ **`enabled: false` — НЕ выключатель.** Это поле стоит `false` у всех 86
модулей (Filmix, HDVB, Kinobase, PidTor…). Смотреть только `enable`.
### `vast.js` — НЕ виновник (проверено сырьём)
@@ -776,6 +792,52 @@ TorrServer**, а не гасить онлайн. План откачен, `init.
Док оставлен как справка, где лежит выключатель; применять только по прямому
указанию Alex.
### 📄 Текущее состояние `$H/config-module/init.conf` (2026-09-22, вечер)
Это единственный меняемый конфиг lampac. Полное содержимое:
```json
{
"BaseModule": {
"SkipModules": ["Tracks","Transcoding","WebLog","CacheMedia",
"ForkPlayerXML","MsxNative","Potok","TelegramAuth",
"TelegramAuthBot"]
},
"LampaWeb": { "initPlugins": { "catalog": true } },
"PidTor": { "enable": true, "redapi": "http://jac.red" }
}
```
**Что здесь важно:**
| Ключ | Значение | Почему |
|---|---|---|
| `LampaWeb.initPlugins.catalog` | `true` | включает модуль Catalog — без него «Мой список» не виден |
| `PidTor.enable` | `true` | модуль торрентов активен |
| `PidTor.redapi` | `http://jac.red` | 🔴 **НЕ менять на локальный** — см. выше, ломает PidTor |
⚠️ `online: false` **отсутствует намеренно** — Alex запретил гасить онлайн.
**Бэкапы (2 шт., оба на HDD рядом с конфигом):**
```
$H/config-module/init.conf.bak-pidtor-20260922-191505
$H/config-module/init.conf.bak-20260922-112154 (в $H/, от прошлой правки)
```
**Порядок безопасной правки (правило Alex «коммит ДО → правка → заливка → проверка»):**
```bash
H=/srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac
cp $H/config-module/init.conf $H/config-module/init.conf.bak-$(date +%Y%m%d-%H%M%S)
# правим локально, scp обратно
python3 -c "import json; json.load(open('$H/config-module/init.conf')); print('JSON ok')"
docker restart lampac
```
⚠️ Применить конфиг без рестарта нельзя. Рестарт = ~35 сек недоступности плеера.
Раздачи в TorrServer при рестарте сохраняются (`data/ts/` не трогается).
## 🚀 Деплой генератора на Кра́кен (проверено 2026-09-22)
### 🔴🔴 Питфолл: `load_env()` искал `.env` только по Mac-пути
+50 -9
View File
@@ -1,9 +1,11 @@
# TorrServer на Кра́кене — диагностика
**Дата:** 2026-09-22
**Вывод:** ✅ **TorrServer исправен.** Но «Торренты» пусто по ДВУМ причинам,
найденным после первой проверки: 🔴 **закэшированный 503** (`X-Invoke-Cache: HIT`)
и 🔴 **`min_sid: 15` режет выдачу**. Диагноз и фикс — [[personal/plans/lampac-pidtor-503-fix]].
**Вывод:** ✅ **TorrServer исправен.** «Торренты» пусто было по причине
🔴 **`redapi` указывал на локальный lampac**, чей JacRed отдаёт формат БЕЗ
поля `info` → PidTor падал на `torrent.info.sizeName` → NPE → 500 → кэшировался
как 503. **ИСПРАВЛЕНО**: `redapi` возвращён на `http://jac.red`.
Диагноз и фикс — [[personal/plans/lampac-pidtor-503-fix]].
**Связано:** [[personal/tech/lampac-deployment]], [[personal/plans/lampac-pidtor-503-fix]],
[[personal/plans/lampac-disable-1xbet-ads]]
@@ -107,8 +109,28 @@ Lampa → lampac PidTor → jac.red (ПОИСК раздач — ЧУЖОЙ хо
⚠️ Поиск раздач **не локален** — `PidTor.redapi = "http://jac.red"`. TorrServer
только качает то, что нашёл чужой сервер. Не путать эти роли при диагностике.
Рабочая альтернатива — локальный JacRed lampac:
`/api/v2.0/indexers/all/results?Query=…` отвечает за **0.12s** (внешний — 0.35s).
### 🔴🔴 Локальный JacRed — НЕ альтернатива. Он ломает PidTor
**Проверено 2026-09-22 (стоило полной поломки):** переключение
`redapi` на `http://127.0.0.1:9118` (локальный JacRed lampac) роняет **ВСЕ**
фильмы в HTTP 500.
```
НАШ JacRed отдаёт поля: Tracker, Details, Title, Size, PublishDate,
Category, Seeders, Peers, MagnetUri
^^^ поля "info" НЕТ
jac.red отдаёт ещё: info{quality, voices[], sizeName, name, originalname,
relased}, ffprobe, languages, CategoryDesc
PidTor/Controller.cs:97:
string mediainfo = torrent.info.sizeName ?? string.Empty;
^^^^^^^^^^^^^^ info == null -> NullReferenceException -> 500
```
Локальный JacRed быстрее (0.12s против 0.35s), но **несовместим по формату**.
`redapi` обязан оставаться `http://jac.red`. Подробно:
[[personal/plans/lampac-pidtor-503-fix]]
## 🔴 `min_sid: 15` — второй фильтр, режущий выдачу
@@ -244,10 +266,29 @@ ssh kraken 'curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year
python3 /tmp/probe_pidtor_batch.py
```
### Если пусто — порядок проверки
### Если пусто — порядок проверки (по реальной причине, 2026-09-22)
0. **СНАЧАЛА проверить `redapi`:**
`docker exec lampac sh -c 'grep -o "\"redapi\": \"[^\"]*\"" /lampac/current.conf'`
→ должно быть `http://jac.red`. Если `127.0.0.1:9118` — PidTor отдаст 500 (см. выше)
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)
2. **500** → реальная ошибка (чаще всего `info`-несовместимость источника)
3. **503** → источник отказал, кэш держит ~45 мин (`extend: 2700`)
4. **200, но 0 раздач** → реально нет раздач у трекеров
5. `min_sid: 15` (сток) — сиды < 15 отсекаются (свежие фильмы часто 1–37)
### 🔴 Порядок сброса кэша (если 503 застрял)
Кэш переживает `docker restart` — он на диске:
```bash
H=/srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/lampac
docker stop lampac
cp -r "$H/cache/fdb" /tmp/fdb-backup-$(date +%Y%m%d-%H%M%S)/ # бэкап обязателен
rm -rf "$H/cache/fdb"; mkdir -p "$H/cache/fdb"
docker start lampac
```
⚠️ После чистки 503 сменится на **500** — это признак, что кэш больше не маскирует
настоящую ошибку. Дальше искать причину 500 (пункт 2 выше), а не радоваться.