diff --git a/files/assets/images/Drama/banners_bhm/1.webp b/files/assets/images/Drama/banners_bhm/1.webp new file mode 100644 index 000000000..e5122040b Binary files /dev/null and b/files/assets/images/Drama/banners_bhm/1.webp differ diff --git a/files/assets/images/Drama/banners_bhm/2.webp b/files/assets/images/Drama/banners_bhm/2.webp new file mode 100644 index 000000000..74c2559a5 Binary files /dev/null and b/files/assets/images/Drama/banners_bhm/2.webp differ diff --git a/files/assets/images/Drama/banners_bhm/3.webp b/files/assets/images/Drama/banners_bhm/3.webp new file mode 100644 index 000000000..0d098cc5b Binary files /dev/null and b/files/assets/images/Drama/banners_bhm/3.webp differ diff --git a/files/assets/images/Drama/banners_bhm/4.webp b/files/assets/images/Drama/banners_bhm/4.webp new file mode 100644 index 000000000..2702d1791 Binary files /dev/null and b/files/assets/images/Drama/banners_bhm/4.webp differ diff --git a/files/assets/images/Drama/banners_bhm/5.webp b/files/assets/images/Drama/banners_bhm/5.webp new file mode 100644 index 000000000..04b3b8ea6 Binary files /dev/null and b/files/assets/images/Drama/banners_bhm/5.webp differ diff --git a/files/assets/images/defaultpictures/bhm/1.webp b/files/assets/images/defaultpictures/bhm/1.webp new file mode 100644 index 000000000..552b42152 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/1.webp differ diff --git a/files/assets/images/defaultpictures/bhm/10.webp b/files/assets/images/defaultpictures/bhm/10.webp new file mode 100644 index 000000000..8925c583e Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/10.webp differ diff --git a/files/assets/images/defaultpictures/bhm/11.webp b/files/assets/images/defaultpictures/bhm/11.webp new file mode 100644 index 000000000..55e21c54b Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/11.webp differ diff --git a/files/assets/images/defaultpictures/bhm/12.webp b/files/assets/images/defaultpictures/bhm/12.webp new file mode 100644 index 000000000..ca3fc1949 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/12.webp differ diff --git a/files/assets/images/defaultpictures/bhm/13.webp b/files/assets/images/defaultpictures/bhm/13.webp new file mode 100644 index 000000000..101df36c3 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/13.webp differ diff --git a/files/assets/images/defaultpictures/bhm/14.webp b/files/assets/images/defaultpictures/bhm/14.webp new file mode 100644 index 000000000..12afae76d Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/14.webp differ diff --git a/files/assets/images/defaultpictures/bhm/15.webp b/files/assets/images/defaultpictures/bhm/15.webp new file mode 100644 index 000000000..73d6e995c Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/15.webp differ diff --git a/files/assets/images/defaultpictures/bhm/16.webp b/files/assets/images/defaultpictures/bhm/16.webp new file mode 100644 index 000000000..9dc7a09b2 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/16.webp differ diff --git a/files/assets/images/defaultpictures/bhm/17.webp b/files/assets/images/defaultpictures/bhm/17.webp new file mode 100644 index 000000000..7c4a02b49 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/17.webp differ diff --git a/files/assets/images/defaultpictures/bhm/18.webp b/files/assets/images/defaultpictures/bhm/18.webp new file mode 100644 index 000000000..d24019b10 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/18.webp differ diff --git a/files/assets/images/defaultpictures/bhm/19.webp b/files/assets/images/defaultpictures/bhm/19.webp new file mode 100644 index 000000000..55baa581a Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/19.webp differ diff --git a/files/assets/images/defaultpictures/bhm/2.webp b/files/assets/images/defaultpictures/bhm/2.webp new file mode 100644 index 000000000..5042d1081 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/2.webp differ diff --git a/files/assets/images/defaultpictures/bhm/20.webp b/files/assets/images/defaultpictures/bhm/20.webp new file mode 100644 index 000000000..f0f275813 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/20.webp differ diff --git a/files/assets/images/defaultpictures/bhm/21.webp b/files/assets/images/defaultpictures/bhm/21.webp new file mode 100644 index 000000000..c401b3ec1 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/21.webp differ diff --git a/files/assets/images/defaultpictures/bhm/22.webp b/files/assets/images/defaultpictures/bhm/22.webp new file mode 100644 index 000000000..db89e1dbe Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/22.webp differ diff --git a/files/assets/images/defaultpictures/bhm/23.webp b/files/assets/images/defaultpictures/bhm/23.webp new file mode 100644 index 000000000..a99294301 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/23.webp differ diff --git a/files/assets/images/defaultpictures/bhm/24.webp b/files/assets/images/defaultpictures/bhm/24.webp new file mode 100644 index 000000000..89fb04f9e Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/24.webp differ diff --git a/files/assets/images/defaultpictures/bhm/25.webp b/files/assets/images/defaultpictures/bhm/25.webp new file mode 100644 index 000000000..fa94d79d2 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/25.webp differ diff --git a/files/assets/images/defaultpictures/bhm/3.webp b/files/assets/images/defaultpictures/bhm/3.webp new file mode 100644 index 000000000..8728171f4 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/3.webp differ diff --git a/files/assets/images/defaultpictures/bhm/4.webp b/files/assets/images/defaultpictures/bhm/4.webp new file mode 100644 index 000000000..4854c043f Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/4.webp differ diff --git a/files/assets/images/defaultpictures/bhm/5.webp b/files/assets/images/defaultpictures/bhm/5.webp new file mode 100644 index 000000000..a35a3eaa8 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/5.webp differ diff --git a/files/assets/images/defaultpictures/bhm/6.webp b/files/assets/images/defaultpictures/bhm/6.webp new file mode 100644 index 000000000..567b1b1ff Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/6.webp differ diff --git a/files/assets/images/defaultpictures/bhm/7.webp b/files/assets/images/defaultpictures/bhm/7.webp new file mode 100644 index 000000000..58dd8ac2e Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/7.webp differ diff --git a/files/assets/images/defaultpictures/bhm/8.webp b/files/assets/images/defaultpictures/bhm/8.webp new file mode 100644 index 000000000..06adc73a5 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/8.webp differ diff --git a/files/assets/images/defaultpictures/bhm/9.webp b/files/assets/images/defaultpictures/bhm/9.webp new file mode 100644 index 000000000..a1470f565 Binary files /dev/null and b/files/assets/images/defaultpictures/bhm/9.webp differ diff --git a/files/classes/user.py b/files/classes/user.py index eeb01f17e..8989466de 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -125,7 +125,8 @@ class User(Base): ban_evade = Column(Integer, default=0) original_username = deferred(Column(String)) referred_by = Column(Integer, ForeignKey("users.id")) - + nwordpass = Column(Boolean) + badges = relationship("Badge", viewonly=True) subscriptions = relationship("Subscription", viewonly=True) following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True) @@ -438,7 +439,7 @@ class User(Base): if self.profileurl: if self.profileurl.startswith('/'): return SITE_FULL + self.profileurl return self.profileurl - if SITE_NAME == 'Drama': return f"{SITE_FULL}/static/assets/images/defaultpictures/{random.randint(1, 150)}.webp?a=1008" + if SITE_NAME == 'Drama': return f"{SITE_FULL}/static/assets/images/defaultpictures/bhm/{random.randint(1, 25)}.webp?a=1008" return f"{SITE_FULL}/static/assets/images/default-profile-pic.webp?a=1008" @lazy @@ -663,4 +664,4 @@ class ViewerRelationship(Base): return f"{months}mo ago" else: years = int(months / 12) - return f"{years}yr ago" \ No newline at end of file + return f"{years}yr ago" diff --git a/files/helpers/const.py b/files/helpers/const.py index 6b5dba5df..cb072913b 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -119,12 +119,12 @@ def torture_ap(body, username): LONGPOST_REPLIES = ('Wow, you must be a JP fan.', 'This is one of the worst posts I have EVER seen. Delete it.', "No, don't reply like this, please do another wall of unhinged rant please.", '# 😴😴😴', "Ma'am we've been over this before. You need to stop.", "I've known more coherent downies.", "Your pulitzer's in the mail", "That's great and all, but I asked for my burger without cheese.", 'That degree finally paying off', "That's nice sweaty. Why don't you have a seat in the time out corner with Pizzashill until you calm down, then you can have your Capri Sun.", "All them words won't bring your pa back.", "You had a chance to not be completely worthless, but it looks like you threw it away. At least you're consistent.", 'Some people are able to display their intelligence by going on at length on a subject and never actually saying anything. This ability is most common in trades such as politics, public relations, and law. You have impressed me by being able to best them all, while still coming off as an absolute idiot.', "You can type 10,000 characters and you decided that these were the one's that you wanted.", 'Have you owned the libs yet?', "I don't know what you said, because I've seen another human naked.", 'Impressive. Normally people with such severe developmental disabilities struggle to write much more than a sentence or two. He really has exceded our expectations for the writing portion. Sadly the coherency of his writing, along with his abilities in the social skills and reading portions, are far behind his peers with similar disabilities.', "This is a really long way of saying you don't fuck.", "Sorry ma'am, looks like his delusions have gotten worse. We'll have to admit him.", ':#marseywoah:', 'If only you could put that energy into your relationships', 'Posts like this is why I do Heroine.', 'still unemployed then?', 'K', 'look im gunna have 2 ask u 2 keep ur giant dumps in the toilet not in my replys 😷😷😷', "Mommy is soooo proud of you, sweaty. Let's put this sperg out up on the fridge with all your other failures.", "Good job bobby, here's a star", "That was a mistake. You're about to find out the hard way why.", 'You sat down and wrote all this shit. You could have done so many other things with your life. What happened to your life that made you decide writing novels of bullshit on rdrama.net was the best option?', "I don't have enough spoons to read this shit", "All those words won't bring daddy back.", 'OUT!', "Damn, you're really mad over this, but thanks for the effort you put into typing that all out! Sadly I won't read it all.", "Jesse what the fuck are you talking about??") -AGENDAPOSTER_PHRASE = 'trans lives matter' +AGENDAPOSTER_PHRASE = 'black lives matter' AGENDAPOSTER_MSG = """Hi @{username},\n\nYour {type} has been automatically removed because you forgot to include `{AGENDAPOSTER_PHRASE}`.\n\nDon't worry, we're here to help! We won't let you post or comment anything that doesn't express your love and acceptance towards - the trans community. Feel free to resubmit your {type} with `{AGENDAPOSTER_PHRASE}` + the black community. Feel free to resubmit your {type} with `{AGENDAPOSTER_PHRASE}` included. \n\n*This is an automated message; if you need help, you can message us [here](/contact).*""" @@ -508,6 +508,14 @@ AWARDS = { "color": "text-gold", "price": 50000 }, + "nword": { + "kind": "nword", + "title": "Nword Pass", + "description": "Gives the recipient the ability to speak that which must not be spoken", + "icon": "fas fa-edit", + "color": "text-success", + "price": 10000 + }, } AWARDS2 = deepcopy(AWARDS) @@ -548,4 +556,4 @@ REDDIT_NOTIFS = { 'carpathianflorist': CARP_ID, 'carpathian florist': CARP_ID, 'the_homocracy': HOMO_ID -} \ No newline at end of file +} diff --git a/files/routes/awards.py b/files/routes/awards.py index f7075ff1b..c7bb7e2c1 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -403,6 +403,13 @@ def award_post(pid, v): for c in post.comments: c.ghost = True g.db.add(c) + elif kind == "nword": + author.nwordpass = True + if not author.has_badge(108): + new_badge = Badge(badge_id=108, user_id=author.id) + g.db.add(new_badge) + g.db.flush() + send_notification(author.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") elif kind == "rehab": if author.rehab: author.rehab += 86400 else: author.rehab = int(time.time()) + 86400 @@ -630,6 +637,13 @@ def award_comment(cid, v): elif kind == "ghosts": c.ghost = True g.db.add(c) + elif kind == "nword": + author.nwordpass = True + if not author.has_badge(108): + new_badge = Badge(badge_id=108, user_id=author.id) + g.db.add(new_badge) + g.db.flush() + send_notification(author.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") elif kind == "rehab": if author.rehab: author.rehab += 86400 else: author.rehab = int(time.time()) + 86400 @@ -718,4 +732,4 @@ def admin_userawards_post(v): g.db.commit() 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 + return render_template("admin/awards.html", awards=list(AWARDS.values()), v=v) diff --git a/files/routes/comments.py b/files/routes/comments.py index bad228706..80ae97ba0 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -415,7 +415,37 @@ def api_comment(v): n = Notification(comment_id=c_jannied.id, user_id=v.id) g.db.add(n) + + if 'nigg' in body and not v.nwordpass: + no_pass_phrase = """Sorry whiteboy, we're gonna need to see some ID before you start throwin that word around like it's nothing.\n\nTake a 30 minute time-out and come back when you've learned your lesson and/or paid reparations (by purchasing a BIPOC Approved™ Rdrama NWord Pass© from the shop) \n\n*This is an automated message; if you need help, + you can message us [here](/contact).*""" + + body_jannied_html = sanitize(no_pass_phrase) + + c_jannied = Comment(author_id=NOTIFICATIONS_ID, + parent_submission=parent_submission, + distinguish_level=6, + parent_comment_id=c.id, + level=level+1, + is_bot=True, + body_html=body_jannied_html, + top_comment_id=c.top_comment_id, + ghost=parent_post.ghost + ) + + g.db.add(c_jannied) + g.db.flush() + + v.ban(reason="White people nonsense.", + days=0.02) + + text = "Your account has been suspended for 30 minutes for the following reason:\n\n> Unsacntioned Racism" + send_repeatable_notification(v.id, text) + + n = Notification(comment_id=c_jannied.id, user_id=v.id) + g.db.add(n) + if request.host == "rdrama.net" and len(c.body) >= 1000 and "<" not in body and "" not in body_html: body = random.choice(LONGPOST_REPLIES) diff --git a/files/templates/default.html b/files/templates/default.html index c0d9aba45..89d7ee93c 100644 --- a/files/templates/default.html +++ b/files/templates/default.html @@ -217,7 +217,7 @@ {% if v %} {% if SITE_NAME == 'Drama' %} - {% set path = "assets/images/" + SITE_NAME + "/banners" %} + {% set path = "assets/images/" + SITE_NAME + "/banners_bhm" %} {% set image = "/static/" + path + "/" + listdir('files/' + path)|random() + '?a=20' %}