diff --git a/files/classes/comment.py b/files/classes/comment.py index 8cc74a0913..d299cc3bbb 100644 --- a/files/classes/comment.py +++ b/files/classes/comment.py @@ -392,7 +392,15 @@ class Comment(Base): @lazy def ordered_flags(self): return self.flags.order_by(CommentFlag.id).all() - + def options_html(self, v): + html = "" + for o in self.options: + html += f'
' + return html class Notification(Base): diff --git a/files/classes/user.py b/files/classes/user.py index 79031f88a1..67d3aa3920 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -15,7 +15,7 @@ from .clients import * from files.__main__ import Base, cache from files.helpers.security import * import random -from os import environ, remove +from os import environ, remove, path site = environ.get("DOMAIN").strip() site_name = environ.get("SITE_NAME").strip() @@ -466,18 +466,29 @@ class User(Base): return data - def ban(self, admin=None, reason=None, days=0): + def deletepfp(self): + if self.highres and '/images/' in self.highres: + image = '/images/' + self.highres.split('/images/')[1] + if path.exists(image): remove(image) + if self.profileurl and '/images/' in self.profileurl: + image = '/images/' + self.profileurl.split('/images/')[1] + if path.exists(image): remove(image) + self.highres = None + self.profileurl = None + def deletebanner(self): + if self.bannerurl and '/images/' in self.bannerurl: + image = '/images/' + self.bannerurl.split('/images/')[1] + if path.exists(image): remove(image) + self.bannerurl = None + + def ban(self, admin=None, reason=None, days=0): if days > 0: ban_time = int(time.time()) + (days * 86400) self.unban_utc = ban_time else: - if self.highres and '/images/' in self.highres: remove('/images/' + self.highres.split('/images/')[1]) - if self.profileurl and '/images/' in self.profileurl: remove('/images/' + self.profileurl.split('/images/')[1]) - if self.bannerurl and '/images/' in self.bannerurl: remove('/images/' + self.bannerurl.split('/images/')[1]) - - self.bannerurl = None - self.profileurl = None + self.deletepfp() + self.deletebanner() if self.discord_id: remove_user(self) self.is_banned = admin.id if admin else AUTOJANNY_ID diff --git a/files/helpers/const.py b/files/helpers/const.py index cadfd25963..221e36564a 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -53,8 +53,8 @@ SLURS = { "kill yourself": "keep yourself safe", "kys": "keep yourself safe", "kyle": "Kylie", - "nig": "🏀", - "nigger": "🏀", + "nig": "BIPOC", + "nigger": "BIPOC", "rapist": "male feminist", "steve akins": "penny verity oaken", "trannie": "🚂🚃🚃", diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index fd1fb11327..5a6efa8a5d 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -165,26 +165,28 @@ def sanitize(sanitized, noimages=False): if start in sanitized and end in sanitized and start in sanitized.split(end)[0] and end in sanitized.split(start)[1]: sanitized = sanitized.replace(start, '').replace(end, '') - for i in re.finditer("[^a]>\s*(:!?\w+:\s*)+<\/", sanitized): + for i in re.finditer("[^a]>\s*(:[!#]?\w+:\s*)+<\/", sanitized): old = i.group(0) if 'marseylong1' in old or 'marseylong2' in old or 'marseyllama1' in old or 'marseyllama2' in old: new = old.lower().replace(">", " class='mb-0'>") else: new = old.lower() for i in re.finditer('(?', new) - - if emoji in session["favorite_emojis"]: session["favorite_emojis"][emoji] += 1 - else: session["favorite_emojis"][emoji] = 1 + classes = 'class="bigemoji mirrored" ' + remoji = emoji[1:] + elif emoji.startswith("#"): + classes = "" + remoji = emoji[1:] + else: + classes = 'class="bigemoji" ' + remoji = emoji - elif path.isfile(f'./files/assets/images/emojis/{emoji}.webp'): - new = re.sub(f'(?', new) + if path.isfile(f'./files/assets/images/emojis/{remoji}.webp'): + new = re.sub(f'(?', new) + + if remoji in session["favorite_emojis"]: session["favorite_emojis"][remoji] += 1 + else: session["favorite_emojis"][remoji] = 1 - if emoji in session["favorite_emojis"]: session["favorite_emojis"][emoji] += 1 - else: session["favorite_emojis"][emoji] = 1 - sanitized = sanitized.replace(old, new) diff --git a/files/routes/admin.py b/files/routes/admin.py index 7bc45feadb..09fb995d72 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -754,14 +754,9 @@ def ban_user(user_id, v): if user.admin_level >= v.admin_level: abort(403) - if 'form' in request.values: - days = float(request.values.get("days")) if request.values.get('days') else 0 - reason = sanitize(request.values.get("reason", ""))[:256] - message = request.values.get("reason", "").strip()[:256] - else: - days = float(request.values.get("days")) if request.values.get('days') else 0 - reason = sanitize(request.values.get("reason", ""))[:256] - message = request.values.get("reason", "").strip()[:256] + days = float(request.values.get("days")) if request.values.get('days') else 0 + reason = sanitize(request.values.get("reason", ""))[:256] + message = request.values.get("reason", "").strip()[:256] if not user: abort(400) diff --git a/files/routes/awards.py b/files/routes/awards.py index c29346ae17..1dff45b95a 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -803,7 +803,7 @@ def award_comment(cid, v): @admin_level_required(2) def admin_userawards_get(v): - if request.host == 'rdrama.net' and v.admin_level != 3: return render_template("admin/awards.html", awards=list(AWARDS3.values()), v=v) + 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) @app.post("/admin/awards") @@ -850,5 +850,5 @@ def admin_userawards_post(v): g.db.commit() - if request.host == 'rdrama.net' and v.admin_level != 3: return render_template("admin/awards.html", awards=list(AWARDS3.values()), v=v) + 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/comments.py b/files/routes/comments.py index b0f6131d98..c0144f45a6 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -646,6 +646,18 @@ def edit_comment(cid, v): body = body.replace('I ', f'@{v.username} ') body = censor_slurs2(body).upper().replace(' ME ', f' @{v.username} ') + if not c.options: + for i in re.finditer('\s*\$\$([^\$\n]+)\$\$\s*', body): + body = body.replace(i.group(0), "") + c_option = Comment(author_id=AUTOPOLLER_ID, + parent_submission=c.parent_submission, + parent_comment_id=c.id, + level=c.level+1, + body_html=filter_title(i.group(1)), + upvotes=0 + ) + g.db.add(c_option) + body_html = sanitize(CustomRenderer().render(mistletoe.Document(body))) if v.marseyawarded and len(list(re.finditer('>[^<\s+]|[^>\s+]<', body_html))) > 0: return {"error":"You can only type marseys!"}, 403 @@ -816,7 +828,7 @@ def edit_comment(cid, v): g.db.commit() - return c.body_html + return c.body_html + c.options_html(v) @app.post("/delete/comment/