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

This commit is contained in:
2025-08-26 16:54:54 +02:00
parent 9b8c40b7f6
commit ac32152725
3 changed files with 25 additions and 8 deletions

11
main.py
View File

@@ -52,7 +52,7 @@ def logout():
def index(): def index():
page = flask.request.args.get('page', 1, type=int) page = flask.request.args.get('page', 1, type=int)
per_page = 20 per_page = 20
search_query = None search_query = ""
if flask.request.method == "POST": if flask.request.method == "POST":
search_query = flask.request.form.get("search") search_query = flask.request.form.get("search")
else: else:
@@ -93,8 +93,10 @@ def csv_output():
if moviedb_func.scrape_and_add_movie(movie_name=select_add_movie, if 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):
flash("Film erfolgreich hinzugefügt!")
return redirect(url_for('index')) return redirect(url_for('index'))
else: else:
flash("Film konnte nicht automatisch hinzugefügt 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))
@app.get("/add_movie_manually") @app.get("/add_movie_manually")
@@ -118,9 +120,12 @@ def save_manual():
release_year = flask.request.form["release_year"] release_year = flask.request.form["release_year"]
genre_name = flask.request.form["genre_name"] genre_name = flask.request.form["genre_name"]
moviedb_func.add_manual_movie(movie_name=movie_name, medium_id=int(medium_id), director_name=director_name, release_year=int(release_year), genre_name=genre_name, user_id=current_user.id) if moviedb_func.add_manual_movie(movie_name=movie_name, medium_id=int(medium_id), director_name=director_name, release_year=int(release_year), genre_name=genre_name, user_id=current_user.id):
flash("Film manuell erfolgreich hinzugefügt!")
return redirect("/") return redirect("/")
else:
flash("Fehler: Film konnte nicht manuell hinzugefügt werden. Möglicherweise existiert dieser Film bereits in deiner Liste.")
return redirect(url_for('add_movie_manually', movie_name=movie_name, medium_id=medium_id))
@app.route("/delete_movie/<int:movie_id>", methods=["POST"]) @app.route("/delete_movie/<int:movie_id>", methods=["POST"])
@login_required @login_required

View File

@@ -98,7 +98,8 @@ def create_movie_database(db_name="movie_db.db"):
medium_id integer not null, medium_id integer not null,
release_year integer, release_year integer,
user_id integer not null, user_id integer not null,
FOREIGN KEY (user_id) REFERENCES user (id) FOREIGN KEY (user_id) REFERENCES user (id),
UNIQUE(titel, user_id)
) )
""" """
@@ -271,7 +272,7 @@ 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 as e: except (ProgrammingError, sqlite3.IntegrityError) as e:
print(f"Error adding movie: {e}") print(f"Error adding movie: {e}")
return False return False
return True return True
@@ -289,7 +290,7 @@ def add_manual_movie(movie_name: str, medium_id: int, director_name: str, releas
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 as e: except (ProgrammingError, sqlite3.IntegrityError) as e:
print(f"Error adding movie: {e}") print(f"Error adding movie: {e}")
return False return False
return True return True

View File

@@ -29,6 +29,17 @@
</div> </div>
</nav> </nav>
<div class="container mt-4"> <div class="container mt-4">
{% with messages = get_flashed_messages() %}
{% if messages %}
<div class="alert alert-info" role="alert">
<ul class="flashes">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endwith %}
{% block body %}{% endblock %} {% block body %}{% endblock %}
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>