Fix SearXNG fallback and crop sliders
build-push / docker (push) Successful in 4m12s

This commit is contained in:
AI Assistant
2026-03-13 10:28:04 +09:00
parent 8fb2b68b48
commit 189802b2f0
2 changed files with 25 additions and 4 deletions
+16 -1
View File
@@ -78,6 +78,7 @@ func (s *SearchService) SearchMedia(queries []string) ([]SearchResult, error) {
seen := map[string]bool{}
results := make([]SearchResult, 0, 60)
var lastErr error
for _, query := range queries {
query = strings.TrimSpace(query)
if query == "" {
@@ -91,6 +92,17 @@ func (s *SearchService) SearchMedia(queries []string) ([]SearchResult, error) {
items, err := s.search(searchQuery, source.categories, source.engine, source.name)
if err != nil {
lastErr = err
items, err = s.search(searchQuery, source.categories, "", source.name)
}
if err != nil {
lastErr = err
if source.categories != "general" {
items, err = s.search(searchQuery, "general", "", source.name)
}
}
if err != nil {
lastErr = err
continue
}
for _, item := range items {
@@ -109,6 +121,9 @@ func (s *SearchService) SearchMedia(queries []string) ([]SearchResult, error) {
sort.SliceStable(results, func(i, j int) bool {
return sourceWeight(results[i].Source) > sourceWeight(results[j].Source)
})
if len(results) == 0 && lastErr != nil {
return nil, lastErr
}
return results, nil
}
@@ -133,7 +148,7 @@ func (s *SearchService) search(query, categories, engine, source string) ([]Sear
defer resp.Body.Close()
if resp.StatusCode >= 300 {
return nil, fmt.Errorf("searxng returned status %d", resp.StatusCode)
return nil, fmt.Errorf("searxng returned status %d for query %q", resp.StatusCode, query)
}
var payload struct {
+9 -3
View File
@@ -95,9 +95,15 @@
<span>Crop Range</span>
<span id="rangeSummary">00:00:00 - 00:00:00</span>
</div>
<div class="relative h-8">
<input id="startRange" type="range" min="0" max="0" value="0" step="1" class="slider-thumb absolute inset-0 w-full appearance-none bg-transparent" />
<input id="endRange" type="range" min="0" max="0" value="0" step="1" class="slider-thumb absolute inset-0 w-full appearance-none bg-transparent" />
<div class="space-y-3">
<label class="block space-y-2">
<span class="text-xs uppercase tracking-[0.2em] text-zinc-500">Start</span>
<input id="startRange" type="range" min="0" max="0" value="0" step="1" class="slider-thumb w-full appearance-none bg-transparent" />
</label>
<label class="block space-y-2">
<span class="text-xs uppercase tracking-[0.2em] text-zinc-500">End</span>
<input id="endRange" type="range" min="0" max="0" value="0" step="1" class="slider-thumb w-full appearance-none bg-transparent" />
</label>
</div>
<div class="mt-3 flex gap-3">
<button id="setStartFromPreview" type="button" class="flex-1 rounded-2xl border border-white/10 px-4 py-3 text-sm text-zinc-200 transition hover:border-white/30">Set Start</button>