Files
obsidian-vault/personal/plans/watchlist-tmdb-missing-marker.md
T

7.9 KiB
Raw Blame History

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)

  1. Заглушка карточки — нужна вообще, или достаточно маркера ❓ в списке?
  2. discover — фильтровать по TMDB только для вышедших, или для upcoming тоже?
  3. Откат 3 постеров — принять откат (Хамнет/WeWork/Астрал без постера, пока нет автоматики), или сделать автопоиск по альтернативным названиям через Кинопоиск (alternativeName), как уже делается в watchlist-sync резолвере?