+48
-22
@@ -58,13 +58,22 @@ async def get_movies_list(dependencies: dict,
|
||||
total_count = db._get_first_value(cursor.fetchone())
|
||||
|
||||
# Get paginated results
|
||||
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 ?
|
||||
"""
|
||||
if db.db_type == "postgresql":
|
||||
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 %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])
|
||||
|
||||
movies = []
|
||||
@@ -154,21 +163,38 @@ async def get_tv_series_list(dependencies: dict,
|
||||
|
||||
# Get series with episode statistics
|
||||
having_part = f" HAVING {having_clause}" if having_clause 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 ?
|
||||
"""
|
||||
if db.db_type == "postgresql":
|
||||
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 THEN 1 END) as episodes_with_dates,
|
||||
COUNT(CASE WHEN e.has_video_file = TRUE 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 %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])
|
||||
|
||||
series = []
|
||||
|
||||
Reference in New Issue
Block a user