From 1387afe94fd105dff6c5a93ee2ea67b8eec1c816 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sat, 4 Jul 2026 08:26:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82?= =?UTF-8?q?=D1=80:=20=D0=B1=D0=BB=D0=BE=D0=BA=20=C2=AB=D0=A0=D0=B0=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=B7=D0=BD=D0=B0=D0=BD=D0=BE=20=D0=BA=D0=B0=D0=BA?= =?UTF-8?q?=C2=BB=20=E2=80=94=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B0?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D0=B5=E2=86=92=D0=B7=D0=BD=D0=B0=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5,=20+=D1=81=D0=B5=D0=B7=D0=BE=D0=BD/?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B8=D1=81=D1=81=D1=91=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Блок распознавания на /download/{id} переведён из карточки с постером в единую таблицу kv (поле слева, значение справа) — убирает неоднозначность трёх одинаковых названий. Поля: название, ориг. название, тип, сезон (для сериала), год, режиссёр (зарезервировано «—»), база, уверенность. Мёртвый CSS карточки/постера удалён. Co-Authored-By: Claude Opus 4.8 (1M context) --- internal/httpapi/download.go | 4 ++++ web/static/css/jellybit.css | 14 -------------- web/templates/download.html | 22 ++++++++++------------ 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/internal/httpapi/download.go b/internal/httpapi/download.go index 452ce45..52a11f1 100644 --- a/internal/httpapi/download.go +++ b/internal/httpapi/download.go @@ -32,6 +32,7 @@ type downloadDetailView struct { IsSeries bool RecTitle string OriginalTitle string + Season string // сводка сезонов для сериала (пусто для фильма) Year int Provider string ProviderID string @@ -110,6 +111,9 @@ func (s *server) handleDownload(w http.ResponseWriter, r *http.Request) { view.IsSeries = rd.Plan.Type == "series" view.RecTitle = rd.Plan.Title view.OriginalTitle = rd.Plan.OriginalTitle + if view.IsSeries { + view.Season = seasonSummary(rd.Plan) + } view.Year = rd.Plan.Year switch rd.Provider { case "", "none": diff --git a/web/static/css/jellybit.css b/web/static/css/jellybit.css index cb64a1b..f6e5dd2 100644 --- a/web/static/css/jellybit.css +++ b/web/static/css/jellybit.css @@ -434,18 +434,6 @@ table.tbl .size{font-family:var(--mono);color:var(--text-dim);white-space:nowrap /* ---------- 17. Страница загрузки ---------- */ .detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-4);align-items:start} -/* распознано как — карточка с постером */ -.meta-card{display:flex;gap:var(--sp-4);align-items:flex-start} -.poster{flex:none;width:104px;height:156px;border-radius:var(--r-md);overflow:hidden; - border:1px solid var(--border); - background-image:repeating-linear-gradient(135deg,var(--surface-2) 0 9px,var(--surface-3) 9px 18px); - display:grid;place-items:center} -.poster span{font-family:var(--mono);font-size:10px;color:var(--text-faint); - background:var(--surface);padding:2px 6px;border-radius:4px} -.meta-body{flex:1;min-width:0} -.meta-body .h{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em;margin:0 0 2px;line-height:1.2} -.meta-body .o{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text-faint);margin:0 0 var(--sp-3)} - /* key-value список */ .kv{display:grid;grid-template-columns:auto 1fr;gap:7px var(--sp-4);font-size:var(--fs-sm);margin:0} .kv dt{color:var(--text-faint);white-space:nowrap} @@ -491,8 +479,6 @@ table.tbl .size{font-family:var(--mono);color:var(--text-dim);white-space:nowrap .nav a{padding:6px 9px} .toolbar{flex-direction:column;align-items:stretch} .detail-grid{grid-template-columns:1fr} - .meta-card{flex-direction:column} - .poster{width:88px;height:132px} } /* доступность фокуса */ diff --git a/web/templates/download.html b/web/templates/download.html index 0482e16..cdbedae 100644 --- a/web/templates/download.html +++ b/web/templates/download.html @@ -41,18 +41,16 @@

Распознано как

{{if .HasPlan}} -
-
-

{{.RecTitle}}

- {{if .OriginalTitle}}

{{.OriginalTitle}}

{{end}} -
-
Тип
{{if .IsSeries}}сериал{{else if eq .MediaType "movie"}}фильм{{else}}{{.MediaType}}{{end}}
- {{if .Year}}
Год
{{.Year}}
{{end}} -
База
{{if .Provider}}{{if .MatchURL}}{{.Provider}} · {{.ProviderID}} ↗{{else}}{{.Provider}} · {{.ProviderID}}{{end}}{{else if .NoBase}}без базы{{else}}—{{end}}
- {{if .Confidence}}
Уверенность
{{.Confidence}}
{{end}} -
-
-
+
+
Название
{{.RecTitle}}
+
Ориг. название
{{if .OriginalTitle}}{{.OriginalTitle}}{{else}}{{end}}
+
Тип
{{if .IsSeries}}сериал{{else if eq .MediaType "movie"}}фильм{{else}}{{.MediaType}}{{end}}
+ {{if .IsSeries}}
Сезон
{{if .Season}}{{.Season}}{{else}}{{end}}
{{end}} +
Год
{{if .Year}}{{.Year}}{{else}}{{end}}
+
Режиссёр
+
База
{{if .Provider}}{{if .MatchURL}}{{.Provider}} · {{.ProviderID}} ↗{{else}}{{.Provider}} · {{.ProviderID}}{{end}}{{else if .NoBase}}без базы{{else}}{{end}}
+
Уверенность
{{if .Confidence}}{{.Confidence}}{{else}}{{end}}
+
{{else}}

Ещё не распознано.

{{end}}