From: Jacob Date: Sun, 7 Sep 2025 20:17:49 +0000 (-0500) Subject: Actually correctly sort the sorted set X-Git-Url: https://git.jacobcasper.com/?a=commitdiff_plain;h=28dbaacd920a11e758217b26794b1f9e8cc2e742;p=close-be.git Actually correctly sort the sorted set --- diff --git a/app.py b/app.py index 1b72227..190e884 100644 --- a/app.py +++ b/app.py @@ -8,6 +8,7 @@ from typing import Optional from redis_client import get_client +import redis from flask import Flask, Response, request @@ -21,8 +22,10 @@ def create_app(): def stats(): redis_client.increment_hits("stats") try: - stats = redis_client.get_stats() - return {"stats": [{stat[0]: stat[1]} for stat in stats][::-1]} + stats = sorted( + [stat for stat in redis_client.get_stats()], key=lambda stat: -stat[1] + ) + return {"stats": [{stat[0]: stat[1]} for stat in stats]} except redis.exceptions.ConnectionError as e: app.logger.exception(e) return Response("Internal Server Error", 500) diff --git a/redis_client.py b/redis_client.py index 576b993..cb366ea 100644 --- a/redis_client.py +++ b/redis_client.py @@ -23,7 +23,7 @@ class RedisClient: def get_stats(self) -> list[tuple]: """Returns stats values from a Redis sorted set as a tuple of key-value pairs.""" - stats = self.r.zscan_iter("hits") + stats = self.r.zscan_iter("hits", score_cast_func=int) if stats is None: logger.debug("Uninitialized stats object") return []