layout: непомещающееся целевое имя уводит задачу в review вместо failed
- предел длины компонента (255 байт) проверяется в BuildLinks до первой операции с ФС: ни каталога, ни ссылки при отказе не создаётся - причина пустого предпросмотра считается на показе (ReviewData.PreviewError) и печатается в панели действий и в карточке Telegram: у задачи без записанной причины взять её больше неоткуда
This commit is contained in:
@@ -89,11 +89,26 @@ func (b *Bot) reviewCard(rd *worker.ReviewData) (string, *tgbotapi.InlineKeyboar
|
||||
}
|
||||
if n := len(rd.Preview); n > 0 {
|
||||
fmt.Fprintf(&sb, "План: %d файлов → %s", n, esc(tailPath(rd.Preview[0].Dst)))
|
||||
} else if why := previewProblem(rd); why != "" {
|
||||
// Плана нет — без этой строки карточка молчит о том, почему нет и «Применить».
|
||||
// Причина показа (PreviewError) старше записанной: она про текущий план, а
|
||||
// error_msg остался от последнего перехода.
|
||||
fmt.Fprintf(&sb, "Не удаётся построить план: %s", esc(shorten(why, 120)))
|
||||
}
|
||||
|
||||
return strings.TrimRight(sb.String(), "\n"), b.reviewKeyboard(rd)
|
||||
}
|
||||
|
||||
// previewProblem — почему у задачи в review нет плана: причина, посчитанная на
|
||||
// показе, либо записанная при последнем переходе. Пусто — объяснять нечего
|
||||
// (источник ещё не подтверждён).
|
||||
func previewProblem(rd *worker.ReviewData) string {
|
||||
if rd.PreviewError != "" {
|
||||
return rd.PreviewError
|
||||
}
|
||||
return rd.Download.ErrorMsg.String
|
||||
}
|
||||
|
||||
func (b *Bot) reviewKeyboard(rd *worker.ReviewData) *tgbotapi.InlineKeyboardMarkup {
|
||||
id := rd.Download.ID
|
||||
sid := id
|
||||
|
||||
Reference in New Issue
Block a user