forked from rDrama/rDrama
1
0
Fork 0
master
Aevann1 2022-01-16 08:06:16 +02:00
parent e108fa509e
commit a93b2a1781
35 changed files with 96 additions and 96 deletions

View File

@ -433,10 +433,10 @@ class User(Base):
@property @property
@lazy @lazy
def profile_url(self): def profile_url(self):
if self.agendaposter: return f"https://{site}/static/assets/images/defaultpictures/agendaposter/{random.randint(1, 50)}.webp?a=201" if self.agendaposter: return f"https://{site}/static/assets/images/defaultpictures/agendaposter/{random.randint(1, 50)}.webp?a=202"
if self.profileurl: return self.profileurl if self.profileurl: return self.profileurl
if "rama" in site: return f"https://{site}/static/assets/images/defaultpictures/{random.randint(1, 150)}.webp?a=201" if "rama" in site: return f"https://{site}/static/assets/images/defaultpictures/{random.randint(1, 150)}.webp?a=202"
return f"https://{site}/static/assets/images/default-profile-pic.webp?a=201" return f"https://{site}/static/assets/images/default-profile-pic.webp?a=202"
@lazy @lazy
def json_popover(self, v): def json_popover(self, v):

View File

@ -7,7 +7,7 @@ from files.__main__ import app, limiter
@app.errorhandler(400) @app.errorhandler(400)
def error_400(e): def error_400(e):
if request.headers.get("Authorization"): return {"error": "400 Bad Request"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "400 Bad Request"}, 400
else: return render_template('errors/400.html', err=True), 400 else: return render_template('errors/400.html', err=True), 400
@app.errorhandler(401) @app.errorhandler(401)
@ -18,25 +18,25 @@ def error_401(e):
argval = quote(f"{path}?{qs}", safe='') argval = quote(f"{path}?{qs}", safe='')
output = f"/login?redirect={argval}" output = f"/login?redirect={argval}"
if request.headers.get("Authorization"): return {"error": "401 Not Authorized"}, 401 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "401 Not Authorized"}, 401
else: return redirect(output) else: return redirect(output)
@app.errorhandler(403) @app.errorhandler(403)
def error_403(e): def error_403(e):
if request.headers.get("Authorization"): return {"error": "403 Forbidden"}, 403 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "403 Forbidden"}, 403
else: return render_template('errors/403.html', err=True), 403 else: return render_template('errors/403.html', err=True), 403
@app.errorhandler(404) @app.errorhandler(404)
def error_404(e): def error_404(e):
if request.headers.get("Authorization"): return {"error": "404 Not Found"}, 404 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "404 Not Found"}, 404
else: return render_template('errors/404.html', err=True), 404 else: return render_template('errors/404.html', err=True), 404
@app.errorhandler(405) @app.errorhandler(405)
def error_405(e): def error_405(e):
if request.headers.get("Authorization"): return {"error": "405 Method Not Allowed"}, 405 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "405 Method Not Allowed"}, 405
else: return render_template('errors/405.html', err=True), 405 else: return render_template('errors/405.html', err=True), 405
@ -46,7 +46,7 @@ def error_413(e):
@app.errorhandler(429) @app.errorhandler(429)
def error_429(e): def error_429(e):
if request.headers.get("Authorization"): return {"error": "429 Too Many Requests"}, 429 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "429 Too Many Requests"}, 429
else: return render_template('errors/429.html', err=True), 429 else: return render_template('errors/429.html', err=True), 429
@ -54,7 +54,7 @@ def error_429(e):
def error_500(e): def error_500(e):
g.db.rollback() g.db.rollback()
if request.headers.get("Authorization"): return {"error": "500 Internal Server Error"}, 500 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "500 Internal Server Error"}, 500
else: return render_template('errors/500.html', err=True), 500 else: return render_template('errors/500.html', err=True), 500

View File

