if error:
app.logger.info("Failed signup attempt")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
password = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
timestamp = datetime.now(timezone.utc).isoformat()
flash("User created. Please sign in to continue.", "success")
app.logger.info(f"Created user {username}")
- return auto_redirect("/login")
+ return redirect("/login")
@app.get("/login")
def login_get():
session.permanent = True
app.logger.info(f"{username} logged in")
- return auto_redirect(f"/users/{username}")
+ return redirect(f"/users/{username}")
flash("Invalid username/password", "error")
app.logger.info(f"Failed login for {username}")
if "userid" in session:
session.pop("userid")
- return auto_redirect("/")
+ return redirect("/")
@app.get("/users/<profile_username>")
def users_profile(profile_username):
app.logger.info(f"{session['username']} updated bio")
- return auto_redirect(f"/users/{session['username']}")
+ return redirect(f"/users/{session['username']}")
@app.get("/pfp/<int:userid>")
def pfp(userid):
@app.get("/edit-song")
def edit_song():
if not "userid" in session:
- return auto_redirect("/login") # Must be logged in to edit
+ return redirect("/login") # Must be logged in to edit
song = None
@app.post("/upload-song")
def upload_song():
if not "userid" in session:
- return auto_redirect("/login") # Must be logged in to edit
+ return redirect("/login") # Must be logged in to edit
error = validate_song_form()
if not error:
username = session["username"]
app.logger.info(f"{username} uploaded/modified a song")
- return auto_redirect(f"/users/{username}")
+ return redirect(f"/users/{username}")
else:
username = session["username"]
app.logger.info(f"Failed song update - {username}")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
def validate_song_form():
title = request.form["title"]
app.logger.info(f"{session['username']} deleted song: {song_data['title']}")
flash_and_log(f"Deleted '{song_data['title']}'", "success")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
@app.get("/song/<int:userid>/<int:songid>")
def song(userid, songid):
@app.route("/comment", methods=["GET", "POST"])
def comment():
if not "userid" in session:
- return auto_redirect("/login")
+ return redirect("/login")
if not "songid" in request.args:
abort(400) # Must have songid
if "previous_page" in session:
previous_page = session["previous_page"]
session.pop("previous_page")
- return auto_redirect(previous_page)
+ return redirect(previous_page)
@app.get("/delete-comment/<int:commentid>")
def comment_delete(commentid):
if "userid" not in session:
- return auto_redirect("/login")
+ return redirect("/login")
comment = query_db("select c.userid as comment_user, s.userid as song_user from song_comments as c inner join songs as s on c.songid == s.songid where commentid = ?", [commentid], one=True)
if not comment:
query_db("delete from song_comments where (commentid = ?) or (replytoid = ?)", [commentid, commentid])
get_db().commit()
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
@app.get("/activity")
def activity():
if not "userid" in session:
- return auto_redirect("/login")
+ return redirect("/login")
# Get comment notifications
comments = query_db(
@app.post("/create-playlist")
def create_playlist():
if not "userid" in session:
- return auto_redirect("/login")
+ return redirect("/login")
name = request.form["name"]
if not name or len(name) > 200:
flash_and_log("Playlist must have a name", "error")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
timestamp = datetime.now(timezone.utc).isoformat()
)
get_db().commit()
flash_and_log(f"Created playlist {name}", "success")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
@app.get("/delete-playlist/<int:playlistid>")
def delete_playlist(playlistid):
get_db().commit()
flash_and_log(f"Deleted playlist {plist_data['name']}", "success")
- return auto_redirect(f"/users/{session['username']}")
+ return redirect(f"/users/{session['username']}")
@app.post("/append-to-playlist")
def append_to_playlist():
flash_and_log(f"Added '{song_data['title']}' to {plist_data['name']}", "success")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
@app.post("/edit-playlist/<int:playlistid>")
def edit_playlist_post(playlistid):
name = request.form["name"]
if not name or len(name) > 200:
flash_and_log("Playlist must have a name", "error")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
# Make sure all songs are valid
songids = []
get_db().commit()
flash_and_log("Playlist updated", "success")
- return auto_redirect(request.referrer)
+ return redirect(request.referrer)
@app.get("/playlists/<int:playlistid>")
def playlists(playlistid):
return plist_data
-def auto_redirect(url):
- if request.args.get("request-type", None) == "ajax":
- return redirect(url + "?request-type=ajax")
- else:
- return redirect(url)
-
@app.context_processor
def inject_global_vars():
- use_json = request.args.get("request-type", None) == "ajax"
+ use_json = request.headers["Accept"] == "application/json"
return dict(
gif_data=get_gif_data(),
current_user_playlists=get_current_user_playlists(),