diff --git a/main.py b/main.py index 5e51d7c..4e0315d 100644 --- a/main.py +++ b/main.py @@ -91,13 +91,21 @@ def csv_output(): select_medium_id = moviedb_func.search_id( search_name=select_medium, select_from="medium", select_where="medium") - if moviedb_func.scrape_and_add_movie(movie_name=select_add_movie, - medium_id=select_medium_id, user_id=current_user.id): + add_status = moviedb_func.scrape_and_add_movie(movie_name=select_add_movie, + medium_id=select_medium_id, user_id=current_user.id) + + if add_status == "success": flash("Film erfolgreich hinzugefügt!") return redirect(url_for('index')) - else: - flash("Film konnte nicht automatisch hinzugefügt werden. Bitte versuchen Sie die manuelle Eingabe.") + elif add_status == "duplicate": + flash("Fehler: Dieser Film existiert bereits in deiner Liste.") + return redirect(url_for('add_movie')) + elif add_status == "not_found_imdb": + flash("Film konnte nicht bei IMDb gefunden werden. Bitte versuchen Sie die manuelle Eingabe.") return redirect(url_for('add_movie_manually', movie_name=select_add_movie, medium_id=select_medium_id)) + else: # "error" or any other unexpected status + flash("Ein unerwarteter Fehler ist aufgetreten. Film konnte nicht hinzugefügt werden.") + return redirect(url_for('add_movie')) @app.get("/add_movie_manually") @login_required diff --git a/moviedb_func.py b/moviedb_func.py index 707813e..0819085 100644 --- a/moviedb_func.py +++ b/moviedb_func.py @@ -248,11 +248,11 @@ def search_id(search_name: str, select_from: str = "genre", select_where: str = def scrape_and_add_movie(movie_name: str, medium_id: int, user_id: int, db_name: str = "movie_db.db"): url = imdb_suche.suche_film_url(movie_name) if not url: - return False + return "not_found_imdb" details = get_movie_details(url + "/") if not details: - return False + return "not_found_imdb" regie_id = None if details.get("director"): @@ -272,10 +272,16 @@ def scrape_and_add_movie(movie_name: str, medium_id: int, user_id: int, db_name: with DBcm.UseDatabase(db_name) as db: db.execute(SQL_PARAM, (movie_name.lower(), genre_id, regie_id, medium_id, release_year, user_id,)) - except (ProgrammingError, sqlite3.IntegrityError) as e: + except sqlite3.IntegrityError as e: + print(f"Error adding movie (duplicate): {e}") + return "duplicate" + except ProgrammingError as e: print(f"Error adding movie: {e}") - return False - return True + return "error" + except Exception as e: + print(f"An unexpected error occurred: {e}") + return "error" + return "success" def add_manual_movie(movie_name: str, medium_id: int, director_name: str, release_year: int, genre_name: str, user_id: int, db_name: str = "movie_db.db"):