[2026-09-25] eagle: personal/plans/lampac-watchlist-plugin.md personal/tech/lampac-deployment.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-25 23:16:44 +06:00
1 parent e89869b6c1
commit bbfe0329e2
2 files changed
+147 -1

No files matched your search

+44
View File
@@ -85,6 +85,50 @@ git commit -m "..." && git push origin main
рестарт приложения на ТВ через `luna-send`. И **не спать** в ожидании: Alex на паузу
`sleep 20` отреагировал резко («Чё нахуй за слип 20?!») — вместо сна опрашивать состояние.
### 🔴 Форма `Lampa.Activity.active()` — ИЗМЕРЕНО (CDP, 2026-09-25)
```
Lampa.Activity.active() → {url, title, component, source, page, params, activity}
Lampa.Activity.active().activity → {component, object, slide, body, is_stopped, is_started}
```
🔴 **`url` лежит НА ВЕРХНЕМ уровне.** Поле `activity.activity` — это СЛАЙД (DOM-обёртка),
`url` там НЕТ вообще. Чтение `active().activity.url` даёт вечные `undefined`.
**Значения по экранам (замерено):**
| Экран | `component` | `url` | `title` |
|---|---|---|---|
| **Главная** | **`main`** | **`` (ПУСТОЙ!)** | `Главная - CUB` |
| **Фильмы / категория** | **`category_full`** | `movie` | `Фильмы` |
🔴🔴 **На главной `url` ПУСТОЙ, а не `'main'`.** Поэтому:
- проверка `url === 'main'` **не работает вообще** — никогда не срабатывает;
- **определять экран надо по `component`**, оно стабильно на обоих экранах.
### 🔴 Трейс вызовов `partNext` — как узнать, вызывается ли он на переходах
Обернуть `partNext` своим трейсом, подёргать навигацию, прочитать массив:
```js
var orig = Lampa.Api.partNext;
Lampa.Api.partNext = function(parts, limit, ok, empty){
var a = Lampa.Activity.active();
window.__wl_trace.push(String(a.component||'')+'|url='+String(a.url||'')+'|n='+(parts?parts.length:'?'));
return orig.apply(this, arguments);
};
```
**Результат на переходе `main → category_full → main`: трейс ПУСТОЙ.** То есть
`partNext` на этих переходах **не вызывается вообще** — Lampa переиспользует уже
отрисованный пул. Любая логика, висящая ТОЛЬКО на `partNext`, на навигации не сработает;
нужен отдельный хук `Lampa.Listener.follow('activity')`.
🔴 **Питфолл метода:** `Lampa.Router.call('main')` как «вернуться на главную» **не
работает** — падает с `Cannot read property 'url' of undefined`. Программно
эмулируется только уход В категорию (`Router.call('category_full',{url:'movie',...})`);
возврат на главную воспроизводит только Alex пультом.
🔴 **Правило диагностики:** не читать `curl -w %{size_download}` как «размер фида» —
это размер ПОСЛЕ распаковки gzip. Брать `ls -la` или `Accept-Encoding: identity`.
Пример: `watchlist-films.json` = 88 КБ несжатых при 347 позициях, а `cards.json` = 548 КБ.