Просмотр: блок «Распознано как» — таблица поле→значение, +сезон/режиссёр
Блок распознавания на /download/{id} переведён из карточки с постером в
единую таблицу kv (поле слева, значение справа) — убирает неоднозначность
трёх одинаковых названий. Поля: название, ориг. название, тип, сезон
(для сериала), год, режиссёр (зарезервировано «—»), база, уверенность.
Мёртвый CSS карточки/постера удалён.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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":
|
||||
|
||||
@@ -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}
|
||||
}
|
||||
|
||||
/* доступность фокуса */
|
||||
|
||||
+10
-12
@@ -41,18 +41,16 @@
|
||||
<div class="section">
|
||||
<div class="section-head"><h2>Распознано как</h2></div>
|
||||
{{if .HasPlan}}
|
||||
<div class="meta-card">
|
||||
<div class="meta-body">
|
||||
<p class="h">{{.RecTitle}}</p>
|
||||
{{if .OriginalTitle}}<p class="o">{{.OriginalTitle}}</p>{{end}}
|
||||
<dl class="kv">
|
||||
<dt>Тип</dt><dd>{{if .IsSeries}}сериал{{else if eq .MediaType "movie"}}фильм{{else}}{{.MediaType}}{{end}}</dd>
|
||||
{{if .Year}}<dt>Год</dt><dd>{{.Year}}</dd>{{end}}
|
||||
<dt>База</dt><dd>{{if .Provider}}{{if .MatchURL}}<a class="ext-link" href="{{.MatchURL}}" target="_blank" rel="noopener">{{.Provider}} · {{.ProviderID}} ↗</a>{{else}}{{.Provider}} · <span class="mono">{{.ProviderID}}</span>{{end}}{{else if .NoBase}}без базы{{else}}—{{end}}</dd>
|
||||
{{if .Confidence}}<dt>Уверенность</dt><dd class="mono">{{.Confidence}}</dd>{{end}}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<dl class="kv">
|
||||
<dt>Название</dt><dd>{{.RecTitle}}</dd>
|
||||
<dt>Ориг. название</dt><dd class="mono">{{if .OriginalTitle}}{{.OriginalTitle}}{{else}}<span class="faint">—</span>{{end}}</dd>
|
||||
<dt>Тип</dt><dd>{{if .IsSeries}}сериал{{else if eq .MediaType "movie"}}фильм{{else}}{{.MediaType}}{{end}}</dd>
|
||||
{{if .IsSeries}}<dt>Сезон</dt><dd>{{if .Season}}{{.Season}}{{else}}<span class="faint">—</span>{{end}}</dd>{{end}}
|
||||
<dt>Год</dt><dd>{{if .Year}}{{.Year}}{{else}}<span class="faint">—</span>{{end}}</dd>
|
||||
<dt>Режиссёр</dt><dd><span class="faint">—</span></dd>
|
||||
<dt>База</dt><dd>{{if .Provider}}{{if .MatchURL}}<a class="ext-link" href="{{.MatchURL}}" target="_blank" rel="noopener">{{.Provider}} · {{.ProviderID}} ↗</a>{{else}}{{.Provider}} · <span class="mono">{{.ProviderID}}</span>{{end}}{{else if .NoBase}}без базы{{else}}<span class="faint">—</span>{{end}}</dd>
|
||||
<dt>Уверенность</dt><dd class="mono">{{if .Confidence}}{{.Confidence}}{{else}}<span class="faint">—</span>{{end}}</dd>
|
||||
</dl>
|
||||
{{else}}
|
||||
<p class="muted" style="margin:0">Ещё не распознано.</p>
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user