@ -225,7 +225,7 @@ def post_id(pid, anything=None, v=None):
post.views += 1 post.views += 1
g.db.add(post) g.db.add(post)
if request.host != 'old.rdrama.net' and post.over_18 and not (v and v.over_18) and session.get('over_18', 0) < int(time.time()): if request.host != 'old.rdrama.net' and post.over_18 and not (v and v.over_18) and session.get('over_18', 0) < int(time.time()):
if request.headers.get("Authorization"): return {"error":"Must be 18+ to view"}, 451 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error":"Must be 18+ to view"}, 451
return render_template("errors/nsfw.html", v=v) return render_template("errors/nsfw.html", v=v)
g.db.commit() g.db.commit()
@ -753,7 +753,7 @@ def submit_post(v):
domain_obj = get_domain(domain) domain_obj = get_domain(domain)
if domain_obj: if domain_obj:
if request.headers.get("Authorization"): return {"error":domain_obj.reason}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error":domain_obj.reason}, 400
return render_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: elif "twitter.com" == domain:
try: embed = requests.get("https://publish.twitter.com/oembed", timeout=5, params={"url":url, "omit_script":"t"}).json()["html"] try: embed = requests.get("https://publish.twitter.com/oembed", timeout=5, params={"url":url, "omit_script":"t"}).json()["html"]
@ -775,16 +775,16 @@ def submit_post(v):
else: embed = None else: embed = None
if not url and not request.values.get("body") and not request.files.get("file", None): 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 request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "`url` or `body` parameter required."}, 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 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 not title:
if request.headers.get("Authorization"): return {"error": "Please enter a better title"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "Please enter a better title"}, 400
return render_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: elif len(title) > 500:
if request.headers.get("Authorization"): return {"error": "500 character limit for titles"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "500 character limit for titles"}, 400
else: render_template("submit.html", v=v, error="500 character limit for titles.", title=title[:500], url=url, body=request.values.get("body", "")), 400 else: render_template("submit.html", v=v, error="500 character limit for titles.", title=title[:500], url=url, body=request.values.get("body", "")), 400
if v.marseyawarded: if v.marseyawarded:
@ -853,12 +853,12 @@ def submit_post(v):
if len(str(body)) > 10000: if len(str(body)) > 10000:
if request.headers.get("Authorization"): return {"error":"10000 character limit for text body."}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error":"10000 character limit for text 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 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 len(url) > 2048:
if request.headers.get("Authorization"): return {"error":"2048 character limit for URLs."}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error":"2048 character limit for URLs."}, 400
return render_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): for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|webp|PNG|JPG|JPEG|GIF|WEBP|9999))', body, re.MULTILINE):
@ -891,7 +891,7 @@ def submit_post(v):
if url.endswith('.'): url += 'mp4' if url.endswith('.'): url += 'mp4'
body += f"\n\n{url}" body += f"\n\n{url}"
else: else:
if request.headers.get("Authorization"): return {"error": "Image/Video files only"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "Image/Video files only"}, 400
return render_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) body_html = sanitize(body)
@ -910,7 +910,7 @@ def submit_post(v):
ban = bans[0] ban = bans[0]
reason = f"Remove the {ban.domain} link from your post and try again." reason = f"Remove the {ban.domain} link from your post and try again."
if ban.reason: reason += f" {ban.reason}" if ban.reason: reason += f" {ban.reason}"
if request.headers.get("Authorization"): return {"error": reason}, 403 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": reason}, 403
return render_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 if v.club_allowed == False: club = False
@ -984,7 +984,7 @@ def submit_post(v):
if url.endswith('.'): url += 'mp4' if url.endswith('.'): url += 'mp4'
new_post.url = url new_post.url = url
else: else:
if request.headers.get("Authorization"): return {"error": "File type not allowed"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "File type not allowed"}, 400
return render_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

View File

@ -270,7 +270,7 @@ def settings_profile_post(v):
if url.endswith('.'): url += 'mp4' if url.endswith('.'): url += 'mp4'
bio += f"\n\n{url}" bio += f"\n\n{url}"
else: else:
if request.headers.get("Authorization"): return {"error": "Image/Video files only"}, 400 if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "Image/Video files only"}, 400
return render_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) bio_html = sanitize(bio)

View File

