layout: непомещающееся целевое имя уводит задачу в review вместо failed

- предел длины компонента (255 байт) проверяется в BuildLinks до первой
  операции с ФС: ни каталога, ни ссылки при отказе не создаётся
- причина пустого предпросмотра считается на показе (ReviewData.PreviewError)
  и печатается в панели действий и в карточке Telegram: у задачи без
  записанной причины взять её больше неоткуда
This commit is contained in:
av
2026-08-10 12:16:44 +03:00
parent 1710e5a9d5
commit b9f0929d0c
31 changed files with 1511 additions and 17 deletions
+6 -1
View File
@@ -43,6 +43,7 @@ type reviewView struct {
State string
Error string // из ?err=
StateError string // error_msg загрузки (напр. причина коллизии)
PreviewError string // почему предпросмотр не построился, посчитано на показе
MediaType string
IsSeries bool
Title string
@@ -113,7 +114,11 @@ func buildReviewView(id string, rd *worker.ReviewData, errMsg string) reviewView
State: string(rd.Download.State),
Error: errMsg,
StateError: rd.Download.ErrorMsg.String,
Hints: rd.Hints,
// Причина пустого предпросмотра считается на показе и потому всегда про
// текущий план; error_msg остался от последнего перехода и после смены
// источника уже не про него.
PreviewError: rd.PreviewError,
Hints: rd.Hints,
}
if rec := rd.Recognition; rec != nil {
view.MediaType = string(rd.Plan.Type)