From 3ab53cad82f8cdbb1dbe95e6a41e2df2d0c1d54c Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Fri, 14 Jan 2022 14:04:35 +0200 Subject: [PATCH] b --- files/helpers/jinja2.py | 4 +- files/mail/__init__.py | 13 +-- files/routes/admin.py | 71 +++++------------ files/routes/awards.py | 16 ++-- files/routes/discord.py | 4 +- files/routes/front.py | 16 +--- files/routes/login.py | 24 ++---- files/routes/posts.py | 47 +++-------- files/routes/search.py | 16 ++-- files/routes/settings.py | 165 ++++++++++----------------------------- 10 files changed, 97 insertions(+), 279 deletions(-) diff --git a/files/helpers/jinja2.py b/files/helpers/jinja2.py index 010accba6..a18cd9228 100644 --- a/files/helpers/jinja2.py +++ b/files/helpers/jinja2.py @@ -20,9 +20,7 @@ def post_embed(id, v): p = get_post(id, v, graceful=True) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submission_listing.html", listing=[p], v=v) + return render_template("submission_listing.html", listing=[p], v=v) @app.context_processor def inject_constants(): diff --git a/files/mail/__init__.py b/files/mail/__init__.py index 9dbadc3db..cbdbf5969 100644 --- a/files/mail/__init__.py +++ b/files/mail/__init__.py @@ -60,9 +60,7 @@ def activate(v): token = request.values.get("token", "").strip() if int(time.time()) - timestamp > 3600: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message.html", v=v, title="Verification link expired.", + return render_template("message.html", v=v, title="Verification link expired.", message="That link has expired. Visit your settings to send yourself another verification email."), 410 if not validate_hash(f"{email}+{id}+{timestamp}", token): @@ -73,10 +71,7 @@ def activate(v): abort(404) if user.is_activated and user.email == email: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message_success.html", v=v, - title="Email already verified.", message="Email already verified."), 404 + return render_template("message_success.html", v=v, title="Email already verified.", message="Email already verified."), 404 user.email = email user.is_activated = True @@ -90,6 +85,4 @@ def activate(v): g.db.add(user) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message_success.html", v=v, title="Email verified.", message=f"Your email {email} has been verified. Thank you.") + return render_template("message_success.html", v=v, title="Email verified.", message=f"Your email {email} has been verified. Thank you.") diff --git a/files/routes/admin.py b/files/routes/admin.py index 7b3085852..36ebb37b3 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -264,9 +264,7 @@ def post_sidebar(v): def shadowbanned(v): if not (v and v.admin_level > 1): abort(404) users = [x for x in g.db.query(User).filter(User.shadowbanned != None).order_by(User.shadowbanned).all()] - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}shadowbanned.html", v=v, users=users) + return render_template("shadowbanned.html", v=v, users=users) @app.get("/admin/image_posts") @@ -284,9 +282,7 @@ def image_posts_listing(v): next_exists = (len(posts) > 25) posts = get_posts(posts[:25], v=v) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/image_posts.html", v=v, listing=posts, next_exists=next_exists, page=page, sort="new") + return render_template("admin/image_posts.html", v=v, listing=posts, next_exists=next_exists, page=page, sort="new") @app.get("/admin/reported/posts") @@ -306,9 +302,7 @@ def reported_posts(v): listing = get_posts(listing, v=v) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/reported_posts.html", + return render_template("admin/reported_posts.html", next_exists=next_exists, listing=listing, page=page, v=v) @@ -330,9 +324,7 @@ def reported_comments(v): listing = get_comments(listing, v=v) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/reported_comments.html", + return render_template("admin/reported_comments.html", next_exists=next_exists, listing=listing, page=page, @@ -346,11 +338,7 @@ def admin_home(v): with open('disable_signups', 'r') as f: x = f.read() with open('under_attack', 'r') as f: x2 = f.read() - if not v or v.oldsite: return render_template("admin/admin_home.html", v=v, x=x, x2=x2) - - actions = g.db.query(ModAction).order_by(ModAction.id.desc()).limit(10).all() - - return render_template("CHRISTMAS/admin/admin_home.html", actions=actions, v=v, x=x, x2=x2) + return render_template("admin/admin_home.html", v=v, x=x, x2=x2) @app.post("/admin/disable_signups") @admin_level_required(3) @@ -420,28 +408,23 @@ def under_attack(v): @app.get("/admin/badge_grant") @admin_level_required(2) def badge_grant_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/badge_grant.html", v=v, badge_types=BADGES) + return render_template("admin/badge_grant.html", v=v, badge_types=BADGES) @app.post("/admin/badge_grant") @limiter.limit("1/second") @admin_level_required(2) def badge_grant_post(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - user = get_user(request.values.get("username").strip(), graceful=True) if not user: - return render_template(f"{template}admin/badge_grant.html", v=v, badge_types=BADGES, error="User not found.") + return render_template("admin/badge_grant.html", v=v, badge_types=BADGES, error="User not found.") try: badge_id = int(request.values.get("badge_id")) except: abort(400) if user.has_badge(badge_id): - return render_template(f"{template}admin/badge_grant.html", v=v, badge_types=BADGES, error="User already has that badge.") + return render_template("admin/badge_grant.html", v=v, badge_types=BADGES, error="User already has that badge.") new_badge = Badge(badge_id=badge_id, user_id=user.id) @@ -458,29 +441,23 @@ def badge_grant_post(v): send_notification(user.id, text) g.db.commit() - return render_template(f"{template}admin/badge_grant.html", v=v, badge_types=BADGES, msg="Badge granted!") + return render_template("admin/badge_grant.html", v=v, badge_types=BADGES, msg="Badge granted!") @app.get("/admin/badge_remove") @admin_level_required(2) def badge_remove_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - - return render_template(f"{template}admin/badge_remove.html", v=v, badge_types=BADGES) + return render_template("admin/badge_remove.html", v=v, badge_types=BADGES) @app.post("/admin/badge_remove") @limiter.limit("1/second") @admin_level_required(2) def badge_remove_post(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - user = get_user(request.values.get("username").strip(), graceful=True) if not user: - return render_template(f"{template}admin/badge_remove.html", v=v, badge_types=BADGES, error="User not found.") + return render_template("admin/badge_remove.html", v=v, badge_types=BADGES, error="User not found.") try: badge_id = int(request.values.get("badge_id")) except: abort(400) @@ -490,7 +467,7 @@ def badge_remove_post(v): g.db.delete(badge) g.db.commit() - return render_template(f"{template}admin/badge_remove.html", v=v, badge_types=BADGES, msg="Badge removed!") + return render_template("admin/badge_remove.html", v=v, badge_types=BADGES, msg="Badge removed!") @app.get("/admin/users") @@ -508,9 +485,7 @@ def users_list(v): next_exists = (len(users) > 25) users = users[:25] - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/new_users.html", + return render_template("admin/new_users.html", v=v, users=users, next_exists=next_exists, @@ -522,9 +497,7 @@ def users_list(v): def alt_votes_get(v): if not request.values.get("u1") or not request.values.get("u2"): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/alt_votes.html", v=v) + return render_template("admin/alt_votes.html", v=v) u1 = request.values.get("u1") u2 = request.values.get("u2") @@ -620,9 +593,7 @@ def alt_votes_get(v): data['u2_only_comment_downs'] // len( u2_comment_downs) if u2_comment_downs else 0 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/alt_votes.html", + return render_template("admin/alt_votes.html", u1=u1, u2=u2, v=v, @@ -666,9 +637,7 @@ def admin_removed(v): posts = get_posts(ids, v=v) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/removed_posts.html", + return render_template("admin/removed_posts.html", v=v, listing=posts, page=page, @@ -692,9 +661,7 @@ def admin_removed_comments(v): comments = get_comments(ids, v=v) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/removed_comments.html", + return render_template("admin/removed_comments.html", v=v, listing=comments, page=page, @@ -1242,9 +1209,7 @@ def admin_dump_cache(v): def admin_banned_domains(v): banned_domains = g.db.query(BannedDomain).all() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}admin/banned_domains.html", v=v, banned_domains=banned_domains) + return render_template("admin/banned_domains.html", v=v, banned_domains=banned_domains) @app.post("/admin/banned_domains") @limiter.limit("1/second") diff --git a/files/routes/awards.py b/files/routes/awards.py index e80a28894..50a93e0eb 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -77,9 +77,7 @@ def shop(v): val["price"] = int(val["price"]*discount) sales = g.db.query(Vote.id).count() + g.db.query(CommentVote.id).count() - g.db.query(func.sum(User.coins)).scalar() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}shop.html", awards=list(AWARDS.values()), v=v, sales=sales) + return render_template("shop.html", awards=list(AWARDS.values()), v=v, sales=sales) @app.post("/buy/") @@ -548,20 +546,16 @@ def award_comment(cid, v): @app.get("/admin/awards") @admin_level_required(2) def admin_userawards_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' if v.admin_level != 3: - return render_template(f"{template}admin/awards.html", awards=list(AWARDS3.values()), v=v) + return render_template("admin/awards.html", awards=list(AWARDS3.values()), v=v) - return render_template(f"{template}admin/awards.html", awards=list(AWARDS.values()), v=v) + return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v) @app.post("/admin/awards") @limiter.limit("1/second") @admin_level_required(2) def admin_userawards_post(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' try: u = request.values.get("username").strip() except: abort(404) @@ -616,5 +610,5 @@ def admin_userawards_post(v): g.db.commit() - if v.admin_level != 3: return render_template(f"{template}admin/awards.html", awards=list(AWARDS3.values()), v=v) - return render_template(f"{template}admin/awards.html", awards=list(AWARDS.values()), v=v) \ No newline at end of file + if v.admin_level != 3: return render_template("admin/awards.html", awards=list(AWARDS3.values()), v=v) + return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v) \ No newline at end of file diff --git a/files/routes/discord.py b/files/routes/discord.py index c16a66bd2..912735b6d 100644 --- a/files/routes/discord.py +++ b/files/routes/discord.py @@ -97,9 +97,7 @@ def discord_redirect(v): requests.delete(url, headers=headers, timeout=5) if g.db.query(User).filter(User.id!=v.id, User.discord_id==x["id"]).one_or_none(): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message.html", title="Discord account already linked.", error="That Discord account is already in use by another user.", v=v) + return render_template("message.html", title="Discord account already linked.", error="That Discord account is already in use by another user.", v=v) v.discord_id=x["id"] g.db.add(v) diff --git a/files/routes/front.py b/files/routes/front.py index 6d76f4f6d..de7a471be 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -106,9 +106,7 @@ def notifications(v): if request.headers.get("Authorization"): return {"data":[x.json for x in listing]} - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}notifications.html", + return render_template("notifications.html", v=v, notifications=listing, next_exists=next_exists, @@ -206,9 +204,7 @@ def front_all(v): g.db.commit() if request.headers.get("Authorization"): return {"data": [x.json for x in posts], "next_exists": next_exists} - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}home.html", v=v, listing=posts, next_exists=next_exists, sort=sort, t=t, page=page) + return render_template("home.html", v=v, listing=posts, next_exists=next_exists, sort=sort, t=t, page=page) @@ -328,9 +324,7 @@ def changelog(v): posts = get_posts(ids, v=v) if request.headers.get("Authorization"): return {"data": [x.json for x in posts], "next_exists": next_exists} - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}changelog.html", v=v, listing=posts, next_exists=next_exists, sort=sort, t=t, page=page) + return render_template("changelog.html", v=v, listing=posts, next_exists=next_exists, sort=sort, t=t, page=page) @cache.memoize(timeout=86400) @@ -472,6 +466,4 @@ def all_comments(v): idlist = idlist[:25] if request.headers.get("Authorization"): return {"data": [x.json for x in comments]} - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}home_comments.html", v=v, sort=sort, t=t, page=page, comments=comments, standalone=True, next_exists=next_exists) \ No newline at end of file + return render_template("home_comments.html", v=v, sort=sort, t=t, page=page, comments=comments, standalone=True, next_exists=next_exists) \ No newline at end of file diff --git a/files/routes/login.py b/files/routes/login.py index 373ca6c55..74be07d47 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -16,9 +16,7 @@ def login_get(v): if v: return redirect(redir) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}login.html", + return render_template("login.html", failed=False, redirect=redir) @@ -91,19 +89,19 @@ def login_post(): if not account: time.sleep(random.uniform(0, 2)) - return render_template(f"{template}login.html", failed=True) + return render_template("login.html", failed=True) if request.values.get("password"): if not account.verifyPass(request.values.get("password")): time.sleep(random.uniform(0, 2)) - return render_template(f"{template}login.html", failed=True) + return render_template("login.html", failed=True) if account.mfa_secret: now = int(time.time()) hash = generate_hash(f"{account.id}+{now}+2fachallenge") - return render_template(f"{template}login_2fa.html", + return render_template("login_2fa.html", v=account, time=now, hash=hash, @@ -123,7 +121,7 @@ def login_post(): if not account.validate_2fa(request.values.get("2fa_token", "").strip()): hash = generate_hash(f"{account.id}+{time}+2fachallenge") - return render_template(f"{template}login_2fa.html", + return render_template("login_2fa.html", v=account, time=now, hash=hash, @@ -428,9 +426,7 @@ def post_reset(v): now = int(time.time()) if now - timestamp > 600: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message.html", + return render_template("message.html", title="Password reset expired", error="That password reset form has expired.") @@ -442,9 +438,7 @@ def post_reset(v): abort(404) if not password == confirm_password: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}reset_password.html", + return render_template("reset_password.html", v=user, token=token, time=timestamp, @@ -455,9 +449,7 @@ def post_reset(v): g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}message_success.html", + return render_template("message_success.html", title="Password reset successful!", message="Login normally to access your account.") diff --git a/files/routes/posts.py b/files/routes/posts.py index aedccd684..d5b2d6517 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -87,9 +87,7 @@ def publish(pid, v): @app.get("/submit") @auth_required def submit_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", + return render_template("submit.html", v=v) @app.get("/post/") @@ -98,9 +96,6 @@ def submit_get(v): @app.get("/logged_out/post//") @auth_desired def post_id(pid, anything=None, v=None): - if not v or v.oldsite: template2 = '' - else: template2 = 'CHRISTMAS/' - 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 @@ -337,9 +332,7 @@ def viewmore(v, pid, sort, offset): if len(comments) == len(comments2): offset = None comments = comments2 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}comments.html", v=v, comments=comments, render_replies=True, pid=pid, sort=sort, offset=offset) + return render_template("comments.html", v=v, comments=comments, render_replies=True, pid=pid, sort=sort, offset=offset) @app.post("/morecomments/") @@ -388,9 +381,7 @@ def morecomments(v, cid): c = g.db.query(Comment).filter_by(id=cid).one_or_none() comments = c.replies - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}comments.html", v=v, comments=comments, render_replies=True) + return render_template("comments.html", v=v, comments=comments, render_replies=True) @app.post("/edit_post/") @limiter.limit("1/second") @@ -700,8 +691,6 @@ def submit_post(v): if request.content_length > 8 * 1024 * 1024: return {"error": "Max file size is 8 MB."}, 413 elif request.content_length > 4 * 1024 * 1024: return {"error": "Max file size is 4 MB."}, 413 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' title = request.values.get("title", "").strip()[:500].replace('‎','') @@ -766,9 +755,7 @@ def submit_post(v): domain_obj = get_domain(domain) if domain_obj: if request.headers.get("Authorization"): return {"error":domain_obj.reason}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error=domain_obj.reason, title=title, url=url, body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error=domain_obj.reason, title=title, url=url, body=request.values.get("body", "")), 400 elif "twitter.com" == domain: try: embed = requests.get("https://publish.twitter.com/oembed", timeout=5, params={"url":url, "omit_script":"t"}).json()["html"] except: embed = None @@ -790,15 +777,11 @@ def submit_post(v): if not url and not request.values.get("body") and not request.files.get("file", None): if request.headers.get("Authorization"): return {"error": "`url` or `body` parameter required."}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error="Please enter a url or some text.", title=title, url=url, body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error="Please enter a url or some text.", title=title, url=url, body=request.values.get("body", "")), 400 if not title: if request.headers.get("Authorization"): return {"error": "Please enter a better title"}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error="Please enter a better title.", title=title, url=url, body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error="Please enter a better title.", title=title, url=url, body=request.values.get("body", "")), 400 elif len(title) > 500: @@ -872,16 +855,12 @@ def submit_post(v): if len(str(body)) > 10000: if request.headers.get("Authorization"): return {"error":"10000 character limit for text body."}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error="10000 character limit for text body.", title=title, url=url, body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error="10000 character limit for text body.", title=title, url=url, body=request.values.get("body", "")), 400 if len(url) > 2048: if request.headers.get("Authorization"): return {"error":"2048 character limit for URLs."}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error="2048 character limit for URLs.", title=title, url=url,body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error="2048 character limit for URLs.", title=title, url=url,body=request.values.get("body", "")), 400 for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|webp|PNG|JPG|JPEG|GIF|WEBP|9999))', body, re.MULTILINE): if "wikipedia" not in i.group(1): body = body.replace(i.group(1), f'![]({i.group(1)})') @@ -914,9 +893,7 @@ def submit_post(v): body += f"\n\n{url}" else: if request.headers.get("Authorization"): return {"error": "Image/Video files only"}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error=f"Image/Video files only."), 400 + return render_template("submit.html", v=v, error=f"Image/Video files only."), 400 body_html = sanitize(body) @@ -935,9 +912,7 @@ def submit_post(v): reason = f"Remove the {ban.domain} link from your post and try again." if ban.reason: reason += f" {ban.reason}" if request.headers.get("Authorization"): return {"error": reason}, 403 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}submit.html", v=v, error=reason, title=title, url=url, body=request.values.get("body", "")), 403 + return render_template("submit.html", v=v, error=reason, title=title, url=url, body=request.values.get("body", "")), 403 if v.club_allowed == False: club = False else: club = bool(request.values.get("club","")) @@ -1011,7 +986,7 @@ def submit_post(v): new_post.url = url else: if request.headers.get("Authorization"): return {"error": "File type not allowed"}, 400 - return render_template(f"{template}submit.html", v=v, error="File type not allowed.", title=title, body=request.values.get("body", "")), 400 + return render_template("submit.html", v=v, error="File type not allowed.", title=title, body=request.values.get("body", "")), 400 if not new_post.thumburl and new_post.url: diff --git a/files/routes/search.py b/files/routes/search.py index 0faa8d188..cc80f82f0 100644 --- a/files/routes/search.py +++ b/files/routes/search.py @@ -35,8 +35,6 @@ def searchparse(text): @app.get("/search/posts") @auth_required def searchposts(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' query = request.values.get("q", '').strip() @@ -71,7 +69,7 @@ def searchposts(v): if author.is_private and author.id != v.id and v.admin_level < 2 and not v.eye: if request.headers.get("Authorization"): return {"error": f"@{author.username}'s profile is private; You can't use the 'author' syntax on them"} - return render_template(f"{template}search.html", + return render_template("search.html", v=v, query=query, total=0, @@ -181,7 +179,7 @@ def searchposts(v): if request.headers.get("Authorization"): return {"total":total, "data":[x.json for x in posts]} - return render_template(f"{template}search.html", + return render_template("search.html", v=v, query=query, total=total, @@ -198,8 +196,6 @@ def searchposts(v): @auth_required def searchcomments(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' query = request.values.get("q", '').strip() @@ -220,7 +216,7 @@ def searchcomments(v): if request.headers.get("Authorization"): return {"error": f"@{author.username}'s profile is private; You can't use the 'author' syntax on them"} - return render_template(f"{template}search_comments.html", v=v, query=query, total=0, page=page, comments=[], sort=sort, t=t, next_exists=False, error=f"@{author.username}'s profile is private; You can't use the 'author' syntax on them.") + return render_template("search_comments.html", v=v, query=query, total=0, page=page, comments=[], sort=sort, t=t, next_exists=False, error=f"@{author.username}'s profile is private; You can't use the 'author' syntax on them.") else: comments = comments.filter(Comment.author_id == author.id) @@ -275,14 +271,12 @@ def searchcomments(v): comments = get_comments(ids, v=v) if request.headers.get("Authorization"): return {"total":total, "data":[x.json for x in comments]} - return render_template(f"{template}search_comments.html", v=v, query=query, total=total, page=page, comments=comments, sort=sort, t=t, next_exists=next_exists) + return render_template("search_comments.html", v=v, query=query, total=total, page=page, comments=comments, sort=sort, t=t, next_exists=next_exists) @app.get("/search/users") @auth_required def searchusers(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' query = request.values.get("q", '').strip() @@ -304,4 +298,4 @@ def searchusers(v): users=users[:25] if request.headers.get("Authorization"): return {"data": [x.json for x in users]} - return render_template(f"{template}search_users.html", v=v, query=query, total=total, page=page, users=users, sort=sort, t=t, next_exists=next_exists) \ No newline at end of file + return render_template("search_users.html", v=v, query=query, total=total, page=page, users=users, sort=sort, t=t, next_exists=next_exists) \ No newline at end of file diff --git a/files/routes/settings.py b/files/routes/settings.py index e14b96a5b..10ff1a394 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -50,8 +50,6 @@ def settings_profile_post(v): if request.content_length > 8 * 1024 * 1024: return {"error":"Max file size is 8 MB."}, 413 elif request.content_length > 4 * 1024 * 1024: return {"error":"Max file size is 4 MB."}, 413 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' updated = False @@ -128,36 +126,28 @@ def settings_profile_post(v): v.bio_html = None g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Your bio has been updated.") + return render_template("settings_profile.html", v=v, msg="Your bio has been updated.") elif request.values.get("sig") == "": v.sig = None v.sig_html = None g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Your sig has been updated.") + return render_template("settings_profile.html", v=v, msg="Your sig has been updated.") elif request.values.get("friends") == "": v.friends = None v.friends_html = None g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Your friends list has been updated.") + return render_template("settings_profile.html", v=v, msg="Your friends list has been updated.") elif request.values.get("enemies") == "": v.enemies = None v.enemies_html = None g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Your enemies list has been updated.") + return render_template("settings_profile.html", v=v, msg="Your enemies list has been updated.") elif (v.patron or v.id == MOOSE_ID) and request.values.get("sig"): sig = request.values.get("sig")[:200] @@ -178,9 +168,7 @@ def settings_profile_post(v): return {"error": reason}, 401 if len(sig_html) > 1000: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="Your sig is too long") @@ -188,9 +176,7 @@ def settings_profile_post(v): v.sig_html=sig_html g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, msg="Your sig has been updated.") @@ -213,9 +199,7 @@ def settings_profile_post(v): return {"error": reason}, 401 if len(friends_html) > 2000: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="Your friends list is too long") @@ -231,9 +215,7 @@ def settings_profile_post(v): v.friends_html=friends_html g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, msg="Your friends list has been updated.") @@ -254,9 +236,7 @@ def settings_profile_post(v): return {"error": reason}, 401 if len(enemies_html) > 2000: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="Your enemies list is too long") @@ -272,9 +252,7 @@ def settings_profile_post(v): v.enemies_html=enemies_html g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, msg="Your enemies list has been updated.") @@ -301,17 +279,13 @@ def settings_profile_post(v): bio += f"\n\n{url}" else: if request.headers.get("Authorization"): return {"error": "Image/Video files only"}, 400 - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, error="Image/Video files only."), 400 + return render_template("settings_profile.html", v=v, error="Image/Video files only."), 400 bio_html = sanitize(bio) bans = filter_comment_html(bio_html) if len(bio_html) > 10000: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="Your bio is too long") @@ -329,7 +303,7 @@ def settings_profile_post(v): v.bio_html=bio_html g.db.add(v) g.db.commit() - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, msg="Your bio has been updated.") @@ -428,16 +402,12 @@ def filters(v): filters=request.values.get("filters")[:1000].strip() if filters == v.custom_filter_list: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_filters.html", v=v, error="You didn't change anything") + return render_template("settings_filters.html", v=v, error="You didn't change anything") v.custom_filter_list=filters g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_filters.html", v=v, msg="Your custom filters have been updated.") + return render_template("settings_filters.html", v=v, msg="Your custom filters have been updated.") @app.post("/changelogsub") @auth_required @@ -455,12 +425,10 @@ def changelogsub(v): @limiter.limit("1/second") @auth_required def namecolor(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' color = str(request.values.get("color", "")).strip() if color.startswith('#'): color = color[1:] - if len(color) != 6: return render_template(f"{template}settings_security.html", v=v, error="Invalid color code") + if len(color) != 6: return render_template("settings_security.html", v=v, error="Invalid color code") v.namecolor = color g.db.add(v) g.db.commit() @@ -470,12 +438,10 @@ def namecolor(v): @limiter.limit("1/second") @auth_required def themecolor(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' themecolor = str(request.values.get("themecolor", "")).strip() if themecolor.startswith('#'): themecolor = themecolor[1:] - if len(themecolor) != 6: return render_template(f"{template}settings_security.html", v=v, error="Invalid color code") + if len(themecolor) != 6: return render_template("settings_security.html", v=v, error="Invalid color code") v.themecolor = themecolor g.db.add(v) g.db.commit() @@ -537,12 +503,10 @@ def gumroad(v): @limiter.limit("1/second") @auth_required def titlecolor(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' titlecolor = str(request.values.get("titlecolor", "")).strip() if titlecolor.startswith('#'): titlecolor = titlecolor[1:] - if len(titlecolor) != 6: return render_template(f"{template}settings_profile.html", v=v, error="Invalid color code") + if len(titlecolor) != 6: return render_template("settings_profile.html", v=v, error="Invalid color code") v.titlecolor = titlecolor g.db.add(v) g.db.commit() @@ -552,12 +516,9 @@ def titlecolor(v): @limiter.limit("1/second") @auth_required def verifiedcolor(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - verifiedcolor = str(request.values.get("verifiedcolor", "")).strip() if verifiedcolor.startswith('#'): verifiedcolor = verifiedcolor[1:] - if len(verifiedcolor) != 6: return render_template(f"{template}settings_profile.html", v=v, error="Invalid color code") + if len(verifiedcolor) != 6: return render_template("settings_profile.html", v=v, error="Invalid color code") v.verifiedcolor = verifiedcolor g.db.add(v) g.db.commit() @@ -654,9 +615,7 @@ def settings_log_out_others(v): submitted_password = request.values.get("password", "").strip() if not v.verifyPass(submitted_password): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_security.html", v=v, error="Incorrect Password"), 401 + return render_template("settings_security.html", v=v, error="Incorrect Password"), 401 v.login_nonce += 1 @@ -666,9 +625,7 @@ def settings_log_out_others(v): g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_security.html", v=v, msg="All other devices have been logged out") + return render_template("settings_security.html", v=v, msg="All other devices have been logged out") @app.post("/settings/images/profile") @@ -703,9 +660,7 @@ def settings_images_profile(v): g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Profile picture successfully updated.") + return render_template("settings_profile.html", v=v, msg="Profile picture successfully updated.") @app.post("/settings/images/banner") @@ -730,9 +685,7 @@ def settings_images_banner(v): g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Banner successfully updated.") + return render_template("settings_profile.html", v=v, msg="Banner successfully updated.") @app.post("/settings/delete/profile") @@ -745,9 +698,7 @@ def settings_delete_profile(v): g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, + return render_template("settings_profile.html", v=v, msg="Profile picture successfully removed.") @app.post("/settings/delete/banner") @@ -760,26 +711,20 @@ def settings_delete_banner(v): g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, msg="Banner successfully removed.") + return render_template("settings_profile.html", v=v, msg="Banner successfully removed.") @app.get("/settings/blocks") @auth_required def settings_blockedpage(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_blocks.html", v=v) + return render_template("settings_blocks.html", v=v) @app.get("/settings/css") @auth_required def settings_css_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_css.html", v=v) + return render_template("settings_css.html", v=v) @app.post("/settings/css") @limiter.limit("1/second") @@ -792,18 +737,14 @@ def settings_css(v): g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_css.html", v=v) + return render_template("settings_css.html", v=v) @app.get("/settings/profilecss") @auth_required def settings_profilecss_get(v): if v.truecoins < 1000 and not v.patron and v.admin_level == 0 : return f"You must have +1000 {COINS_NAME} or be a paypig to set profile css." - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profilecss.html", v=v) + return render_template("settings_profilecss.html", v=v) @app.post("/settings/profilecss") @limiter.limit("1/second") @@ -815,9 +756,7 @@ def settings_profilecss(v): g.db.add(v) g.db.commit() - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profilecss.html", v=v) + return render_template("settings_profilecss.html", v=v) @app.post("/settings/block") @limiter.limit("1/second") @@ -879,9 +818,7 @@ def settings_unblock_user(v): @auth_required def settings_apps(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_apps.html", v=v) + return render_template("settings_apps.html", v=v) @app.post("/settings/remove_discord") @@ -902,9 +839,7 @@ def settings_remove_discord(v): @auth_required def settings_content_get(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_filters.html", v=v) + return render_template("settings_filters.html", v=v) @app.post("/settings/name_change") @limiter.limit("1/second") @@ -914,16 +849,12 @@ def settings_name_change(v): new_name=request.values.get("name").strip() if new_name==v.username: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="You didn't change anything") if not re.match(valid_username_regex, new_name): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="This isn't a valid username.") @@ -937,9 +868,7 @@ def settings_name_change(v): ).one_or_none() if x and x.id != v.id: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error=f"Username `{new_name}` is already in use.") @@ -975,9 +904,7 @@ def settings_song_change(v): elif song.startswith("https://youtu.be/"): id = song.split("https://youtu.be/")[1] else: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, error="Not a youtube link.") + return render_template("settings_profile.html", v=v, error="Not a youtube link.") if "?" in id: id = id.split("?")[0] if "&" in id: id = id.split("&")[0] @@ -992,21 +919,15 @@ def settings_song_change(v): req = requests.get(f"https://www.googleapis.com/youtube/v3/videos?id={id}&key={YOUTUBE_KEY}&part=contentDetails", timeout=5).json() duration = req['items'][0]['contentDetails']['duration'] if duration == 'P0D': - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, error="Can't use a live youtube video!") + return render_template("settings_profile.html", v=v, error="Can't use a live youtube video!") if "H" in duration: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, error="Duration of the video must not exceed 10 minutes.") + return render_template("settings_profile.html", v=v, error="Duration of the video must not exceed 10 minutes.") if "M" in duration: duration = int(duration.split("PT")[1].split("M")[0]) if duration > 10: - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", v=v, error="Duration of the video must not exceed 10 minutes.") + return render_template("settings_profile.html", v=v, error="Duration of the video must not exceed 10 minutes.") if v.song and path.isfile(f"/songs/{v.song}.mp3") and g.db.query(User.id).filter_by(song=v.song).count() == 1: @@ -1026,9 +947,7 @@ def settings_song_change(v): try: ydl.download([f"https://youtube.com/watch?v={id}"]) except Exception as e: print(e) - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' - return render_template(f"{template}settings_profile.html", + return render_template("settings_profile.html", v=v, error="Age-restricted videos aren't allowed.") @@ -1048,14 +967,12 @@ def settings_song_change(v): @limiter.limit("1/second") @auth_required def settings_title_change(v): - if not v or v.oldsite: template = '' - else: template = 'CHRISTMAS/' if v.flairchanged: abort(403) new_name=request.values.get("title").strip()[:100].replace("𒐪","") - if new_name==v.customtitle: return render_template(f"{template}settings_profile.html", v=v, error="You didn't change anything") + if new_name==v.customtitle: return render_template("settings_profile.html", v=v, error="You didn't change anything") v.customtitleplain = new_name