Ссылки на внешние базы в ревью (recognition)
Каждый кандидат внешней базы метаданных (TMDB/TVDB/TVMaze) теперь несёт URL на страницу элемента — при ревью можно кликнуть и проверить матч. URL формируется клиентом провайдера при поиске, сохраняется в БД (metadata_candidate.url) и отображается ссылкой в веб-интерфейсе. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
## 1. Слой метаданных — генерация URL
|
||||
|
||||
- [x] 1.1 Добавить поле `URL` в структуру `metadata.Candidate` (`internal/metadata/metadata.go`)
|
||||
- [x] 1.2 Заполнять `URL` в `TMDB.Search`: `https://www.themoviedb.org/movie/{id}` (фильм) или `https://www.themoviedb.org/tv/{id}` (сериал)
|
||||
- [x] 1.3 Заполнять `URL` в `TVDB.Search`: `https://www.thetvdb.com/dereferrer/series/{id}`
|
||||
- [x] 1.4 Заполнять `URL` в `TVMaze.Search`: `https://www.tvmaze.com/shows/{id}` (нативный id, не теговый)
|
||||
- [x] 1.5 Обновить тесты клиентов метаданных (tmdb_test.go, tvdb_test.go, tvmaze_test.go) — проверить наличие URL в результатах Search
|
||||
|
||||
## 2. БД — хранение URL
|
||||
|
||||
- [x] 2.1 Создать миграцию `internal/store/migrations/0004_candidate_url.sql` — добавить колонку `url TEXT` в `metadata_candidate`
|
||||
- [x] 2.2 Добавить поле `URL` (`sql.NullString`) в структуру `store.MetadataCandidate`
|
||||
- [x] 2.3 Обновить `CreateCandidates` — сохранять `url` в INSERT
|
||||
- [x] 2.4 Обновить `docs/specs/database.md` — актуализировать ER-схему (колонка `url`)
|
||||
|
||||
## 3. Конвертация candidate → store
|
||||
|
||||
- [x] 3.1 В `worker.toStoreCandidates` пробрасывать `URL` из `metadata.Candidate` в `store.MetadataCandidate`
|
||||
|
||||
## 4. HTTP API и шаблон
|
||||
|
||||
- [x] 4.1 Добавить поле `URL` в `candidateView` (internal/httpapi/review.go)
|
||||
- [x] 4.2 Пробросить `URL` из `store.MetadataCandidate` в `candidateView` при сборе данных ревью
|
||||
- [x] 4.3 В шаблоне `web/templates/review.html` добавить колонку «ссылка» в таблицу кандидатов с `<a target="_blank">`
|
||||
|
||||
## 5. Проверка
|
||||
|
||||
- [x] 5.1 `task test` — все тесты проходят
|
||||
- [x] 5.2 `task lint` — без ошибок
|
||||
- [x] 5.3 `openspec validate --strict` — валидация спеки
|
||||
Reference in New Issue
Block a user