From 8ae70b9b0493abb51ce93792612d87f68cdffce4 Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Thu, 11 Nov 2021 20:58:09 +0200 Subject: [PATCH] \ --- files/classes/badges.py | 2 +- files/classes/submission.py | 8 +-- files/classes/user.py | 8 +-- files/helpers/sanitize.py | 2 +- files/routes/comments.py | 4 +- files/routes/posts.py | 4 +- files/routes/settings.py | 10 ++-- files/routes/static.py | 9 ++- files/templates/authforms.html | 2 +- files/templates/comments.html | 2 +- files/templates/default.html | 78 ++++++++++++------------- files/templates/header.html | 4 +- files/templates/login.html | 2 +- files/templates/login_2fa.html | 2 +- files/templates/message_success.html | 2 +- files/templates/patrons.html | 2 +- files/templates/settings.html | 6 +- files/templates/settings2.html | 8 +-- files/templates/settings_profile.html | 2 +- files/templates/shop.html | 2 +- files/templates/sign_up.html | 6 +- files/templates/sign_up_failed_ref.html | 6 +- files/templates/submission.html | 10 ++-- files/templates/submission_listing.html | 4 +- files/templates/submit.html | 2 +- files/templates/userpage.html | 4 +- 26 files changed, 99 insertions(+), 92 deletions(-) diff --git a/files/classes/badges.py b/files/classes/badges.py index 07c291bc8..3bbf7834c 100644 --- a/files/classes/badges.py +++ b/files/classes/badges.py @@ -26,7 +26,7 @@ class BadgeDef(Base): @lazy def path(self): - return f"/assets/images/badges/{self.icon}.gif" + return f"/assets/images/badges/{self.icon}.webp" @property @lazy diff --git a/files/classes/submission.py b/files/classes/submission.py index fd98ff329..75ac87791 100644 --- a/files/classes/submission.py +++ b/files/classes/submission.py @@ -213,11 +213,11 @@ class Submission(Base): @property @lazy def thumb_url(self): - if self.over_18: return f"http://{site}/assets/images/nsfw.gif" - elif not self.url: return f"http://{site}/assets/images/{site_name}/default_text.gif" + if self.over_18: return f"http://{site}/assets/images/nsfw.webp" + elif not self.url: return f"http://{site}/assets/images/{site_name}/default_text.webp" elif self.thumburl: return self.thumburl - elif "youtu.be" in self.domain or "youtube.com" in self.domain: return f"http://{site}/assets/images/default_thumb_yt.gif" - else: return f"http://{site}/assets/images/default_thumb_link.gif" + elif "youtu.be" in self.domain or "youtube.com" in self.domain: return f"http://{site}/assets/images/default_thumb_yt.webp" + else: return f"http://{site}/assets/images/default_thumb_link.webp" @property @lazy diff --git a/files/classes/user.py b/files/classes/user.py index a5b4a2335..529377845 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -255,7 +255,7 @@ class User(Base): @property @lazy def bio_html_eager(self): - return self.bio_html.replace('data-src', 'src').replace('src="/assets/images/loading.gif"', '') + return self.bio_html.replace('data-src', 'src').replace('src="/assets/images/loading.webp"', '') @property @lazy @@ -400,14 +400,14 @@ class User(Base): @lazy def banner_url(self): if self.bannerurl: return self.bannerurl - else: return f"http://{site}/assets/images/{site_name}/preview.gif" + else: return f"http://{site}/assets/images/{site_name}/preview.webp" @property @lazy def profile_url(self): if self.profileurl: return self.profileurl - elif "rama" in site: return f"http://{site}/assets/images/defaultpictures/{random.randint(1, 150)}.gif" - else: return f"http://{site}/assets/images/default-profile-pic.gif" + elif "rama" in site: return f"http://{site}/assets/images/defaultpictures/{random.randint(1, 150)}.webp" + else: return f"http://{site}/assets/images/default-profile-pic.webp" @property @lazy diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index fe07ad3c7..64e3e3c47 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -133,7 +133,7 @@ def sanitize(sanitized, noimages=False): tag["class"] = "in-comment-image" tag["loading"] = "lazy" tag["data-src"] = tag["src"] - tag["src"] = "/assets/images/loading.gif" + tag["src"] = "/assets/images/loading.webp" link = soup.new_tag("a") link["href"] = tag["data-src"] diff --git a/files/routes/comments.py b/files/routes/comments.py index aeef1b3e8..c6d27a139 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -175,7 +175,7 @@ def api_comment(v): file=request.files["file"] if not file.content_type.startswith('image/'): return {"error": "That wasn't an image!"}, 400 - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) url = request.host_url[:-1] + process_image(name) @@ -669,7 +669,7 @@ def edit_comment(cid, v): file=request.files["file"] if not file.content_type.startswith('image/'): return {"error": "That wasn't an image!"}, 400 - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) url = request.host_url[:-1] + process_image(name) diff --git a/files/routes/posts.py b/files/routes/posts.py index cd1f050c3..2fec0f55e 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -487,7 +487,7 @@ def thumbnail_thread(pid): db.close() return - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' with open(name, "wb") as file: for chunk in image_req.iter_content(1024): @@ -749,7 +749,7 @@ def submit_post(v): ), 403 if file.content_type.startswith('image/'): - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) new_post.url = request.host_url[:-1] + process_image(name) diff --git a/files/routes/settings.py b/files/routes/settings.py index 4293fa022..140b461da 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -117,7 +117,7 @@ def settings_profile_post(v): if request.headers.get("Authorization"): return {"error": f"Image files only"}, 400 else: return render_template("settings_profile.html", v=v, error=f"Image files only."), 400 - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) url = request.host_url[:-1] + process_image(name) @@ -307,7 +307,7 @@ def settings_profile_post(v): if request.headers.get("Authorization"): return {"error": f"Image files only"}, 400 else: return render_template("settings_profile.html", v=v, error=f"Image files only."), 400 - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) url = request.host_url[:-1] + process_image(name) @@ -683,13 +683,13 @@ def settings_images_profile(v): file = request.files["profile"] - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) highres = request.host_url[:-1] + process_image(name) if not highres: abort(400) - name2 = name.replace('.gif', 'r.gif') + name2 = name.replace('.webp', 'r.webp') copyfile(name, name2) imageurl = request.host_url[:-1] + process_image(name2, True) @@ -717,7 +717,7 @@ def settings_images_banner(v): file = request.files["banner"] - name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.gif' + name = f'/images/{int(time.time())}{secrets.token_urlsafe(2)}.webp' file.save(name) bannerurl = request.host_url[:-1] + process_image(name) diff --git a/files/routes/static.py b/files/routes/static.py index 04ee5f0fe..ce4618e2a 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -209,7 +209,7 @@ def log_item(id, v): @app.get("/assets/favicon.ico") def favicon(): - return send_file(f"./assets/images/{site_name}/icon.gif") + return send_file(f"./assets/images/{site_name}/icon.webp") @app.get("/api") @auth_desired @@ -251,6 +251,10 @@ def static_service(path): resp.headers.remove("Cache-Control") resp.headers.add("Cache-Control", "public, max-age=2628000") + if request.path.endswith('.webp'): + resp.headers.remove("Content-Type") + resp.headers.add("Content-Type", "image/webp") + return resp @app.get('/images/') @@ -260,6 +264,9 @@ def images(path): resp = make_response(send_from_directory('/images', path)) resp.headers.remove("Cache-Control") resp.headers.add("Cache-Control", "public, max-age=2628000") + if request.path.endswith('.webp'): + resp.headers.remove("Content-Type") + resp.headers.add("Content-Type", "image/webp") return resp @app.get("/robots.txt") diff --git a/files/templates/authforms.html b/files/templates/authforms.html index 2ae0b2fd8..a61051ed7 100644 --- a/files/templates/authforms.html +++ b/files/templates/authforms.html @@ -91,7 +91,7 @@
- + diff --git a/files/templates/comments.html b/files/templates/comments.html index 08af301c0..6d489cc58 100644 --- a/files/templates/comments.html +++ b/files/templates/comments.html @@ -299,7 +299,7 @@ {% endif %} {{c.author.username}} - {% if c.author.customtitle %}  {% if c.author.quadrant %}{% endif %}{{c.author.customtitle | safe}}{% endif %} + {% if c.author.customtitle %}  {% if c.author.quadrant %}{% endif %}{{c.author.customtitle | safe}}{% endif %} {% if c.parent_comment_id and not standalone and level<=7 %}{{ c.parent_comment.author.username }}{% endif %} diff --git a/files/templates/default.html b/files/templates/default.html index a40abd425..42d53e012 100644 --- a/files/templates/default.html +++ b/files/templates/default.html @@ -11,7 +11,7 @@ {% if v and v.agendaposter %} + + {% set minbugs = 10*p.award_count("shit") if p.award_count("shit") < 3 else 20 %} {% set maxbugs = 20*p.award_count("shit") if p.award_count("shit") < 3 else 40 %} + {% set minbugs = 10*p.award_count("fireflies") if p.award_count("fireflies") < 3 else 20 %} {% set maxbugs = 20*p.award_count("fireflies") if p.award_count("fireflies") < 3 else 40 %}