From 5df412125bbd668661473a5512f1f9c0b22d6b93 Mon Sep 17 00:00:00 2001 From: g0ldyy <153996346+g0ldyy@users.noreply.github.com> Date: Mon, 1 Dec 2025 09:54:33 +0100 Subject: [PATCH] feat: enhance admin dashboard with dynamic tracker limit selection and optimize database metrics query --- comet/api/endpoints/admin.py | 11 +++------- comet/core/database.py | 2 ++ comet/templates/admin_dashboard.html | 32 +++++++++++++++++++++++++--- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/comet/api/endpoints/admin.py b/comet/api/endpoints/admin.py index 7df0206..95301af 100644 --- a/comet/api/endpoints/admin.py +++ b/comet/api/endpoints/admin.py @@ -223,25 +223,20 @@ async def admin_api_metrics(admin_session: str = Cookie(None)): # Torrents by tracker top_trackers = await database.fetch_all(""" - SELECT tracker, COUNT(*) as count + SELECT tracker, COUNT(*) as count, AVG(seeders) as avg_seeders, AVG(size) as avg_size FROM torrents GROUP BY tracker ORDER BY count DESC - LIMIT 5 """) tracker_stats = [] for row in top_trackers: - stats = await database.fetch_one( - "SELECT AVG(seeders) as avg_seeders, AVG(size) as avg_size FROM torrents WHERE tracker = :tracker", - {"tracker": row["tracker"]}, - ) tracker_stats.append( { "tracker": row["tracker"], "count": row["count"], - "avg_seeders": stats["avg_seeders"], - "avg_size": stats["avg_size"], + "avg_seeders": row["avg_seeders"], + "avg_size": row["avg_size"], } ) diff --git a/comet/core/database.py b/comet/core/database.py index d8585b3..a2eefad 100644 --- a/comet/core/database.py +++ b/comet/core/database.py @@ -631,6 +631,8 @@ async def setup_database(): await database.execute("DELETE FROM active_connections") + await database.execute("DELETE FROM metrics_cache") + except Exception as e: logger.error(f"Error setting up the database: {e}") logger.exception(traceback.format_exc()) diff --git a/comet/templates/admin_dashboard.html b/comet/templates/admin_dashboard.html index fcbbf12..0720e53 100644 --- a/comet/templates/admin_dashboard.html +++ b/comet/templates/admin_dashboard.html @@ -956,7 +956,16 @@
No tracker data available