7.9 KiB
Watchlist — маркер «нет в TMDB» + заглушка карточки
Дата: 2026-09-22 Статус: черновик, ждёт апрува Связано: personal/plans/lampac-watchlist-plugin, family/projects/watchlist-automation
Задача (дословно Alex)
«Их нет?! Тогда какого хуя они БЛЯДЬ в списке вообще?! Скрипт должен поставить вопрос в списке напротив такого (кроме тех что ещё не вышли, там календарь стоит)»
«В смысле блядь прописал соответствия вручную?! Че за нахуй?! Убирай нахуй! Это блядь скрипт должен делать!»
Что установлено фактами
1. Ручные соответствия — УБРАНЫ (2026-09-22)
Я вписал в генератор словарь MANUAL_TMDB (Хамнет → 858024, WeWork → 795622,
Астрал 2 → 1291595) и «починил» 3 фильма руками. Откачено по требованию Alex.
Причина корректная: подмена результатов — не решение, а маскировка проблемы.
⚠️ Побочный эффект отката: постеры у Хамнета, WeWork и Астрала 2 вернутся к «НЕТ»,
пока не будет автоматического механизма. Данные в /tmp/wl-out пока содержат ручные
результаты (задеплоено) — при следующем прогоне генератора они исчезнут.
2. 4 фильма отсутствуют в TMDB физически
| Фильм | Кинопоиск-ID | Маркер | TMDB |
|---|---|---|---|
| Рассекая волны: экспедиция «Лас Бальсас» (2025) | 12432920 | 🗓️ | нет |
| Цена вершины (2025) | 11888712 | 🗓️ | нет |
| О добре и зле (2025) | 8184798 | 🗓️ | нет |
| Эхопраксия | — | ❓ | id=1650284 есть, но без постера |
Проверено запросами: RU-название, EN-алиас, разные годы — пусто.
3. Корень: discover не проверяет наличие в TMDB
discover.py тянет новинки из Кинопоиска и фильтрует только по рейтингу и голосам
(IMDb ≥ 7.0 / KP ≥ 8.5 для РФ, голосов ≥ 1000/500). Проверки «есть ли фильм в TMDB»
нет. Поэтому в ## Новинки попадают позиции, которых TMDB не знает →
resolve их не может сопоставить → нет tmdb_id → нет постера → клик даёт «здесь пусто».
4. Почему маркер не сработал
🗓️ (upcoming) ставится при добавлении в discover для ещё не вышедших фильмов.
resolve пропускает позиции с ❓/🗓️ (флаг ambiguous в WatchItem).
Итог: маркер есть, но он про «не вышел», а не про «нет в TMDB» — и повторно
позиция не проверяется никогда. Для Эхопраксии стоит ❓ с прошлых прогонов,
но резолвер её не тронет, пока маркер не снят (--recheck).
5. Текущие цифры (после деплоя)
| Категория | Позиций | Постеров | TMDB-ID |
|---|---|---|---|
| films | 360 | 310 | 314 |
| new | 33 | 31 | 31 |
| cartoons | 3 | 3 | 3 |
| anime | 7 | 7 | 7 |
| итого | 403 | 351 | 355 |
Без TMDB-ID: 48 позиций.
ПЛАНА РАБОТ (ждёт апрува)
Шаг 1 — маркер ❓ автоматически в генераторе
Файл: gen_watchlist_v2.py (на Маке), функция enrich + новый writer в watchlist.
Логика:
для каждой позиции:
если tmdb_id найден -> как сейчас (постер + карточка)
иначе если маркер 🗓️ (upcoming) -> НЕ трогать (календарь = ещё не вышел)
иначе -> поставить ❓ в movies-watchlist.md
Что писать в .md: заменить/добавить ❓ перед названием, как это делает resolve.
Формат (как уже принято в файле):
- [ ] ❓ Название фильма
Питфоллы:
- не дублировать
❓, если он уже стоит; - не трогать позиции с
🗓️— явное исключение по требованию Alex; - не трогать
[x](просмотренные); - писать атомарно: backup
.md→ запись → проверка размера.
Шаг 2 — заглушка карточки для позиций без TMDB
Сейчас клик по такому элементу → cards/card-movie-<id>.json не существует →
«здесь пусто». Решение: генерировать карточку-заглушку с тем, что есть.
Содержимое заглушки: название, год, рейтинг, ссылка на Кинопоиск, пометка «нет данных TMDB».
⚠️ Пункт под вопросом — Alex не подтвердил. Возможно, достаточно маркера ❓
в списке (он сам увидит список и поправит названия). Уточнить перед реализацией.
Шаг 3 — discover не добавляет то, чего нет в TMDB
Файл: discover.py в ~/Developer/watchlist-sync/.
Добавить проверку в _has_enough_votes()-цепочку: после KP-фильтра делать
TMDB-поиск и пропускать фильм, если TMDB его не знает. Тогда мусор не попадает
в список вообще.
⚠️ Риск: фильмы, которых ещё нет в TMDB, но которые реально существуют, будут
потеряны для списка. Для upcoming (🗓️) можно оставить — они и так не резолвятся.
Уточнить: применять ли эту проверку к upcoming тоже.
Порядок работ
| # | Шаг | Файл | Апрув |
|---|---|---|---|
| 1 | Маркер ❓ в генераторе |
gen_watchlist_v2.py |
⏳ |
| 2 | Заглушка карточки (?) | gen_watchlist_v2.py |
⏳ требует уточнения |
| 3 | Фильтр TMDB в discover |
discover.py |
⏳ |
Приёмка: открыть список — напротив фильмов, которых нет в TMDB и которые НЕ
upcoming, стоит ❓. Фильмы с 🗓️ не тронуты.
Открытые вопросы (нужен ответ Alex)
- Заглушка карточки — нужна вообще, или достаточно маркера
❓в списке? discover— фильтровать по TMDB только для вышедших, или для upcoming тоже?- Откат 3 постеров — принять откат (Хамнет/WeWork/Астрал без постера, пока нет
автоматики), или сделать автопоиск по альтернативным названиям через Кинопоиск
(
alternativeName), как уже делается вwatchlist-syncрезолвере?