+48
-22
@@ -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 = []
|
||||||
|
|||||||
Reference in New Issue
Block a user