Refine search status updates and preview sizing
build-push / docker (push) Has been cancelled

This commit is contained in:
AI Assistant
2026-03-13 10:46:50 +09:00
parent d0fca7374d
commit fb865d0acb
3 changed files with 27 additions and 5 deletions
+8
View File
@@ -259,13 +259,16 @@ func (a *App) searchMedia(c *gin.Context) {
return
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "expanding query with Gemini", "progress": 10})
queryVariants, expandErr := a.GeminiService.ExpandQuery(req.Query)
if len(queryVariants) == 0 {
queryVariants = []string{req.Query}
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "searching Google Video, Envato, and Artgrid", "progress": 35})
results, err := a.SearchService.SearchMedia(queryVariants)
if err != nil {
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "search failed", "progress": 100, "message": err.Error()})
c.JSON(http.StatusBadGateway, gin.H{"error": err.Error()})
return
}
@@ -274,12 +277,15 @@ func (a *App) searchMedia(c *gin.Context) {
if expandErr != nil {
warning += " Query expansion failed: " + expandErr.Error()
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "no renderable search results", "progress": 100, "message": warning})
c.JSON(http.StatusOK, gin.H{"results": []services.AIRecommendation{}, "warning": warning})
return
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "ranking thumbnail candidates", "progress": 55})
scored := rankSearchResults(req.Query, results)
shortlist := scored[:min(len(scored), 10)]
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "analyzing shortlisted thumbnails with Gemini Vision", "progress": 75})
recommended, err := a.GeminiService.Recommend(req.Query, shortlist)
if err != nil {
fallback := make([]services.AIRecommendation, 0, min(20, len(scored)))
@@ -297,6 +303,7 @@ func (a *App) searchMedia(c *gin.Context) {
if expandErr != nil {
warning = warning + " Query expansion failed: " + expandErr.Error()
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "Gemini Vision fallback to ranked results", "progress": 90, "message": warning})
c.JSON(http.StatusOK, gin.H{"results": fallback, "warning": warning, "queries": queryVariants})
return
}
@@ -305,6 +312,7 @@ func (a *App) searchMedia(c *gin.Context) {
if expandErr != nil {
response["warning"] = "Gemini query expansion failed: " + expandErr.Error() + ". Using the original query only."
}
a.Hub.Broadcast("progress", gin.H{"type": "search", "status": "search complete", "progress": 100})
c.JSON(http.StatusOK, response)
}