db: fixes
Local Docker Build (Dev) / build-dev (push) Successful in 4s

This commit is contained in:
2025-10-18 14:21:57 -04:00
parent 3b32f7e023
commit 46fa6b3b75
2 changed files with 49 additions and 23 deletions
+1 -1
View File
@@ -1 +1 @@
2.4.1 2.4.2
+48 -22
View File
@@ -58,13 +58,22 @@ async def get_movies_list(dependencies: dict,
total_count = db._get_first_value(cursor.fetchone()) total_count = db._get_first_value(cursor.fetchone())
# Get paginated results # Get paginated results
query = f""" if db.db_type == "postgresql":
SELECT imdb_id, path, released, dateadded, source, has_video_file, last_updated query = f"""
FROM movies SELECT imdb_id, path, released, dateadded, source, has_video_file, last_updated
WHERE {where_clause} FROM movies
ORDER BY last_updated DESC WHERE {where_clause}
LIMIT ? OFFSET ? ORDER BY last_updated DESC
""" LIMIT %s OFFSET %s
"""
else:
query = f"""
SELECT imdb_id, path, released, dateadded, source, has_video_file, last_updated
FROM movies
WHERE {where_clause}
ORDER BY last_updated DESC
LIMIT ? OFFSET ?
"""
cursor.execute(query, params + [limit, skip]) cursor.execute(query, params + [limit, skip])
movies = [] movies = []
@@ -154,21 +163,38 @@ async def get_tv_series_list(dependencies: dict,
# Get series with episode statistics # Get series with episode statistics
having_part = f" HAVING {having_clause}" if having_clause else "" having_part = f" HAVING {having_clause}" if having_clause else ""
query = f""" if db.db_type == "postgresql":
SELECT query = f"""
s.imdb_id, SELECT
s.path, s.imdb_id,
s.last_updated, s.path,
COUNT(e.episode) as total_episodes, s.last_updated,
COUNT(CASE WHEN e.dateadded IS NOT NULL AND e.dateadded != '' THEN 1 END) as episodes_with_dates, COUNT(e.episode) as total_episodes,
COUNT(CASE WHEN e.has_video_file = 1 THEN 1 END) as episodes_with_video COUNT(CASE WHEN e.dateadded IS NOT NULL THEN 1 END) as episodes_with_dates,
FROM series s COUNT(CASE WHEN e.has_video_file = TRUE THEN 1 END) as episodes_with_video
LEFT JOIN episodes e ON s.imdb_id = e.imdb_id FROM series s
WHERE {where_clause} LEFT JOIN episodes e ON s.imdb_id = e.imdb_id
GROUP BY s.imdb_id, s.path, s.last_updated{having_part} WHERE {where_clause}
ORDER BY s.last_updated DESC GROUP BY s.imdb_id, s.path, s.last_updated{having_part}
LIMIT ? OFFSET ? ORDER BY s.last_updated DESC
""" LIMIT %s OFFSET %s
"""
else:
query = f"""
SELECT
s.imdb_id,
s.path,
s.last_updated,
COUNT(e.episode) as total_episodes,
COUNT(CASE WHEN e.dateadded IS NOT NULL AND e.dateadded != '' THEN 1 END) as episodes_with_dates,
COUNT(CASE WHEN e.has_video_file = 1 THEN 1 END) as episodes_with_video
FROM series s
LEFT JOIN episodes e ON s.imdb_id = e.imdb_id
WHERE {where_clause}
GROUP BY s.imdb_id, s.path, s.last_updated{having_part}
ORDER BY s.last_updated DESC
LIMIT ? OFFSET ?
"""
cursor.execute(query, params + [limit, skip]) cursor.execute(query, params + [limit, skip])
series = [] series = []