From 47d19b5b4e00463af3ce89704b5e06a1f3e1461b Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Mon, 17 Jan 2022 13:06:12 +0200 Subject: [PATCH] vvv --- files/assets/images/badges/Background.webp | Bin 23242 -> 0 bytes files/assets/images/badges/background.webp | Bin 23242 -> 0 bytes files/assets/images/emojis/marseyrope.webp | Bin 13624 -> 7608 bytes files/routes/admin.py | 5 +---- files/routes/awards.py | 6 ++++-- files/routes/comments.py | 3 ++- files/routes/errors.py | 15 ++++++++------- files/routes/front.py | 10 +++------- files/routes/login.py | 20 ++++++++++++-------- files/routes/posts.py | 11 ++++++----- files/routes/search.py | 2 +- files/routes/users.py | 12 +++++++----- 12 files changed, 44 insertions(+), 40 deletions(-) delete mode 100644 files/assets/images/badges/Background.webp delete mode 100644 files/assets/images/badges/background.webp diff --git a/files/assets/images/badges/Background.webp b/files/assets/images/badges/Background.webp deleted file mode 100644 index 3311c84d46947dbb85059f057849e29072f68ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23242 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 diff --git a/files/assets/images/badges/background.webp b/files/assets/images/badges/background.webp deleted file mode 100644 index 3311c84d46947dbb85059f057849e29072f68ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23242 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 diff --git a/files/assets/images/emojis/marseyrope.webp b/files/assets/images/emojis/marseyrope.webp index 63c9187aa755c3df2c235f9c6ce1e3cb1ce03048..5674b4a9155a7afe46bed56a742dac12b3c0d94a 100644 GIT binary patch literal 7608 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 literal 13624 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 KWYS;&00014W|Jxa diff --git a/files/routes/admin.py b/files/routes/admin.py index e0b2ef440..65f8167cc 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -500,14 +500,11 @@ def users_list(v): @admin_level_required(2) def alt_votes_get(v): - if not request.values.get("u1") or not request.values.get("u2"): - return render_template("admin/alt_votes.html", v=v) - u1 = request.values.get("u1") u2 = request.values.get("u2") if not u1 or not u2: - return redirect("/admin/alt_votes") + return render_template("admin/alt_votes.html", v=v) u1 = get_user(u1) u2 = get_user(u2) diff --git a/files/routes/awards.py b/files/routes/awards.py index 5abef536b..f99c9a341 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -356,7 +356,8 @@ def award_post(pid, v): g.db.add(post.author) g.db.commit() - if request.referrer and len(request.referrer) > 1: return redirect(request.referrer) + if request.referrer and len(request.referrer) > 1 and (request.referrer.startswith('/') or request.referrer.startswith(request.host_url)): + return redirect(request.referrer) else: return redirect("/") @@ -540,7 +541,8 @@ def award_comment(cid, v): g.db.add(c.author) g.db.commit() - if request.referrer and len(request.referrer) > 1: return redirect(request.referrer) + if request.referrer and len(request.referrer) > 1 and (request.referrer.startswith('/') or request.referrer.startswith(request.host_url)): + return redirect(request.referrer) else: return redirect("/") @app.get("/admin/awards") diff --git a/files/routes/comments.py b/files/routes/comments.py index 166c4ef3d..e4bbbf80b 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -467,7 +467,8 @@ def api_comment(v): if parent.author.id != v.id: if len(c.body) > 500: notifbody = c.body[:500] + '...' - else: notifbody = c.body + elif c.body: notifbody = c.body + else: notifbody = '' beams_client.publish_to_interests( interests=[f'{request.host}{parent.author.id}'], diff --git a/files/routes/errors.py b/files/routes/errors.py index 31a33760f..9c36a9a40 100644 --- a/files/routes/errors.py +++ b/files/routes/errors.py @@ -13,13 +13,12 @@ def error_400(e): @app.errorhandler(401) def error_401(e): - path = request.path - qs = urlencode(dict(request.values)) - argval = quote(f"{path}?{qs}", safe='') - output = f"/login?redirect={argval}" - if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "401 Not Authorized"}, 401 - else: return redirect(output) + else: + path = request.path + qs = urlencode(dict(request.values)) + argval = quote(f"{path}?{qs}", safe='') + return redirect(f"/login?redirect={argval}") @app.errorhandler(403) @@ -61,4 +60,6 @@ def error_500(e): @app.post("/allow_nsfw") def allow_nsfw(): session["over_18"] = int(time.time()) + 3600 - return redirect(request.values.get("redir", "/")) \ No newline at end of file + redir = request.values.get("redir") + if redir and redir.startswith(request.host_url) or redir.startswith('/'): return redirect(redir) + return redirect('/') \ No newline at end of file diff --git a/files/routes/front.py b/files/routes/front.py index de7a471be..a8f3cc035 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -6,11 +6,6 @@ from files.classes.submission import Submission defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip() SITE_NAME = environ.get("SITE_NAME", "").strip() -@app.get("/post/") -@auth_required -def slash_post(v): - return redirect("/") - @app.post("/clear") @auth_required def clear(v): @@ -123,7 +118,8 @@ def notifications(v): @auth_desired def front_all(v): - if not v and request.path == "/" and not request.headers.get("Authorization"): return redirect(f"/logged_out{request.full_path}") + if not v and request.path == "/" and not request.headers.get("Authorization"): + return redirect(f"/logged_out{request.full_path}") if v and request.path.startswith('/logged_out'): v = None @@ -436,7 +432,7 @@ def comment_idlist(page=1, v=None, nsfw=False, sort="new", t="all"): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(Comment.realupvotes.desc()) + comments = comments.order_by(Comment.downvotes - Comment.upvotes) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) diff --git a/files/routes/login.py b/files/routes/login.py index 0a44b9c61..bdeb5b44e 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -12,13 +12,14 @@ valid_password_regex = re.compile("^.{8,100}$") @auth_desired def login_get(v): - redir = request.values.get("redirect", "/").replace("/logged_out", "").strip() - if v: - return redirect(redir) + redir = request.values.get("redirect") + if redir: + redir = replace("/logged_out", "").strip() + if not redir.startswith(request.host_url) and not redir.startswith('/'): redir = None - return render_template("login.html", - failed=False, - redirect=redir) + if v and redir: return redirect(redir) + + return render_template("login.html", failed=False, redirect=redir) def check_for_alts(current_id): @@ -137,10 +138,13 @@ def login_post(): if account.id != PW_ID: check_for_alts(account.id) - redir = request.values.get("redirect", "/").replace("/logged_out", "").strip() - g.db.commit() + redir = request.values.get("redirect") + if redir: + redir = replace("/logged_out", "").strip() + if not redir.startswith(request.host_url) and not redir.startswith('/'): redir = '/' + return redirect(redir) diff --git a/files/routes/posts.py b/files/routes/posts.py index 3618feda7..8f4277781 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -96,7 +96,8 @@ def submit_get(v): @app.get("/logged_out/post//") @auth_desired def post_id(pid, anything=None, v=None): - if not v and not request.path.startswith('/logged_out') and not request.headers.get("Authorization"): return redirect(f"/logged_out{request.full_path}") + if not v and not request.path.startswith('/logged_out') and not request.headers.get("Authorization"): + return redirect(f"/logged_out{request.full_path}") if v and request.path.startswith('/logged_out'): v = None @@ -169,7 +170,7 @@ def post_id(pid, anything=None, v=None): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(-Comment.upvotes - Comment.downvotes) + comments = comments.order_by(Comment.realupvotes.desc()) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) @@ -186,7 +187,7 @@ def post_id(pid, anything=None, v=None): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(-Comment.upvotes - Comment.downvotes) + comments = comments.order_by(Comment.realupvotes.desc()) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) @@ -288,7 +289,7 @@ def viewmore(v, pid, sort, offset): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(-Comment.upvotes - Comment.downvotes) + comments = comments.order_by(Comment.realupvotes.desc()) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) @@ -305,7 +306,7 @@ def viewmore(v, pid, sort, offset): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(-Comment.upvotes - Comment.downvotes) + comments = comments.order_by(Comment.realupvotes.desc()) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) diff --git a/files/routes/search.py b/files/routes/search.py index cc80f82f0..f23843f74 100644 --- a/files/routes/search.py +++ b/files/routes/search.py @@ -255,7 +255,7 @@ def searchcomments(v): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(Comment.realupvotes.desc()) + comments = comments.order_by(Comment.downvotes - Comment.upvotes) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes) diff --git a/files/routes/users.py b/files/routes/users.py index cb423d2fa..b5f389586 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -435,8 +435,9 @@ def message2(v, username): g.db.add(notif) if len(message) > 500: notifbody = message[:500] + '...' - else: notifbody = message - + elif message: notifbody = message + else: notifbody = '' + beams_client.publish_to_interests( interests=[f'{request.host}{user.id}'], publish_body={ @@ -502,7 +503,8 @@ def messagereply(v): g.db.add(notif) if len(message) > 500: notifbody = message[:500] + '...' - else: notifbody = message + elif message: notifbody = message + else: notifbody = '' beams_client.publish_to_interests( interests=[f'{request.host}{user_id}'], @@ -628,7 +630,7 @@ def u_username(username, v=None): if username != u.username: - return redirect(request.path.replace(username, u.username)) + return redirect(request.full_path.replace(username, u.username)) if u.reserved: if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": f"That username is reserved for: {u.reserved}"} @@ -796,7 +798,7 @@ def u_username_comments(username, v=None): elif sort == "controversial": comments = comments.order_by(-1 * Comment.upvotes * Comment.downvotes * Comment.downvotes) elif sort == "top": - comments = comments.order_by(Comment.realupvotes.desc()) + comments = comments.order_by(Comment.downvotes - Comment.upvotes) elif sort == "bottom": comments = comments.order_by(Comment.upvotes - Comment.downvotes)