try
All checks were successful
Deploy to ras-dan-01 / deploy (push) Successful in -22s

This commit is contained in:
2025-08-26 17:02:49 +02:00
parent ac32152725
commit 295ef1664f
2 changed files with 23 additions and 9 deletions

16
main.py
View File

@@ -91,13 +91,21 @@ def csv_output():
select_medium_id = moviedb_func.search_id( select_medium_id = moviedb_func.search_id(
search_name=select_medium, select_from="medium", select_where="medium") search_name=select_medium, select_from="medium", select_where="medium")
if moviedb_func.scrape_and_add_movie(movie_name=select_add_movie, add_status = moviedb_func.scrape_and_add_movie(movie_name=select_add_movie,
medium_id=select_medium_id, user_id=current_user.id): medium_id=select_medium_id, user_id=current_user.id)
if add_status == "success":
flash("Film erfolgreich hinzugefügt!") flash("Film erfolgreich hinzugefügt!")
return redirect(url_for('index')) return redirect(url_for('index'))
else: elif add_status == "duplicate":
flash("Film konnte nicht automatisch hinzugefügt werden. Bitte versuchen Sie die manuelle Eingabe.") 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)) 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") @app.get("/add_movie_manually")
@login_required @login_required

View File

@@ -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"): 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) url = imdb_suche.suche_film_url(movie_name)
if not url: if not url:
return False return "not_found_imdb"
details = get_movie_details(url + "/") details = get_movie_details(url + "/")
if not details: if not details:
return False return "not_found_imdb"
regie_id = None regie_id = None
if details.get("director"): 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: with DBcm.UseDatabase(db_name) as db:
db.execute(SQL_PARAM, (movie_name.lower(), genre_id, db.execute(SQL_PARAM, (movie_name.lower(), genre_id,
regie_id, medium_id, release_year, user_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}") print(f"Error adding movie: {e}")
return False return "error"
return True 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"): 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"):