@ -631,7 +631,7 @@ def u_username(username, v=None):
return redirect(request.path.replace(username, u.username)) return redirect(request.path.replace(username, u.username))
if u.reserved: if u.reserved:
if request.headers.get("Authorization"): return {"error": f"That username is reserved for: {u.reserved}"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": f"That username is reserved for: {u.reserved}"}
return render_template("userpage_reserved.html", u=u, v=v) return render_template("userpage_reserved.html", u=u, v=v)
if v and u.id != v.id: if v and u.id != v.id:
@ -656,20 +656,20 @@ def u_username(username, v=None):
if v and u.id == LLM_ID: if v and u.id == LLM_ID:
if int(time.time()) - v.rent_utc > 600: if int(time.time()) - v.rent_utc > 600:
if request.headers.get("Authorization"): return {"error": "That userpage is private"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "That userpage is private"}
return render_template("userpage_private.html", time=int(time.time()), u=u, v=v) return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
else: else:
if request.headers.get("Authorization"): return {"error": "That userpage is private"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "That userpage is private"}
return render_template("userpage_private.html", time=int(time.time()), u=u, v=v) return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
if v and hasattr(u, 'is_blocking') and u.is_blocking: if v and hasattr(u, 'is_blocking') and u.is_blocking:
if request.headers.get("Authorization"): return {"error": f"You are blocking @{u.username}."} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": f"You are blocking @{u.username}."}
return render_template("userpage_blocking.html", u=u, v=v) return render_template("userpage_blocking.html", u=u, v=v)
if v and v.admin_level < 2 and hasattr(u, 'is_blocked') and u.is_blocked: if v and v.admin_level < 2 and hasattr(u, 'is_blocked') and u.is_blocked:
if request.headers.get("Authorization"): return {"error": "This person is blocking you."} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "This person is blocking you."}
return render_template("userpage_blocked.html", u=u, v=v) return render_template("userpage_blocked.html", u=u, v=v)
@ -739,7 +739,7 @@ def u_username_comments(username, v=None):
u = user u = user
if u.reserved: if u.reserved:
if request.headers.get("Authorization"): return {"error": f"That username is reserved for: {u.reserved}"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": f"That username is reserved for: {u.reserved}"}
return render_template("userpage_reserved.html", return render_template("userpage_reserved.html",
u=u, u=u,
v=v) v=v)
@ -748,18 +748,18 @@ def u_username_comments(username, v=None):
if u.is_private and (not v or (v.id != u.id and v.admin_level < 2 and not v.eye)): if u.is_private and (not v or (v.id != u.id and v.admin_level < 2 and not v.eye)):
if v and u.id == LLM_ID: if v and u.id == LLM_ID:
if int(time.time()) - v.rent_utc > 600: if int(time.time()) - v.rent_utc > 600:
if request.headers.get("Authorization"): return {"error": "That userpage is private"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "That userpage is private"}
return render_template("userpage_private.html", time=int(time.time()), u=u, v=v) return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
else: else:
if request.headers.get("Authorization"): return {"error": "That userpage is private"} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "That userpage is private"}
return render_template("userpage_private.html", time=int(time.time()), u=u, v=v) return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
if v and hasattr(u, 'is_blocking') and u.is_blocking: if v and hasattr(u, 'is_blocking') and u.is_blocking:
if request.headers.get("Authorization"): return {"error": f"You are blocking @{u.username}."} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": f"You are blocking @{u.username}."}
return render_template("userpage_blocking.html", u=u, v=v) return render_template("userpage_blocking.html", u=u, v=v)
if v and v.admin_level < 2 and hasattr(u, 'is_blocked') and u.is_blocked: if v and v.admin_level < 2 and hasattr(u, 'is_blocked') and u.is_blocked:
if request.headers.get("Authorization"): return {"error": "This person is blocking you."} if request.headers.get("Authorization") or request.headers.get("xhr"): return {"error": "This person is blocking you."}
return render_template("userpage_blocked.html", u=u, v=v) return render_template("userpage_blocked.html", u=u, v=v)

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<script src="/static/assets/js/sort_table.js?a=200"></script> <script src="/static/assets/js/sort_table.js?a=202"></script>
<pre class="d-none d-md-inline-block"></pre> <pre class="d-none d-md-inline-block"></pre>
<h5 style="font-weight:bold;">Admins</h5> <h5 style="font-weight:bold;">Admins</h5>

