fixed 'fetched in X seconds seconds'
All checks were successful
Run Integration Tests / test (push) Successful in 26s

This commit is contained in:
partisan 2025-04-24 16:56:41 +02:00
parent 06f8604779
commit 6445be87a9
9 changed files with 38 additions and 18 deletions

View file

@ -107,3 +107,21 @@ func GetIconPath() (string, string) {
// Default paths // Default paths
return "/static/images/icon.svg", "/static/images/icon.png" return "/static/images/icon.svg", "/static/images/icon.png"
} }
// FormatElapsedTime formats elapsed time as a string,
// using:
// - "> 0.01 ms" if under 49µs
// - "0.xx ms" if under 1ms
// - "xxx ms" if under 300ms
// - "x.xx seconds" otherwise
func FormatElapsedTime(elapsed time.Duration) string {
if elapsed < 49*time.Microsecond {
return fmt.Sprintf("> 0.01 %s", Translate("milliseconds"))
} else if elapsed < time.Millisecond {
ms := float64(elapsed.Microseconds()) / 1000.0
return fmt.Sprintf("%.2f %s", ms, Translate("milliseconds"))
} else if elapsed < 300*time.Millisecond {
return fmt.Sprintf("%d %s", elapsed.Milliseconds(), Translate("milliseconds"))
}
return fmt.Sprintf("%.2f %s", elapsed.Seconds(), Translate("seconds"))
}

View file

@ -66,7 +66,7 @@ func handleFileSearch(w http.ResponseWriter, settings UserSettings, query string
data := map[string]interface{}{ data := map[string]interface{}{
"Results": combinedResults, "Results": combinedResults,
"Query": query, "Query": query,
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), // Time for fetching results "Fetched": FormatElapsedTime(elapsedTime),
"Category": "all", "Category": "all",
"Sort": "seed", "Sort": "seed",
"Page": page, "Page": page,

View file

@ -120,7 +120,7 @@ func handleForumsSearch(w http.ResponseWriter, settings UserSettings, query stri
"Query": query, "Query": query,
"Results": results, "Results": results,
"Page": page, "Page": page,
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), // Time for fetching results "Fetched": FormatElapsedTime(elapsedTime),
"HasPrevPage": page > 1, "HasPrevPage": page > 1,
"HasNextPage": len(results) >= 25, "HasNextPage": len(results) >= 25,
"NoResults": len(results) == 0, "NoResults": len(results) == 0,

View file

@ -55,7 +55,7 @@ func handleImageSearch(w http.ResponseWriter, r *http.Request, settings UserSett
data := map[string]interface{}{ data := map[string]interface{}{
"Results": combinedResults, "Results": combinedResults,
"Query": query, "Query": query,
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), "Fetched": FormatElapsedTime(elapsedTime),
"Page": page, "Page": page,
"HasPrevPage": page > 1, "HasPrevPage": page > 1,
"HasNextPage": len(combinedResults) >= 50, "HasNextPage": len(combinedResults) >= 50,

View file

@ -119,7 +119,13 @@ msgid "next"
msgstr "Next" msgstr "Next"
msgid "fetched_in" msgid "fetched_in"
msgstr "Fetched in %s seconds" msgstr "Fetched in %s"
msgid "seconds"
msgstr "seconds"
msgid "milliseconds"
msgstr "milliseconds"
msgid "sort_seeders" msgid "sort_seeders"
msgstr "Number of Seeders" msgstr "Number of Seeders"

7
map.go
View file

@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"net/url" "net/url"
"time"
) )
type NominatimResponse struct { type NominatimResponse struct {
@ -59,7 +58,7 @@ func geocodeQuery(query string) (latitude, longitude string, found bool, err err
func handleMapSearch(w http.ResponseWriter, settings UserSettings, query string) { func handleMapSearch(w http.ResponseWriter, settings UserSettings, query string) {
// Start measuring the time for geocoding the query // Start measuring the time for geocoding the query
startTime := time.Now() //startTime := time.Now()
// Geocode the query to get coordinates // Geocode the query to get coordinates
latitude, longitude, found, err := geocodeQuery(query) latitude, longitude, found, err := geocodeQuery(query)
@ -70,7 +69,7 @@ func handleMapSearch(w http.ResponseWriter, settings UserSettings, query string)
} }
// Measure the elapsed time for geocoding // Measure the elapsed time for geocoding
elapsedTime := time.Since(startTime) //elapsed := time.Since(startTime)
// Prepare the data to pass to the template // Prepare the data to pass to the template
data := map[string]interface{}{ data := map[string]interface{}{
@ -78,7 +77,7 @@ func handleMapSearch(w http.ResponseWriter, settings UserSettings, query string)
"Latitude": latitude, "Latitude": latitude,
"Longitude": longitude, "Longitude": longitude,
"Found": found, "Found": found,
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), //"Fetched": FormatElapsedTime(elapsed), // not used in map tab
"Theme": settings.Theme, "Theme": settings.Theme,
"Safe": settings.SafeSearch, "Safe": settings.SafeSearch,
"IsThemeDark": settings.IsThemeDark, "IsThemeDark": settings.IsThemeDark,

View file

@ -2,7 +2,6 @@
package main package main
import ( import (
"fmt"
"net/http" "net/http"
"sync" "sync"
"time" "time"
@ -59,7 +58,6 @@ func handleMusicSearch(w http.ResponseWriter, settings UserSettings, query strin
go prefetchMusicPages(query, page) go prefetchMusicPages(query, page)
elapsed := time.Since(start) // Calculate duration elapsed := time.Since(start) // Calculate duration
fetched := fmt.Sprintf("%.2f %s", elapsed.Seconds(), Translate("seconds"))
data := map[string]interface{}{ data := map[string]interface{}{
"Results": results, "Results": results,
@ -72,7 +70,7 @@ func handleMusicSearch(w http.ResponseWriter, settings UserSettings, query strin
"Theme": settings.Theme, "Theme": settings.Theme,
"IsThemeDark": settings.IsThemeDark, "IsThemeDark": settings.IsThemeDark,
"Trans": Translate, "Trans": Translate,
"Fetched": fetched, "Fetched": FormatElapsedTime(elapsed),
} }
renderTemplate(w, "music.html", data) renderTemplate(w, "music.html", data)

View file

@ -1,7 +1,6 @@
package main package main
import ( import (
"fmt"
"net/http" "net/http"
"time" "time"
) )
@ -51,7 +50,7 @@ func HandleTextSearch(w http.ResponseWriter, settings UserSettings, query string
data := map[string]interface{}{ data := map[string]interface{}{
"Results": combinedResults, "Results": combinedResults,
"Query": query, "Query": query,
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), // Time for fetching results "Fetched": FormatElapsedTime(elapsedTime),
"Page": page, "Page": page,
"HasPrevPage": page > 1, "HasPrevPage": page > 1,
"HasNextPage": len(combinedResults) >= 50, "HasNextPage": len(combinedResults) >= 50,

View file

@ -157,7 +157,7 @@ func handleVideoSearch(w http.ResponseWriter, settings UserSettings, query strin
data := map[string]interface{}{ data := map[string]interface{}{
"Results": results, "Results": results,
"Query": query, "Query": query,
"Fetched": fmt.Sprintf("%.2f %s", elapsed.Seconds(), Translate("seconds")), "Fetched": FormatElapsedTime(elapsed),
"Page": page, "Page": page,
"HasPrevPage": page > 1, "HasPrevPage": page > 1,
"HasNextPage": len(results) > 0, "HasNextPage": len(results) > 0,