From cc290d5720da551bf05f31880425adc4c4140e33 Mon Sep 17 00:00:00 2001 From: Brandon4466 Date: Thu, 29 May 2025 13:01:33 -0700 Subject: [PATCH] revamped media scanner using custom built rust program, saving and getting progress capabilties, and more --- .vscode/settings.json | 7 + client.py | 37 +++ main.py | 630 ++++++++++++++++++++++++++++++++++++++++++ movies.db | Bin 0 -> 376832 bytes wt.py | 0 5 files changed, 674 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 client.py create mode 100644 main.py create mode 100644 movies.db create mode 100644 wt.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..5e56ca7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.languageServer": "Pylance", + "python.analysis.diagnosticSeverityOverrides": { + "reportMissingModuleSource": "none", + "reportShadowedImports": "none" + } +} \ No newline at end of file diff --git a/client.py b/client.py new file mode 100644 index 0000000..6e92f7e --- /dev/null +++ b/client.py @@ -0,0 +1,37 @@ +import requests +import webbrowser + +API_BASE_URL = "http://localhost:8000" + +def list_movies(): + url = f"{API_BASE_URL}/movies" + try: + response = requests.get(url) + response.raise_for_status() + except Exception as e: + print(f"Error fetching movies: {e}") + return [] + return response.json() + +def main(): + movies = list_movies() + if not movies: + print("No movies found.") + return + + print("Available Movies:") + for movie in movies: + print(f"{movie['id']}: {movie.get('title', 'Unknown Title')}") + + try: + movie_id = int(input("Enter movie ID to stream: ")) + except ValueError: + print("Invalid input. Please enter a numeric movie ID.") + return + + stream_url = f"{API_BASE_URL}/stream/{movie_id}" + print(f"Opening stream for movie ID {movie_id}...") + webbrowser.open(stream_url) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..d49d069 --- /dev/null +++ b/main.py @@ -0,0 +1,630 @@ +import os +import re +import sqlite3 +import requests +import time +import jwt +import json +from fastapi import FastAPI, HTTPException, Request, Depends, Header, WebSocket, WebSocketDisconnect, Query +from fastapi.responses import StreamingResponse, FileResponse +from passlib.context import CryptContext +import media_scanner # Import the Rust module +from rapidfuzz import fuzz + +# Configuration +MOVIES_DIR = r"Z:\plexmediaserver\movies" # Directory containing movie files +TV_SHOWS_DIR = r"Z:\plexmediaserver\tv" # Directory containing TV shows and episodes +DB_PATH = "movies.db" # SQLite database file +OMDB_API_KEY = "8275d9b8" # Get from http://www.omdbapi.com/ + +# Authentication settings +SECRET_KEY = "yoursecretkey" # Use a secure secret in production! +ALGORITHM = "HS256" +ACCESS_TOKEN_EXPIRE_SECONDS = 600 + +# Set up a password context for hashing +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +# Initialize FastAPI +app = FastAPI(title='Movie Library API') + +# Global dictionary to store sync sessions keyed by session_id +sync_sessions = {} + +@app.websocket("/ws/sync/{session_id}") +async def websocket_sync(session_id: str, websocket: WebSocket, media_id: str = Query(...), media_type: str = Query(...)): + await websocket.accept() + if session_id not in sync_sessions: + sync_sessions[session_id] = [] + sync_sessions[session_id].append((websocket, media_id, media_type)) + try: + while True: + data = await websocket.receive_text() + message_payload = {"media_id": media_id, "media_type": media_type, "data": data} + broadcast = json.dumps(message_payload) + for connection, _, _ in sync_sessions[session_id]: + if connection != websocket: + await connection.send_text(broadcast) + except WebSocketDisconnect: + sync_sessions[session_id] = [ + (conn, m_id, m_type) for conn, m_id, m_type in sync_sessions[session_id] if conn != websocket + ] + if not sync_sessions[session_id]: + del sync_sessions[session_id] + +def create_access_token(data: dict, expires_delta: int = ACCESS_TOKEN_EXPIRE_SECONDS): + to_encode = data.copy() + expire = int(time.time()) + expires_delta + to_encode.update({"exp": expire}) + token = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) + return token + +def verify_token(token: str): + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) + return payload # In a more complete system, you may return a user object. + except jwt.PyJWTError: + raise HTTPException(status_code=401, detail="Invalid or expired token") + +# Dependency to extract and verify token from the header +def get_current_user(authorization: str = Header(...)): + if not authorization.startswith("Bearer "): + raise HTTPException(status_code=401, detail="Invalid authentication header") + token = authorization[len("Bearer "):] + return verify_token(token) + +# Database helper functions +def init_db(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS movies ( + id INTEGER PRIMARY KEY, + filepath TEXT UNIQUE, + title TEXT, + year TEXT, + rated TEXT, + released TEXT, + runtime TEXT, + genre TEXT, + director TEXT, + writer TEXT, + actors TEXT, + plot TEXT, + language TEXT, + country TEXT, + awards TEXT, + poster TEXT, + imdb_rating TEXT, + created_at TEXT DEFAULT CURRENT_TIMESTAMP + ) + ''') + c.execute(''' + CREATE TABLE IF NOT EXISTS episodes ( + id INTEGER PRIMARY KEY, + filepath TEXT UNIQUE, + tv_show_id INTEGER, + season INTEGER, + episode INTEGER, + title TEXT, + created_at TEXT DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(tv_show_id) REFERENCES tv_shows(id) + ) + ''') + c.execute(''' + CREATE TABLE IF NOT EXISTS tv_shows ( + id INTEGER PRIMARY KEY, + name TEXT UNIQUE, + rating TEXT, + summary TEXT, + genres TEXT, + poster TEXT, + created_at TEXT DEFAULT CURRENT_TIMESTAMP + ) + ''') + c.execute(''' + CREATE TABLE IF NOT EXISTS accounts ( + id INTEGER PRIMARY KEY, + username TEXT UNIQUE, + hashed_password TEXT + ) + ''') + # New table for tracking watch progress + c.execute(''' + CREATE TABLE IF NOT EXISTS watch_progress ( + id INTEGER PRIMARY KEY, + username TEXT, + media_type TEXT, -- 'movie' or 'episode' + media_id INTEGER, + last_position INTEGER, + tv_show_id INTEGER, -- added tv_show_id column + updated_at TEXT DEFAULT CURRENT_TIMESTAMP, + UNIQUE(username, media_type, media_id) + ) + ''') + conn.commit() + conn.close() + +def movie_exists(rel_path): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT 1 FROM movies WHERE filepath = ?', (rel_path,)) + exists = c.fetchone() is not None + conn.close() + return exists + +def add_movie_to_db(movie): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute(''' + INSERT OR IGNORE INTO movies ( + filepath, title, year, rated, released, runtime, genre, + director, writer, actors, plot, language, country, + awards, poster, imdb_rating, created_at + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ''', ( + movie['filepath'], movie.get('Title'), movie.get('Year'), movie.get('Rated'), + movie.get('Released'), movie.get('Runtime'), movie.get('Genre'), + movie.get('Director'), movie.get('Writer'), movie.get('Actors'), + movie.get('Plot'), movie.get('Language'), movie.get('Country'), + movie.get('Awards'), movie.get('Poster'), movie.get('imdbRating') + )) + conn.commit() + conn.close() + +def fetch_movie_details(title, year=None): + params = {'t': title, 'apikey': OMDB_API_KEY} + if year: + params['y'] = year + response = requests.get('http://www.omdbapi.com/', params=params) + data = response.json() + if data.get('Response') == 'True': + return data + else: + raise ValueError(f"Movie '{title}' not found.") + +def tv_show_exists(show_name): + normalized_name = show_name.strip().lower() + alt_name = ("the " + normalized_name).strip() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT 1 FROM tv_shows WHERE lower(name) = ? OR lower(name) = ?', (normalized_name, alt_name)) + exists = c.fetchone() is not None + conn.close() + return exists + +def fetch_tv_show_details(show_name): + response = requests.get("http://api.tvmaze.com/singlesearch/shows", params={'q': show_name}) + if response.status_code != 200: + raise ValueError(f"TV show '{show_name}' not found via TV API.") + return response.json() + +def add_tv_show_to_db(details): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + genres = ", ".join(details.get('genres', [])) + rating = details.get('rating', {}).get('average', 'N/A') + summary = details.get('summary', '') + image = details.get('image', {}).get('medium', '') if details.get('image') else '' + c.execute(''' + INSERT OR IGNORE INTO tv_shows ( + name, rating, summary, genres, poster, created_at + ) VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ''', (details.get('name'), rating, summary, genres, image)) + conn.commit() + conn.close() + +def scan_and_populate(): + init_db() + processed_shows = set() # Keep track of processed TV shows + try: + # Use Rust for scanning movies + print("Scanning movies...") + movie_files = media_scanner.scan_movies(MOVIES_DIR) + print(f"Found movie files: {movie_files}") + for full_path in movie_files: + parent = os.path.basename(os.path.dirname(full_path)) + match = re.match(r"(.+?)\s*\((\d{4})\)$", parent) + if match: + title = match.group(1).strip() + year = match.group(2) + else: + title = os.path.splitext(os.path.basename(full_path))[0] + year = None + rel_path = os.path.relpath(full_path, MOVIES_DIR) + if movie_exists(rel_path): + print(f"Movie already exists: {title} ({year or 'n/a'})") + continue + try: + details = fetch_movie_details(title, year) + details['filepath'] = rel_path + add_movie_to_db(details) + print(f"Added {title} ({year or 'n/a'}) to database.") + except Exception as e: + print(f"Skipping {title}: {e}") + + # Updated logic for scanning TV shows with fuzzy matching + print("Scanning TV shows...") + tv_show_files = media_scanner.scan_tv_shows(TV_SHOWS_DIR) + print(f"Found TV show files: {tv_show_files}") + for full_path in tv_show_files: + # Extract TV show name from the folder structure: "Show Name\Season X\filename" + show_name = os.path.basename(os.path.dirname(os.path.dirname(full_path))) + # Extract season number from the season folder ("Season X") + season_dir = os.path.basename(os.path.dirname(full_path)) + season_match = re.search(r"Season\s*(\d+)", season_dir, re.IGNORECASE) + if not season_match: + print(f"Skipping {full_path}: Season number not found in directory '{season_dir}'") + continue + season = int(season_match.group(1)) + # Extract episode number solely from the SxxEyy pattern in the filename + basename = os.path.basename(full_path) + ep_match = re.search(r"(?i)S(\d{2})E(\d{2})", basename) + if not ep_match: + print(f"Skipping {full_path}: SxxEyy pattern not found in filename") + continue + episode = int(ep_match.group(2)) + # Check and add TV show details if not processed yet + if show_name not in processed_shows: + if not tv_show_exists(show_name): + try: + tv_details = fetch_tv_show_details(show_name) + add_tv_show_to_db(tv_details) + print(f"Added TV show details: {show_name}") + except Exception as e: + print(f"Skipping TV show details for {show_name}: {e}") + else: + print(f"TV show already exists: {show_name}") + processed_shows.add(show_name) + rel_path = os.path.relpath(full_path, TV_SHOWS_DIR) + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + # Try exact match first + c.execute('SELECT id, name FROM tv_shows WHERE lower(name) = ?', (show_name.lower(),)) + row = c.fetchone() + if row: + tv_show_id = row[0] + else: + # If not found, use fuzzy matching with a threshold (e.g. 80) + c.execute('SELECT id, name FROM tv_shows') + tv_show_row = None + for db_row in c.fetchall(): + db_id, db_name = db_row + similarity = fuzz.ratio(db_name.lower(), show_name.lower()) + if similarity > 80: + tv_show_row = (db_id, db_name) + break + if tv_show_row: + tv_show_id = tv_show_row[0] + print(f"Fuzzy matched '{show_name}' to '{tv_show_row[1]}' with score {similarity}") + else: + print(f"TV show id not found for {show_name}") + conn.close() + continue + # Use the complete filename (without extension) as the episode title + title = os.path.splitext(basename)[0] + c.execute(''' + INSERT OR IGNORE INTO episodes (filepath, tv_show_id, season, episode, title, created_at) + VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ''', (rel_path, tv_show_id, season, episode, title)) + conn.commit() + conn.close() + print(f"Added episode: {show_name} Season {season} Episode {episode}") + except Exception as e: + print(f"Error during scanning: {e}") + +def range_streamer(file_path: str, range_header: str = None, chunk_size: int = 1024*1024): + file_size = os.path.getsize(file_path) + if range_header is None: + def iterfile(): + with open(file_path, 'rb') as f: + while (chunk := f.read(chunk_size)): + yield chunk + return StreamingResponse(iterfile(), media_type="video/mp4") + m = re.search(r'bytes=(\d+)-(\d*)', range_header) + if m: + start = int(m.group(1)) + end = m.group(2) + if end: + end = int(end) + else: + end = file_size - 1 + else: + start = 0 + end = file_size - 1 + content_length = (end - start) + 1 + headers = { + "Content-Range": f"bytes {start}-{end}/{file_size}", + "Accept-Ranges": "bytes", + "Content-Length": str(content_length) + } + def iter_range(): + with open(file_path, 'rb') as f: + f.seek(start) + remaining = content_length + while remaining > 0: + chunk = f.read(min(chunk_size, remaining)) + if not chunk: + break + remaining -= len(chunk) + yield chunk + return StreamingResponse(iter_range(), status_code=206, headers=headers, media_type="video/mp4") + +@app.get('/movies') +def list_movies(current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT * FROM movies') + cols = [desc[0] for desc in c.description] + movies = [dict(zip(cols, row)) for row in c.fetchall()] + conn.close() + return movies + +@app.get('/movies/{movie_id}') +def get_movie(movie_id: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT * FROM movies WHERE id = ?', (movie_id,)) + row = c.fetchone() + conn.close() + if row: + cols = [desc[0] for desc in c.description] + return dict(zip(cols, row)) + raise HTTPException(status_code=404, detail='Movie not found') + +@app.get('/stream/{movie_id}') +# def stream_movie(movie_id: int, request: Request, current_user: dict = Depends(get_current_user)): +def stream_movie(movie_id: int, request: Request): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT filepath FROM movies WHERE id = ?', (movie_id,)) + row = c.fetchone() + conn.close() + if not row: + raise HTTPException(status_code=404, detail='Movie not found') + file_path = os.path.join(MOVIES_DIR, row[0]) + if not os.path.exists(file_path): + raise HTTPException(status_code=404, detail='File not found') + range_header = request.headers.get('range') + return range_streamer(file_path, range_header) + +@app.get('/episodes') +def list_episodes(current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT * FROM episodes') + cols = [desc[0] for desc in c.description] + episodes = [dict(zip(cols, row)) for row in c.fetchall()] + conn.close() + return episodes + +@app.get('/shows') +def list_shows(current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT * FROM tv_shows') + cols = [desc[0] for desc in c.description] + shows = [dict(zip(cols, row)) for row in c.fetchall()] + conn.close() + return shows + +@app.get('/shows/{show_id}') +def get_tv_show(show_id: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT * FROM tv_shows WHERE id = ?', (show_id,)) + row = c.fetchone() + cols = [desc[0] for desc in c.description] if row else [] + conn.close() + if row: + return dict(zip(cols, row)) + raise HTTPException(status_code=404, detail="TV show not found") + +@app.get('/shows/{show_id}/seasons') +def list_seasons(show_id: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT DISTINCT season FROM episodes WHERE tv_show_id = ?', (show_id,)) + seasons = sorted([row[0] for row in c.fetchall()]) + conn.close() + if not seasons: + raise HTTPException(status_code=404, detail='Seasons not found for this TV show') + return seasons + +@app.get('/shows/{show_id}/seasons/{season}/episodes') +def list_episodes_for_season(show_id: int, season: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute(''' + SELECT id, filepath, episode, title + FROM episodes + WHERE tv_show_id = ? AND season = ? + ORDER BY episode + ''', (show_id, season)) + episodes = [dict(zip(['id', 'filepath', 'episode', 'title'], row)) for row in c.fetchall()] + conn.close() + if not episodes: + raise HTTPException(status_code=404, detail='No episodes found for this season') + return episodes + +@app.get('/stream_episode/{episode_id}') +# def stream_episode(episode_id: int, request: Request, current_user: dict = Depends(get_current_user)): +def stream_episode(episode_id: int, request: Request): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT filepath FROM episodes WHERE id = ?', (episode_id,)) + row = c.fetchone() + conn.close() + if not row: + raise HTTPException(status_code=404, detail='Episode not found') + file_path = os.path.join(TV_SHOWS_DIR, row[0]) + if not os.path.exists(file_path): + raise HTTPException(status_code=404, detail='File not found') + range_header = request.headers.get('range') + return range_streamer(file_path, range_header) + +@app.post('/register') +def register_account(user: dict): + username = user.get("username") + password = user.get("password") + if not username or not password: + raise HTTPException(status_code=400, detail="Username and password required") + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute("SELECT id FROM accounts WHERE username = ?", (username,)) + if c.fetchone(): + conn.close() + raise HTTPException(status_code=400, detail="Username already exists") + hashed_password = pwd_context.hash(password) + c.execute("INSERT INTO accounts (username, hashed_password) VALUES (?, ?)", (username, hashed_password)) + conn.commit() + conn.close() + return {"message": "Account registered successfully"} + +@app.post('/login') +def login_account(user: dict): + username = user.get("username") + password = user.get("password") + if not username or not password: + raise HTTPException(status_code=400, detail="Username and password required") + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute("SELECT hashed_password FROM accounts WHERE username = ?", (username,)) + row = c.fetchone() + conn.close() + if not row or not pwd_context.verify(password, row[0]): + raise HTTPException(status_code=401, detail="Invalid credentials") + token = create_access_token({"sub": username}) + return {"access_token": token, "token_type": "bearer"} + +@app.post('/scan') +def scan_new_files(current_user: dict = Depends(get_current_user)): + try: + scan_and_populate() + return {"success": True} + except Exception as e: + return {"success": False, "error": str(e)} + +@app.get("/sessions/{session_id}") +async def get_session_details(session_id: str): + if session_id in sync_sessions: + # Return the media_id and media_type of the first connection in the session + _, media_id, media_type = sync_sessions[session_id][0] + return {"session_id": session_id, "media_id": media_id, "media_type": media_type} + else: + raise HTTPException(status_code=404, detail="Session not found") + +# New endpoint to save watch progress (record timestamp when user stops watching) +@app.post('/save_progress/{media_type}/{media_id}') +def save_progress(media_type: str, media_id: int, progress: dict, current_user: dict = Depends(get_current_user)): + last_position = progress.get("last_position") + if last_position is None: + raise HTTPException(status_code=400, detail="Missing last_position in payload") + + tv_show_id = None + if media_type.lower() == "episode": + # Lookup the associated tv_show_id for the episode. + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute("SELECT tv_show_id FROM episodes WHERE id = ?", (media_id,)) + row = c.fetchone() + if row: + tv_show_id = row[0] + print(f"Found tv_show_id {tv_show_id} for episode {media_id}") + else: + print(f"No tv show found for episode {media_id}") + conn.close() + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + if media_type.lower() == "episode" and tv_show_id is not None: + # For episodes, we assume a unique SQL index exists on (username, tv_show_id) + c.execute(''' + INSERT INTO watch_progress (username, media_type, media_id, last_position, tv_show_id, updated_at) + VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ON CONFLICT(username, tv_show_id) + DO UPDATE SET media_id = excluded.media_id, last_position = excluded.last_position, updated_at = CURRENT_TIMESTAMP + ''', (current_user.get("sub"), media_type, media_id, last_position, tv_show_id)) + else: + # For movies (or episodes without a tv_show_id), fall back to unique(username, media_type, media_id) + c.execute(''' + INSERT INTO watch_progress (username, media_type, media_id, last_position, tv_show_id, updated_at) + VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ON CONFLICT(username, media_type, media_id) + DO UPDATE SET last_position = excluded.last_position, tv_show_id = excluded.tv_show_id, updated_at = CURRENT_TIMESTAMP + ''', (current_user.get("sub"), media_type, media_id, last_position, tv_show_id)) + conn.commit() + conn.close() + + print(f"Progress saved for {media_type} ID {media_id} at position {last_position}") + response = {"message": "Progress saved", "media_type": media_type, "media_id": media_id, "last_position": last_position} + if tv_show_id: + response["tv_show_id"] = tv_show_id + return response + +# New endpoint to get saved watch progress so the user can resume the video +@app.get('/get_progress/{media_type}/{media_id}') +def get_progress(media_type: str, media_id: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute(''' + SELECT last_position FROM watch_progress + WHERE username = ? AND media_type = ? AND media_id = ? + ''', (current_user.get("sub"), media_type, media_id)) + row = c.fetchone() + conn.close() + if row: + return {"media_type": media_type, "media_id": media_id, "last_position": row[0]} + return {"media_type": media_type, "media_id": media_id, "last_position": 0} + +@app.get('/in_progress') +def list_in_progress(current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute(''' + SELECT media_type, media_id, last_position + FROM watch_progress + WHERE username = ? + ''', (current_user.get("sub"),)) + rows = c.fetchall() + conn.close() + + movies = [] + episodes = [] + for media_type, media_id, last_position in rows: + item = {"media_id": media_id, "last_position": last_position} + if media_type.lower() == "movie": + movies.append(item) + elif media_type.lower() == "episode": + episodes.append(item) + + print({"movies": movies, "episodes": episodes}) + + return {"movies": movies, "episodes": episodes} + +@app.get('/episodes/{episode_id}/show') +def get_show_for_episode(episode_id: int, current_user: dict = Depends(get_current_user)): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + # Retrieve the tv_show_id for the given episode + c.execute('SELECT tv_show_id FROM episodes WHERE id = ?', (episode_id,)) + result = c.fetchone() + if not result: + conn.close() + raise HTTPException(status_code=404, detail="Episode not found") + tv_show_id = result[0] + # Retrieve the TV show details using the tv_show_id + c.execute('SELECT * FROM tv_shows WHERE id = ?', (tv_show_id,)) + row = c.fetchone() + if not row: + conn.close() + raise HTTPException(status_code=404, detail="TV show not found") + cols = [desc[0] for desc in c.description] + show = dict(zip(cols, row)) + conn.close() + return show + +if __name__ == '__main__': + scan_and_populate() + import uvicorn + uvicorn.run(app, host='0.0.0.0', port=8000) \ No newline at end of file diff --git a/movies.db b/movies.db new file mode 100644 index 0000000000000000000000000000000000000000..6fe95e98b342b566a302051dd1324497463cd5c4 GIT binary patch literal 376832 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