View File

@ -1,4 +1,4 @@
<script src="/static/assets/js/award_modal.js?a=200"></script> <script src="/static/assets/js/award_modal.js?a=202"></script>
<div class="modal fade" id="awardModal" tabindex="-1" role="dialog" aria-labelledby="awardModalTitle" aria-hidden="true"> <div class="modal fade" id="awardModal" tabindex="-1" role="dialog" aria-labelledby="awardModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered awardmodal" role="document"> <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered awardmodal" role="document">
<div class="modal-content"> <div class="modal-content">

View File

@ -1,5 +1,5 @@
<script src="/static/assets/js/ban_modal.js?a=200"></script> <script src="/static/assets/js/ban_modal.js?a=202"></script>
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true"> <div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered" role="document">

View File

@ -104,6 +104,6 @@
</nav> </nav>
{% endif %} {% endif %}
<script src="/static/assets/js/post_toast2.js?a=200"></script> <script src="/static/assets/js/post_toast2.js?a=202"></script>
{% endblock %} {% endblock %}

View File

@ -847,20 +847,20 @@
</style> </style>
{% if v %} {% if v %}
<script src="/static/assets/js/marked.js?a=200"></script> <script src="/static/assets/js/marked.js?a=202"></script>
<script src="/static/assets/js/comments_v.js?a=200"></script> <script src="/static/assets/js/comments_v.js?a=202"></script>
{% endif %} {% endif %}
<script src="/static/assets/js/clipboard.js?a=200"></script> <script src="/static/assets/js/clipboard.js?a=202"></script>
{% if v and v.admin_level > 1 %} {% if v and v.admin_level > 1 %}
<script src="/static/assets/js/comments_admin.js?a=200"></script> <script src="/static/assets/js/comments_admin.js?a=202"></script>
{% endif %} {% endif %}
{% include "expanded_image_modal.html" %} {% include "expanded_image_modal.html" %}
<script src="/static/assets/js/comments+submission_listing.js?a=200"></script> <script src="/static/assets/js/comments+submission_listing.js?a=202"></script>
<script src="/static/assets/js/comments.js?a=200"></script> <script src="/static/assets/js/comments.js?a=202"></script>
<script> <script>
{% if p and (not v or v.highlightcomments) %} {% if p and (not v or v.highlightcomments) %}

View File

