From: Chris Fulljames Date: Mon, 6 Jan 2025 12:30:21 +0000 (-0500) Subject: Add song delete button X-Git-Url: https://littlesong.place/gitweb/?a=commitdiff_plain;h=3f891a8adadd5ef03e2c615b3a7dc8b84efa0d6f;p=littlesongplace.git Add song delete button --- diff --git a/main.py b/main.py index 55002e8..d976c71 100644 --- a/main.py +++ b/main.py @@ -204,6 +204,37 @@ def upload_song(): return redirect(request.referrer) +@app.get("/delete-song//") +def delete_song(userid, songid): + try: + # Make sure values are valid integers + int(userid) + int(songid) + except ValueError: + abort(404) + + # Users can only delete their own songs + if int(userid) != session["userid"]: + abort(401) + + if not query_db("select * from songs where songid = ?", [songid]): + abort(404) # Song doesn't exist + + # Delete tags, collaborators + query_db("delete from song_tags where songid = ?", [songid]) + query_db("delete from song_collaborators where songid = ?", [songid]) + + # Delete song database entry + query_db("delete from songs where songid = ?", [songid]) + get_db().commit() + + # Delete song file from disk + songpath = DATA_DIR / "songs" / userid / (songid + ".mp3") + if songpath.exists(): + os.remove(songpath) + + return redirect(request.referrer) + @app.get("/song//") def song(userid, songid): try: diff --git a/templates/profile.html b/templates/profile.html index 558c47e..dfa66ae 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -51,14 +51,31 @@ document.getElementById("file-select").addEventListener("change", function(e) { {% for song in songs %}
-
{{ song["title"] }}
+ +

{{ song["title"] }}

+ + + {% if name == username %} + +
+ Delete +
+ {% endif %} + + + +
{{ song["description"] }}
+ +
{% for tag in songs_tags[song["songid"]] %} {{ tag["tag"] }} {% endfor %}
+ +
{% for collab in songs_collaborators[song["songid"]] %} {% if collab["name"].startswith("@") %} diff --git a/todo.txt b/todo.txt index 3dcc677..95997ce 100644 --- a/todo.txt +++ b/todo.txt @@ -2,6 +2,7 @@ - edit song info - user bio - edit user bio +- delete user account - javascript song player @@ -10,6 +11,8 @@ - css/design +- playlists + URL secrethideout.net sneaky.place