Веб-UI: основной идентификатор карточек — download.id вместо infohash
В карточке списка и шапке /download/{id} показываем и копируем download.id
(ULID) — тот же ключ, что в логах (download_id), удобно грепать. Infohash
остаётся в блоке «Информация о торренте». Поиск по списку расширен: матчит
любой идентификатор (download.id ИЛИ infohash), плюс название/контекст.
Удалены осиротевшие поля Infohash/InfohashShort и хелпер shortenHash.
Дельта web-ui влита в спеки, change заархивирован.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,7 @@ func statesInGroup(g StateGroup) []State {
|
||||
// ListFilter — параметры страницы списка загрузок.
|
||||
type ListFilter struct {
|
||||
Group StateGroup // группа состояний ("" / all — без сужения)
|
||||
Query string // поиск по названию/infohash/контексту (подстрока)
|
||||
Query string // поиск по id/названию/infohash/контексту (подстрока)
|
||||
IncludeDeleted bool // показывать состояние deleted (только под all)
|
||||
Limit int // размер страницы
|
||||
Offset int // смещение страницы
|
||||
@@ -71,12 +71,13 @@ func listWhere(f ListFilter) (string, []any) {
|
||||
// ICU в чистом modernc-драйвере нет. Достаточно для инфохэша/латиницы;
|
||||
// кириллические названия ищем как введены.
|
||||
like := "%" + q + "%"
|
||||
conds = append(conds, "(source_ref LIKE ? COLLATE NOCASE "+
|
||||
conds = append(conds, "(download.id LIKE ? COLLATE NOCASE "+
|
||||
"OR source_ref LIKE ? COLLATE NOCASE "+
|
||||
"OR display_name LIKE ? COLLATE NOCASE "+
|
||||
"OR context LIKE ? COLLATE NOCASE "+
|
||||
"OR EXISTS (SELECT 1 FROM download_infohash dh "+
|
||||
"WHERE dh.download_id = download.id AND dh.infohash LIKE ? COLLATE NOCASE))")
|
||||
args = append(args, like, like, like, like)
|
||||
args = append(args, like, like, like, like, like)
|
||||
}
|
||||
|
||||
if len(conds) == 0 {
|
||||
|
||||
Reference in New Issue
Block a user