@ -4,7 +4,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' ajax.cloudflare.com; connect-src 'self' tls-use1.fpapi.io api.fpjs.io {{PUSHER_ID}}.pushnotifications.pusher.com; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' ajax.cloudflare.com; connect-src 'self' tls-use1.fpapi.io api.fpjs.io {{PUSHER_ID}}.pushnotifications.pusher.com; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
{% if v %} {% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style> <style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/static/assets/css/main.css?a=78"> <link rel="stylesheet" href="/static/assets/css/main.css?a=78">
@ -314,15 +314,15 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/lozad.js?a=200"></script> <script src="/static/assets/js/lozad.js?a=202"></script>
{% if v %} {% if v %}
<script src="/static/assets/js/post_toast2.js?a=200"></script> <script src="/static/assets/js/post_toast2.js?a=202"></script>
<script src="/static/assets/js/formatting.js?a=200"></script> <script src="/static/assets/js/formatting.js?a=202"></script>
<script src="/static/assets/js/default.js?a=200"></script> <script src="/static/assets/js/default.js?a=202"></script>
{% endif %} {% endif %}
<script src="/static/assets/js/lite-youtube.js?a=200"></script> <script src="/static/assets/js/lite-youtube.js?a=202"></script>
</body> </body>

View File

@ -1,4 +1,4 @@
<script src="/static/assets/js/delete_post_modal.js?a=200"></script> <script src="/static/assets/js/delete_post_modal.js?a=202"></script>
<div class="modal fade" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true"> <div class="modal fade" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered" role="document">

View File

@ -80,7 +80,7 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/emoji_modal.js?a=200"></script> <script src="/static/assets/js/emoji_modal.js?a=202"></script>
<style> <style>
a.emojitab { a.emojitab {

View File

@ -1,6 +1,6 @@
{% extends "default.html" %} {% extends "default.html" %}
{% block content %} {% block content %}
<script src="/static/assets/js/followers.js?a=200"></script> <script src="/static/assets/js/followers.js?a=202"></script>
<pre> <pre>

View File

@ -1,6 +1,6 @@
{% extends "default.html" %} {% extends "default.html" %}
{% block content %} {% block content %}
<script src="/static/assets/js/following.js?a=200"></script> <script src="/static/assets/js/following.js?a=202"></script>
<pre> <pre>

View File

@ -26,4 +26,4 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/gif_modal.js?a=200"></script> <script src="/static/assets/js/gif_modal.js?a=202"></script>

View File

@ -207,7 +207,7 @@
</div> </div>
</nav> </nav>
<script src="/static/assets/js/header.js?a=200"></script> <script src="/static/assets/js/header.js?a=202"></script>
<style> <style>
.notif-count { .notif-count {

View File

@ -7,8 +7,8 @@
<script> <script>
function fp(fp) { function fp(fp) {
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
xhr.setRequestHeader('Authorization', 'xhr');
xhr.open("POST", '{{request.host_url}}fp/'+fp, true); xhr.open("POST", '{{request.host_url}}fp/'+fp, true);
xhr.setRequestHeader('xhr', 'xhr');
var form = new FormData() var form = new FormData()
form.append("formkey", formkey()); form.append("formkey", formkey());
xhr.withCredentials=true; xhr.withCredentials=true;
@ -20,7 +20,7 @@
script.onload = resolve; script.onload = resolve;
script.onerror = reject; script.onerror = reject;
script.async = true; script.async = true;
script.src = "/static/assets/js/fp.js?a=200"; script.src = "/static/assets/js/fp.js?a=202";
document.head.appendChild(script); document.head.appendChild(script);
}) })
.then(() => FingerprintJS.load({token: '{{environ.get("FP")}}'})); .then(() => FingerprintJS.load({token: '{{environ.get("FP")}}'}));
@ -168,7 +168,7 @@
{% if v %} {% if v %}
<div class="d-none" id="strid">{{request.host}}{{v.id}}</div> <div class="d-none" id="strid">{{request.host}}{{v.id}}</div>
<div class="d-none" id="pusherid">{{PUSHER_ID}}</div> <div class="d-none" id="pusherid">{{PUSHER_ID}}</div>
<script src="/static/assets/js/pusher.js?a=200"></script> <script src="/static/assets/js/pusher.js?a=202"></script>
<script> <script>
if (Android){ if (Android){
Android.Subscribe('{{request.host}}{{v.id}}'); Android.Subscribe('{{request.host}}{{v.id}}');

View File

@ -142,6 +142,6 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/clipboard.js?a=200"></script> <script src="/static/assets/js/clipboard.js?a=202"></script>
{% endblock %} {% endblock %}

View File

@ -6,7 +6,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

View File

@ -68,7 +68,7 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/mobile_navigation_bar.js?a=200"></script> <script src="/static/assets/js/mobile_navigation_bar.js?a=202"></script>
<style> <style>
.btn-dead:hover, .active.btn-dead:hover, .active.btn-dead { .btn-dead:hover, .active.btn-dead:hover, .active.btn-dead {

View File

@ -32,4 +32,4 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/report_post_modal.js?a=200"></script> <script src="/static/assets/js/report_post_modal.js?a=202"></script>

View File

@ -5,7 +5,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -258,7 +258,7 @@
{% block onload %}{% endblock %} {% block onload %}{% endblock %}
<script src="/static/assets/js/clipboard.js?a=200"></script> <script src="/static/assets/js/clipboard.js?a=202"></script>
<style> <style>
.navsettings { .navsettings {

View File

@ -6,7 +6,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<script src="/static/assets/js/settings_blocks.js?a=200"></script> <script src="/static/assets/js/settings_blocks.js?a=202"></script>
<div class="row"> <div class="row">

View File

@ -677,7 +677,7 @@
</div> </div>
<script src="/static/assets/js/settings_profile.js?a=200"></script> <script src="/static/assets/js/settings_profile.js?a=202"></script>
{% include "emoji_modal.html" %} {% include "emoji_modal.html" %}
{% include "gif_modal.html" %} {% include "gif_modal.html" %}

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<script src="/static/assets/js/settings_security.js?a=200"></script> <script src="/static/assets/js/settings_security.js?a=202"></script>
<div class="row"> <div class="row">

View File

@ -5,7 +5,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -154,10 +154,10 @@
</div> </div>
</div> </div>
<script src="/static/assets/js/signup.js?a=200"></script> <script src="/static/assets/js/signup.js?a=202"></script>
{% if hcaptcha %} {% if hcaptcha %}
<script src="/static/assets/js/hcaptcha.js?a=200"></script> <script src="/static/assets/js/hcaptcha.js?a=202"></script>
{% endif %} {% endif %}
</body> </body>

View File

@ -6,7 +6,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

View File

@ -406,9 +406,9 @@
{% if p.domain == "twitter.com" %} {% if p.domain == "twitter.com" %}
{{p.embed_url | safe}} {{p.embed_url | safe}}
{% if v and v.theme.split("_")[0] in ["light", "coffee", "4chan"] %} {% if v and v.theme.split("_")[0] in ["light", "coffee", "4chan"] %}
<script src="/static/assets/js/twitterlight.js?a=200"></script> <script src="/static/assets/js/twitterlight.js?a=202"></script>
{% else %} {% else %}
<script src="/static/assets/js/twitter.js?a=200"></script> <script src="/static/assets/js/twitter.js?a=202"></script>
{% endif %} {% endif %}
{% elif p.domain in ['youtu.be','youtube.com'] and p.embed_url and p.embed_url.startswith('<lite-youtube') %} {% elif p.domain in ['youtu.be','youtube.com'] and p.embed_url and p.embed_url.startswith('<lite-youtube') %}
{{p.embed_url | safe}} {{p.embed_url | safe}}
@ -801,7 +801,7 @@
</div> </div>
{% if offset %} {% if offset %}
<script src="/static/assets/js/viewmore.js?a=200"></script> <script src="/static/assets/js/viewmore.js?a=202"></script>
{% endif %} {% endif %}
{% elif not p.replies and p.deleted_utc == 0 %} {% elif not p.replies and p.deleted_utc == 0 %}
@ -832,32 +832,32 @@
{% endif %} {% endif %}
{% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %} {% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
<script src="/static/assets/js/togglePostEdit.js?a=200"></script> <script src="/static/assets/js/togglePostEdit.js?a=202"></script>
{% endif %} {% endif %}
{% if v %} {% if v %}
<script src="/static/assets/js/submission.js?a=200"></script> <script src="/static/assets/js/submission.js?a=202"></script>
{% endif %} {% endif %}
{% if not v or v.highlightcomments %} {% if not v or v.highlightcomments %}
<script src="/static/assets/js/new_comments_count.js?a=200"></script> <script src="/static/assets/js/new_comments_count.js?a=202"></script>
{% endif %} {% endif %}
<script src="/static/assets/js/clipboard.js?a=200"></script> <script src="/static/assets/js/clipboard.js?a=202"></script>
{% if not p.comment_count %} {% if not p.comment_count %}
{% include "comments.html" %} {% include "comments.html" %}
{% endif %} {% endif %}
{% if p.award_count("shit") %} {% if p.award_count("shit") %}
<script src="/static/assets/js/critters.js?a=200"></script> <script src="/static/assets/js/critters.js?a=202"></script>
<script src="/static/assets/js/bugs.js?a=200"></script> <script src="/static/assets/js/bugs.js?a=202"></script>
{% endif %} {% endif %}
{% if p.award_count("fireflies") %} {% if p.award_count("fireflies") %}
<script src="/static/assets/js/critters.js?a=200"></script> <script src="/static/assets/js/critters.js?a=202"></script>
<script src="/static/assets/js/fireflies.js?a=200"></script> <script src="/static/assets/js/fireflies.js?a=202"></script>
{% endif %} {% endif %}

View File

@ -9,7 +9,7 @@
{% endif %} {% endif %}
{% if not v or v.highlightcomments %} {% if not v or v.highlightcomments %}
<script src="/static/assets/js/new_comments_count.js?a=200"></script> <script src="/static/assets/js/new_comments_count.js?a=202"></script>
{% endif %} {% endif %}
<script> <script>
@ -695,6 +695,6 @@
} }
</style> </style>
<script src="/static/assets/js/clipboard.js?a=200"></script> <script src="/static/assets/js/clipboard.js?a=202"></script>
<script src="/static/assets/js/comments+submission_listing.js?a=200"></script> <script src="/static/assets/js/comments+submission_listing.js?a=202"></script>
<script src="/static/assets/js/submission_listing.js?a=200"></script> <script src="/static/assets/js/submission_listing.js?a=202"></script>

View File

@ -4,7 +4,7 @@
<meta name="description" content="{{'DESCRIPTION' | app_config}}"> <meta name="description" content="{{'DESCRIPTION' | app_config}}">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
<script src="/static/assets/js/bootstrap.js?a=200"></script> <script src="/static/assets/js/bootstrap.js?a=202"></script>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -239,9 +239,9 @@
checkForRequired() checkForRequired()
</script> </script>
<script src="/static/assets/js/marked.js?a=200"></script> <script src="/static/assets/js/marked.js?a=202"></script>
<script src="/static/assets/js/formatting.js?a=200"></script> <script src="/static/assets/js/formatting.js?a=202"></script>
<script src="/static/assets/js/submit.js?a=200"></script> <script src="/static/assets/js/submit.js?a=202"></script>
{% include "emoji_modal.html" %} {% include "emoji_modal.html" %}
{% include "gif_modal.html" %} {% include "gif_modal.html" %}

View File

@ -691,11 +691,11 @@
{% if v %} {% if v %}
<div id='tax' class="d-none">{% if v.patron or u.patron or v.alts_patron or u.alts_patron %}0{% else %}0.03{% endif %}</div> <div id='tax' class="d-none">{% if v.patron or u.patron or v.alts_patron or u.alts_patron %}0{% else %}0.03{% endif %}</div>
<script src="/static/assets/js/userpage_v.js?a=200"></script> <script src="/static/assets/js/userpage_v.js?a=202"></script>
<div id="username" class="d-none">{{u.username}}</div> <div id="username" class="d-none">{{u.username}}</div>
{% endif %} {% endif %}
<script src="/static/assets/js/userpage.js?a=200"></script> <script src="/static/assets/js/userpage.js?a=202"></script>
{% endblock %} {% endblock %}
@ -721,7 +721,7 @@
</nav> </nav>
{% endif %} {% endif %}
<script src="/static/assets/js/marked.js?a=200"></script> <script src="/static/assets/js/marked.js?a=202"></script>
<style> <style>
.userbanner { .userbanner {

View File

@ -110,9 +110,9 @@
{% if v %} {% if v %}
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div> <div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
<script src="/static/assets/js/userpage_v.js?a=200"></script> <script src="/static/assets/js/userpage_v.js?a=202"></script>
<div id="username" class="d-none">{{u.username}}</div> <div id="username" class="d-none">{{u.username}}</div>
{% endif %} {% endif %}
<script src="/static/assets/js/userpage.js?a=200"></script> <script src="/static/assets/js/userpage.js?a=202"></script>
{% endblock %} {% endblock %}

View File

@ -44,9 +44,9 @@
{% if v %} {% if v %}
<div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div> <div id='tax' class="d-none">{% if v.patron or u.patron %}0{% else %}0.03{% endif %}</div>
<script src="/static/assets/js/userpage_v.js?a=200"></script> <script src="/static/assets/js/userpage_v.js?a=202"></script>
<div id="username" class="d-none">{{u.username}}</div> <div id="username" class="d-none">{{u.username}}</div>
{% endif %} {% endif %}
<script src="/static/assets/js/userpage.js?a=200"></script> <script src="/static/assets/js/userpage.js?a=202"></script>
{% endblock %} {% endblock %}