This commit is contained in:
+67
-1
@@ -11,6 +11,54 @@ from pathlib import Path
|
|||||||
from api.models import *
|
from api.models import *
|
||||||
|
|
||||||
|
|
||||||
|
def map_source_to_description(source: str) -> str:
|
||||||
|
"""Map technical source codes to user-friendly descriptions"""
|
||||||
|
if not source or source == "no_valid_date_source":
|
||||||
|
return "Unknown"
|
||||||
|
|
||||||
|
# Handle different source patterns
|
||||||
|
source_lower = source.lower()
|
||||||
|
|
||||||
|
# TMDB sources
|
||||||
|
if "tmdb:theatrical" in source_lower:
|
||||||
|
return "TMDB Theatrical"
|
||||||
|
elif "tmdb:digital" in source_lower:
|
||||||
|
return "TMDB Digital"
|
||||||
|
elif "tmdb:physical" in source_lower:
|
||||||
|
return "TMDB Physical/DVD"
|
||||||
|
elif "tmdb:" in source_lower:
|
||||||
|
return "TMDB Release"
|
||||||
|
|
||||||
|
# Radarr sources
|
||||||
|
elif "radarr:db.history.import" in source_lower:
|
||||||
|
return "Radarr Import History"
|
||||||
|
elif "radarr:db.file.dateadded" in source_lower:
|
||||||
|
return "Radarr File Date"
|
||||||
|
elif "radarr:nfo.premiered" in source_lower:
|
||||||
|
return "Radarr NFO"
|
||||||
|
elif "radarr:" in source_lower:
|
||||||
|
return "Radarr"
|
||||||
|
|
||||||
|
# OMDb sources
|
||||||
|
elif "omdb:dvd" in source_lower:
|
||||||
|
return "OMDb DVD"
|
||||||
|
elif "omdb:" in source_lower:
|
||||||
|
return "OMDb Release"
|
||||||
|
|
||||||
|
# Manual and other sources
|
||||||
|
elif "manual" in source_lower:
|
||||||
|
return "Manual Entry"
|
||||||
|
elif "digital_release" in source_lower:
|
||||||
|
return "Digital Release"
|
||||||
|
elif "nfo:" in source_lower:
|
||||||
|
return "NFO File"
|
||||||
|
elif "webhook:" in source_lower:
|
||||||
|
return "Webhook/API"
|
||||||
|
|
||||||
|
# Fallback for unknown patterns
|
||||||
|
return source.title()
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
# Database Query Endpoints
|
# Database Query Endpoints
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
@@ -84,6 +132,8 @@ async def get_movies_list(dependencies: dict,
|
|||||||
movie['title'] = Path(movie['path']).name if movie['path'] else movie['imdb_id']
|
movie['title'] = Path(movie['path']).name if movie['path'] else movie['imdb_id']
|
||||||
except:
|
except:
|
||||||
movie['title'] = movie['imdb_id']
|
movie['title'] = movie['imdb_id']
|
||||||
|
# Map source to user-friendly description
|
||||||
|
movie['source_description'] = map_source_to_description(movie.get('source'))
|
||||||
movies.append(movie)
|
movies.append(movie)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -305,6 +355,9 @@ async def get_series_episodes(dependencies: dict, imdb_id: str):
|
|||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
# Get series info
|
# Get series info
|
||||||
|
if db.db_type == "postgresql":
|
||||||
|
cursor.execute("SELECT * FROM series WHERE imdb_id = %s", (imdb_id,))
|
||||||
|
else:
|
||||||
cursor.execute("SELECT * FROM series WHERE imdb_id = ?", (imdb_id,))
|
cursor.execute("SELECT * FROM series WHERE imdb_id = ?", (imdb_id,))
|
||||||
series_row = cursor.fetchone()
|
series_row = cursor.fetchone()
|
||||||
if not series_row:
|
if not series_row:
|
||||||
@@ -317,6 +370,14 @@ async def get_series_episodes(dependencies: dict, imdb_id: str):
|
|||||||
series_info['title'] = imdb_id
|
series_info['title'] = imdb_id
|
||||||
|
|
||||||
# Get episodes
|
# Get episodes
|
||||||
|
if db.db_type == "postgresql":
|
||||||
|
cursor.execute("""
|
||||||
|
SELECT season, episode, aired, dateadded, source, has_video_file, last_updated
|
||||||
|
FROM episodes
|
||||||
|
WHERE imdb_id = %s
|
||||||
|
ORDER BY season, episode
|
||||||
|
""", (imdb_id,))
|
||||||
|
else:
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
SELECT season, episode, aired, dateadded, source, has_video_file, last_updated
|
SELECT season, episode, aired, dateadded, source, has_video_file, last_updated
|
||||||
FROM episodes
|
FROM episodes
|
||||||
@@ -324,7 +385,12 @@ async def get_series_episodes(dependencies: dict, imdb_id: str):
|
|||||||
ORDER BY season, episode
|
ORDER BY season, episode
|
||||||
""", (imdb_id,))
|
""", (imdb_id,))
|
||||||
|
|
||||||
episodes = [dict(row) for row in cursor.fetchall()]
|
episodes = []
|
||||||
|
for row in cursor.fetchall():
|
||||||
|
episode = dict(row)
|
||||||
|
# Map source to user-friendly description
|
||||||
|
episode['source_description'] = map_source_to_description(episode.get('source'))
|
||||||
|
episodes.append(episode)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"series": series_info,
|
"series": series_info,
|
||||||
|
|||||||
Reference in New Issue
Block a user