diff --git a/relay/main.go b/relay/main.go index 3fc8a6f..1ac69b4 100644 --- a/relay/main.go +++ b/relay/main.go @@ -283,45 +283,45 @@ func main() { // Parse query parameters for pagination limitStr := r.URL.Query().Get("limit") offsetStr := r.URL.Query().Get("offset") - + limit := 10 // Default limit offset := 0 // Default offset - + if limitStr != "" { if val, err := strconv.Atoi(limitStr); err == nil && val > 0 { limit = val } } - + if offsetStr != "" { if val, err := strconv.Atoi(offsetStr); err == nil && val >= 0 { offset = val } } - + // Get trending history for kind 20 history, err := trending.GetTrendingHistoryForKind(db.DB.DB, 20, limit, offset) if err != nil { http.Error(w, fmt.Sprintf("Error getting trending history: %v", err), http.StatusInternalServerError) return } - + // Get total count for pagination info totalCount, err := trending.GetTrendingHistoryCount(db.DB.DB, 20) if err != nil { http.Error(w, fmt.Sprintf("Error getting trending history count: %v", err), http.StatusInternalServerError) return } - + response := map[string]interface{}{ "history": history, "pagination": map[string]interface{}{ - "total": totalCount, - "limit": limit, + "total": totalCount, + "limit": limit, "offset": offset, }, } - + if err := json.NewEncoder(w).Encode(response); err != nil { http.Error(w, fmt.Sprintf("Error encoding JSON: %v", err), http.StatusInternalServerError) } @@ -330,7 +330,7 @@ func main() { // Add UI for trending history mux.HandleFunc("/trending/history", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("content-type", "text/html") - + fmt.Fprintf(w, ` diff --git a/relay/trending/kinds.go b/relay/trending/kinds.go index 00ccd68..e3a27d8 100644 --- a/relay/trending/kinds.go +++ b/relay/trending/kinds.go @@ -134,23 +134,23 @@ func calculateTrendingKind20(db *sql.DB) ([]Post, error) { // Update in-memory cache trendingCache.Set("trending_kind_20", trendingPosts, cacheDuration) - + // Save to database for historical records postsJSON, err := json.Marshal(trendingPosts) if err != nil { return nil, fmt.Errorf("failed to marshal trending posts to JSON: %w", err) } - + _, err = db.Exec(` INSERT INTO trending_history (calculation_time, kind, trending_data) VALUES (NOW(), 20, $1) `, postsJSON) - + if err != nil { fmt.Printf("Warning: failed to store trending data in database: %v\n", err) // Don't return error here as we want to still return the trending posts even if saving fails } - + return trendingPosts, nil } @@ -171,10 +171,10 @@ func GetTrendingHistoryCount(db *sql.DB, kind int) (int, error) { FROM trending_history WHERE kind = $1 `, kind).Scan(&count) - + if err != nil { return 0, fmt.Errorf("failed to count trending history: %w", err) } - + return count, nil } diff --git a/relay/trending/schema.go b/relay/trending/schema.go index 40d1724..4970701 100644 --- a/relay/trending/schema.go +++ b/relay/trending/schema.go @@ -137,4 +137,4 @@ type TrendingHistoryEntry struct { ID int `json:"id"` CalculationTime time.Time `json:"calculation_time"` Posts []Post `json:"posts"` -} \ No newline at end of file +}