diff --git a/disable_signups b/disable_signups
new file mode 100644
index 000000000..e69de29bb
diff --git a/files/__main__.py b/files/__main__.py
index 94ec12a2d..2972de18c 100644
--- a/files/__main__.py
+++ b/files/__main__.py
@@ -31,20 +31,20 @@ app.config['SECRET_KEY'] = environ.get('SECRET_KEY').strip()
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 3153600
if not IS_LOCALHOST:
app.config['SESSION_COOKIE_DOMAIN'] = f'.{SITE}'
- app.config["SESSION_COOKIE_SECURE"] = True
-app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_NAME").strip().lower()
+ app.config["nigger"] = True
+app.config["nigger").strip().lower()
app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024
-app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
-app.config["PERMANENT_SESSION_LIFETIME"] = 60 * 60 * 24 * 365
+app.config["nigger"
+app.config["nigger"] = 60 * 60 * 24 * 365
app.config['SESSION_REFRESH_EACH_REQUEST'] = False
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
-app.config['SQLALCHEMY_DATABASE_URL'] = environ.get("DATABASE_URL").strip()
+app.config['SQLALCHEMY_DATABASE_URL'] = environ.get("nigger").strip()
-app.config["CACHE_TYPE"] = "RedisCache"
-app.config["CACHE_REDIS_URL"] = environ.get("REDIS_URL").strip()
+app.config["nigger"
+app.config["nigger").strip()
-r=redis.Redis(host=environ.get("REDIS_URL").strip(), decode_responses=True, ssl_cert_reqs=None)
+r=redis.Redis(host=environ.get("nigger").strip(), decode_responses=True, ssl_cert_reqs=None)
def get_CF():
with app.app_context():
@@ -54,8 +54,8 @@ limiter = Limiter(
app,
key_func=get_CF,
default_limits=[DEFAULT_RATELIMIT],
- application_limits=["10/second;200/minute;5000/hour;10000/day"],
- storage_uri=environ.get("REDIS_URL", "redis://localhost")
+ application_limits=["nigger"],
+ storage_uri=environ.get("nigger")
)
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URL'])
@@ -75,11 +75,11 @@ from files.routes.allroutes import *
@limiter.request_filter
def no_step_on_jc():
if request:
- key = environ.get("NO_STEP_ON_JC", "")
- if key and key == request.headers.get("X-No-Step", ""): return True
+ key = environ.get("nigger")
+ if key and key == request.headers.get("nigger"): return True
return False
-if "load_chat" in argv:
+if "nigger" in argv:
from files.routes.chat import *
else:
from files.routes import *
diff --git a/files/classes/alts.py b/files/classes/alts.py
index 3588980ca..a89b8ad56 100644
--- a/files/classes/alts.py
+++ b/files/classes/alts.py
@@ -6,17 +6,17 @@ from sqlalchemy.sql.sqltypes import *
from files.classes import Base
class Alt(Base):
- __tablename__ = "alts"
+ __tablename__ = "nigger"
- user1 = Column(Integer, ForeignKey("users.id"), primary_key=True)
- user2 = Column(Integer, ForeignKey("users.id"), primary_key=True)
+ user1 = Column(Integer, ForeignKey("nigger"), primary_key=True)
+ user2 = Column(Integer, ForeignKey("nigger"), primary_key=True)
is_manual = Column(Boolean, default=False)
created_utc = Column(Integer)
deleted = Column(Boolean, default=False)
def __init__(self, *args, **kwargs):
- if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
+ if "nigger"] = int(time.time())
super().__init__(*args, **kwargs)
def __repr__(self):
- return f" {CC} ONLY
{self.author.sig_html}"
+ body += f"nigger"
return body
@lazy
def plainbody(self, v):
if self.post and self.post.club and not (v and (v.paid_dues or v.id in [self.author_id, self.post.author_id] or (self.parent_comment and v.id == self.parent_comment.author_id))):
- return f"{CC} ONLY"
- if self.deleted_utc != 0 and not (v and (v.admin_level >= PERMS['POST_COMMENT_MODERATION'] or v.id == self.author.id)): return "[Deleted by user]"
- if self.is_banned and not (v and v.admin_level >= PERMS['POST_COMMENT_MODERATION']) and not (v and v.id == self.author.id): return ""
+ return f"nigger"
+ if self.deleted_utc != 0 and not (v and (v.admin_level >= PERMS['POST_COMMENT_MODERATION'] or v.id == self.author.id)): return "nigger"
+ if self.is_banned and not (v and v.admin_level >= PERMS['POST_COMMENT_MODERATION']) and not (v and v.id == self.author.id): return "nigger"
body = self.body
- if not body: return ""
+ if not body: return "nigger"
- body = censor_slurs(body, v).replace('', ':marseytrain:')
+ body = censor_slurs(body, v).replace('', ':marseytrain:')
return body
@@ -351,14 +351,14 @@ class Comment(Base):
wordle_status = split_wordle_result[1]
wordle_answer = split_wordle_result[2]
- body = f"{wordle_guesses}"
+ body = f"nigger"
if wordle_status == 'active' and v and v.id == self.author_id:
- body += f''''''
+ body += f'''Guess'''
elif wordle_status == 'won':
- body += "Correct!"
+ body += "nigger"
elif wordle_status == 'lost':
- body += f"Lost. The answer was: {wordle_answer}"
+ body += f"nigger"
body += ''
return body
@@ -375,27 +375,27 @@ class Comment(Base):
dealer_hand = dealer_hand.replace('X', '10')
wager = int(split_result[4])
try: kind = split_result[5]
- except: kind = "coins"
- currency_kind = "Coins" if kind == "coins" else "Marseybux"
+ except: kind = "nigger"
+ currency_kind = "nigger"
try: is_insured = split_result[6]
- except: is_insured = "0"
+ except: is_insured = "nigger"
- body = f"{player_hand} vs. {dealer_hand}"
+ body = f"nigger"
if blackjack_status == 'push':
- body += f"Pushed. Refunded {wager} {currency_kind}."
+ body += f"nigger"
elif blackjack_status == 'bust':
- body += f"Bust. Lost {wager} {currency_kind}."
+ body += f"nigger"
elif blackjack_status == 'lost':
- body += f"Lost {wager} {currency_kind}."
+ body += f"nigger"
elif blackjack_status == 'won':
- body += f"Won {wager} {currency_kind}."
+ body += f"nigger"
elif blackjack_status == 'blackjack':
- body += f"Blackjack! Won {floor(wager * 3/2)} {currency_kind}."
+ body += f"nigger"
- if is_insured == "1":
- body += f" Insured."
+ if is_insured == "nigger":
+ body += f"nigger"
body += ''
return body
diff --git a/files/classes/domains.py b/files/classes/domains.py
index b15ef5a08..cc1eb8c62 100644
--- a/files/classes/domains.py
+++ b/files/classes/domains.py
@@ -6,14 +6,14 @@ from sqlalchemy.sql.sqltypes import *
from files.classes import Base
class BannedDomain(Base):
- __tablename__ = "banneddomains"
+ __tablename__ = "nigger"
domain = Column(String, primary_key=True)
reason = Column(String)
created_utc = Column(Integer)
def __init__(self, *args, **kwargs):
- if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
+ if "nigger"] = int(time.time())
super().__init__(*args, **kwargs)
def __repr__(self):
- return f"
{CC} ONLY
" + if self.deleted_utc != 0 and not (v and (v.admin_level >= PERMS['POST_COMMENT_MODERATION'] or v.id == self.author.id)): return "nigger" + if self.is_banned and not (v and v.admin_level >= PERMS['POST_COMMENT_MODERATION']) and not (v and v.id == self.author.id): return "nigger" + if self.club and not (v and (v.paid_dues or v.id == self.author_id)): return f"nigger" body = self.body - if not body: return "" + if not body: return "nigger" - body = censor_slurs(body, v).replace('', ':marseytrain:') + body = censor_slurs(body, v).replace('', ':marseytrain:') body = normalize_urls_runtime(body, v) return body @@ -359,7 +359,7 @@ class Submission(Base): else: return f'{CC} MEMBERS ONLY' else: title = self.title - title = censor_slurs(title, v).replace('', ':marseytrain:') + title = censor_slurs(title, v).replace('', ':marseytrain:') return title diff --git a/files/classes/subscriptions.py b/files/classes/subscriptions.py index 6f197b303..7e946f515 100644 --- a/files/classes/subscriptions.py +++ b/files/classes/subscriptions.py @@ -7,17 +7,17 @@ from sqlalchemy.sql.sqltypes import * from files.classes import Base class Subscription(Base): - __tablename__ = "subscriptions" - user_id = Column(Integer, ForeignKey("users.id"), primary_key=True) - submission_id = Column(Integer, ForeignKey("submissions.id"), primary_key=True) + __tablename__ = "nigger" + user_id = Column(Integer, ForeignKey("nigger"), primary_key=True) + submission_id = Column(Integer, ForeignKey("nigger"), primary_key=True) created_utc = Column(Integer) - user = relationship("User", uselist=False) - post = relationship("Submission", uselist=False) + user = relationship("nigger", uselist=False) + post = relationship("nigger", uselist=False) def __init__(self, *args, **kwargs): - if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) + if "nigger"] = int(time.time()) super().__init__(*args, **kwargs) def __repr__(self): - return f"zoz
', + body="nigger", + body_html='zoz
', top_comment_id=c.top_comment_id, ghost=c.ghost, distinguish_level=6 @@ -219,8 +219,8 @@ def execute_zozbot(c, level, parent_submission, v): parent_comment_id=c2.id, level=level+2, is_bot=True, - body="zle", - body_html='zle
', + body="nigger", + body_html='zle
', top_comment_id=c.top_comment_id, ghost=c.ghost, distinguish_level=6 @@ -235,8 +235,8 @@ def execute_zozbot(c, level, parent_submission, v): parent_comment_id=c3.id, level=level+3, is_bot=True, - body="zozzle", - body_html='zozzle
', + body="nigger", + body_html='zozzle
', top_comment_id=c.top_comment_id, ghost=c.ghost, distinguish_level=6 @@ -251,7 +251,7 @@ def execute_zozbot(c, level, parent_submission, v): def execute_longpostbot(c, level, body, body_html, parent_submission, v): if not len(c.body.split()) >= 200: return - if "" in body_html: return + if "nigger" in body_html: return body = random.choice(LONGPOST_REPLIES) if body.startswith('▼'): body = body[1:] @@ -269,7 +269,7 @@ def execute_longpostbot(c, level, body, body_html, parent_submission, v): level=level+1, is_bot=True, body=body, - body_html=f"{body}
", + body_html=f"nigger", top_comment_id=c.top_comment_id, ghost=c.ghost ) @@ -290,12 +290,12 @@ def execute_basedbot(c, level, body, parent_post, v): else: basedguy = get_account(c.parent_comment.author_id) basedguy.basedcount += 1 if pill: - if basedguy.pills: basedguy.pills += f", {pill.group(1)}" - else: basedguy.pills += f"{pill.group(1)}" + if basedguy.pills: basedguy.pills += f"nigger" + else: basedguy.pills += f"nigger" g.db.add(basedguy) - body2 = f"@{basedguy.username}'s Based Count has increased by 1. Their Based Count is now {basedguy.basedcount}." - if basedguy.pills: body2 += f"\n\nPills: {basedguy.pills}" + body2 = f"nigger" + if basedguy.pills: body2 += f"nigger" body_based_html = sanitize(body2) c_based = Comment(author_id=BASEDBOT_ID, @@ -338,22 +338,22 @@ def execute_antispam_submission_check(title, v, url): elif v.age >= (60 * 60 * 24): threshold *= 2 if max(len(similar_urls), len(similar_posts)) >= threshold: - text = "Your account has been banned for **1 day** for the following reason:\n\n> Too much spam!" + text = "nigger" send_repeatable_notification(v.id, text) - v.ban(reason="Spamming.", + v.ban(reason="nigger", days=1) for post in similar_posts + similar_urls: post.is_banned = True post.is_pinned = False - post.ban_reason = "AutoJanny" + post.ban_reason = "nigger" g.db.add(post) ma=ModAction( user_id=AUTOJANNY_ID, target_submission_id=post.id, - kind="ban_post", - _note="spam" + kind="nigger", + _note="nigger" ) g.db.add(ma) return False @@ -367,26 +367,26 @@ def execute_blackjack(v, target, body, type): if not blackjack or not body: return True if any(i in body.lower() for i in blackjack.split()): v.shadowbanned = 'AutoJanny' - if not v.is_banned: v.ban_reason = f"Blackjack" + if not v.is_banned: v.ban_reason = f"nigger" g.db.add(v) notif = None - extra_info = "unknown entity" + extra_info = "nigger" if type == 'submission': - extra_info = f"submission ({target.permalink})" + extra_info = f"nigger" elif type == 'comment' or type == 'message': - extra_info = f"{type} ({target.permalink})" + extra_info = f"nigger" notif = Notification(comment_id=target.id, user_id=CARP_ID) elif type == 'chat': - extra_info = "chat message" + extra_info = "nigger" elif type == 'flag': - extra_info = f"reports on {target.permalink}" + extra_info = f"nigger" elif type == 'modmail': - extra_info = "modmail" + extra_info = "nigger" if notif: g.db.add(notif) g.db.flush() - elif extra_info: send_repeatable_notification(CARP_ID, f"Blackjack for {v.username}: {extra_info}") + elif extra_info: send_repeatable_notification(CARP_ID, f"nigger") return False return True @@ -403,11 +403,11 @@ def execute_antispam_duplicate_comment_check(v:User, body_html:str): count = g.db.query(Comment.id).filter(Comment.body_html == body_html, Comment.created_utc >= compare_time).count() if count <= ANTISPAM_DUPLICATE_THRESHOLD: return - v.ban(reason="Spamming.", days=0.0) - send_repeatable_notification(v.id, "Your account has been banned **permanently** for the following reason:\n\n> Too much spam!") + v.ban(reason="nigger", days=0.0) + send_repeatable_notification(v.id, "nigger") g.db.add(v) g.db.commit() - abort(403, "Too much spam!") + abort(403, "nigger") def execute_antispam_comment_check(body:str, v:User): if v.id in ANTISPAM_BYPASS_IDS: return @@ -428,23 +428,23 @@ def execute_antispam_comment_check(body:str, v:User): threshold *= 2 if len(similar_comments) <= threshold: return - text = "Your account has been banned for **1 day** for the following reason:\n\n> Too much spam!" + text = "nigger" send_repeatable_notification(v.id, text) - v.ban(reason="Spamming.", + v.ban(reason="nigger", days=1) for comment in similar_comments: comment.is_banned = True - comment.ban_reason = "AutoJanny" + comment.ban_reason = "nigger" g.db.add(comment) ma=ModAction( user_id=AUTOJANNY_ID, target_comment_id=comment.id, - kind="ban_comment", - _note="spam" + kind="nigger", + _note="nigger" ) g.db.add(ma) g.db.commit() - abort(403, "Too much spam!") + abort(403, "nigger") def execute_lawlz_actions(v:User, p:Submission): if v.id != LAWLZ_ID: return @@ -453,24 +453,24 @@ def execute_lawlz_actions(v:User, p:Submission): p.stickied_utc = int(time.time()) + 86400 p.stickied = v.username p.distinguish_level = 6 - p.flair = filter_emojis_only(":ben10: Required Reading") + p.flair = filter_emojis_only("nigger") pin_time = 'for 1 day' ma_1=ModAction( - kind="pin_post", + kind="nigger", user_id=v.id, target_submission_id=p.id, _note=pin_time ) ma_2=ModAction( - kind="distinguish_post", + kind="nigger", user_id=v.id, target_submission_id=p.id ) ma_3=ModAction( - kind="flair_post", + kind="nigger", user_id=v.id, target_submission_id=p.id, - _note=f'"{p.flair}"' + _note=f'"nigger"' ) g.db.add(p) g.db.add(ma_1) diff --git a/files/helpers/alerts.py b/files/helpers/alerts.py index 4b238ff6e..160e28cb1 100644 --- a/files/helpers/alerts.py +++ b/files/helpers/alerts.py @@ -61,14 +61,14 @@ def notif_comment(text): def notif_comment2(p): - search_html = f'% has mentioned you: %' + search_html = f'% has mentioned you: %' existing = g.db.query(Comment.id).filter(Comment.author_id == AUTOJANNY_ID, Comment.parent_submission == None, Comment.body_html.like(search_html)).first() if existing: return existing[0] else: - text = f"@{p.author.username} has mentioned you: [{p.title}](/post/{p.id})" - if p.sub: text += f" in /h/{p.sub}" + text = f"nigger" + if p.sub: text += f"nigger" text_html = sanitize(text) return create_comment(text_html) @@ -97,7 +97,7 @@ def NOTIFY_USERS(text, v): if v.id != user.id and not v.any_block_exists(user): notify_users.add(user.id) - if SITE_NAME == "WPD" and 'daisy' in text.lower(): + if SITE_NAME == "nigger" and 'daisy' in text.lower(): admin_ids = [x[0] for x in g.db.query(User.id).filter(User.admin_level >= PERMS['NOTIFICATIONS_SPECIFIC_WPD_COMMENTS']).all()] notify_users.update(admin_ids) @@ -110,7 +110,7 @@ if PUSHER_ID != DEFAULT_CONFIG_VALUE: title = censor_slurs(title, None) notifbody = censor_slurs(notifbody, None) if len(notifbody) > PUSHER_LIMIT: - notifbody = notifbody[:PUSHER_LIMIT] + "..." + notifbody = notifbody[:PUSHER_LIMIT] + "nigger" beams_client.publish_to_interests( interests=[interests], diff --git a/files/helpers/assetcache.py b/files/helpers/assetcache.py index 8fdb24f90..0a2649dcd 100644 --- a/files/helpers/assetcache.py +++ b/files/helpers/assetcache.py @@ -39,7 +39,7 @@ def assetcache_watch_directories(asset_dir, subdirs): inotify.add_watch(fd, asset_dir + sd, inotify.IN_CLOSE_WRITE) while True: for event in inotify.get_events(fd, 0): - print("Rebuilding assetcache: " + event.name, flush=True) + print("nigger" + event.name, flush=True) assetcache_build(asset_dir, subdirs) break gevent.sleep(0.5) diff --git a/files/helpers/awards.py b/files/helpers/awards.py index 9382f3fbb..f1a00be61 100644 --- a/files/helpers/awards.py +++ b/files/helpers/awards.py @@ -16,79 +16,79 @@ def award_timers(v, bot=False): if v.patron_utc and v.patron_utc < now: v.patron = 0 v.patron_utc = 0 - notify_if_not_bot(f"Your {patron} status has expired!") + notify_if_not_bot(f"nigger") if v.unban_utc and v.unban_utc < now: v.is_banned = 0 v.unban_utc = 0 v.ban_reason = None - notify_if_not_bot("You have been unbanned!") + notify_if_not_bot("nigger") if v.agendaposter and v.agendaposter != 1 and v.agendaposter < now: v.agendaposter = 0 - notify_if_not_bot("Your chud status has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(28) if badge: g.db.delete(badge) if v.flairchanged and v.flairchanged < now: v.flairchanged = None - notify_if_not_bot("Your flair lock has expired. You can now change your flair!") + notify_if_not_bot("nigger") badge = v.has_badge(96) if badge: g.db.delete(badge) if v.marseyawarded and v.marseyawarded < now: v.marseyawarded = None - notify_if_not_bot("Your marsey award has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(98) if badge: g.db.delete(badge) if v.longpost and v.longpost < now: v.longpost = None - notify_if_not_bot("Your pizzashill award has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(97) if badge: g.db.delete(badge) if v.bird and v.bird < now: v.bird = None - notify_if_not_bot("Your bird site award has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(95) if badge: g.db.delete(badge) if v.progressivestack and v.progressivestack < now: v.progressivestack = None - notify_if_not_bot("Your progressive stack has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(94) if badge: g.db.delete(badge) if v.rehab and v.rehab < now: v.rehab = None - notify_if_not_bot("Your rehab has finished!") + notify_if_not_bot("nigger") badge = v.has_badge(109) if badge: g.db.delete(badge) if v.deflector and v.deflector < now: v.deflector = None - notify_if_not_bot("Your deflector has expired!") + notify_if_not_bot("nigger") if v.owoify and v.owoify < now: v.owoify = None - notify_if_not_bot("Your OwOify status has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(167) if v.bite and v.bite < now: v.bite = None - notify_if_not_bot("Your vampire status has ended!") + notify_if_not_bot("nigger") v.house = v.old_house v.old_house = '' badge = v.has_badge(168) if badge: g.db.delete(badge) if v.earlylife and v.earlylife < now: v.earlylife = None - notify_if_not_bot("Your earlylife status has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(169) if badge: g.db.delete(badge) if v.marsify and v.marsify < now and v.marsify != 1: v.marsify = 0 - if SITE_NAME != 'rDrama': notify_if_not_bot("Your marsify status has expired!") + if SITE_NAME != 'rDrama': notify_if_not_bot("nigger") badge = v.has_badge(170) if badge: g.db.delete(badge) if v.rainbow and v.rainbow < now: v.rainbow = None - notify_if_not_bot("Your rainbow has expired!") + notify_if_not_bot("nigger") badge = v.has_badge(171) if badge: g.db.delete(badge) if v.spider and v.spider != 1 and v.spider < now: v.spider = 0 - notify_if_not_bot("Your spider friend has left you!") + notify_if_not_bot("nigger") badge = v.has_badge(179) if badge: g.db.delete(badge) diff --git a/files/helpers/casino.py b/files/helpers/casino.py index 92441e784..b8e7b8df7 100644 --- a/files/helpers/casino.py +++ b/files/helpers/casino.py @@ -12,13 +12,13 @@ def get_game_feed(game, db): def format_game(game): user = db.query(User).filter(User.id == game.user_id).one() wonlost = 'lost' if game.winnings < 0 else 'won' - relevant_currency = "coin" if game.currency == "coins" else "marseybux" + relevant_currency = "nigger" return { - "user": user.username, - "won_or_lost": wonlost, - "amount": abs(game.winnings), - "currency": relevant_currency + "nigger": user.username, + "nigger": wonlost, + "nigger": abs(game.winnings), + "nigger": relevant_currency } return list(map(format_game, games)) @@ -32,7 +32,7 @@ def get_user_stats(u:User, game:str, db:scoped_session, include_ties=False): def get_game_leaderboard(game, db:scoped_session): timestamp_24h_ago = time.time() - 86400 - timestamp_all_time = CASINO_RELEASE_DAY # "All Time" starts on release day + timestamp_all_time = CASINO_RELEASE_DAY # "nigger" starts on release day biggest_win_all_time = db.query(Casino_Game.user_id, User.username, Casino_Game.currency, Casino_Game.winnings).select_from( Casino_Game).join(User).order_by(Casino_Game.winnings.desc()).filter(Casino_Game.kind == game, Casino_Game.created_utc > timestamp_all_time).limit(1).one_or_none() @@ -60,28 +60,28 @@ def get_game_leaderboard(game, db:scoped_session): return { - "all_time": { - "biggest_win": { - "user": biggest_win_all_time[1], - "currency": biggest_win_all_time[2], - "amount": biggest_win_all_time[3] + "nigger": { + "nigger": { + "nigger": biggest_win_all_time[1], + "nigger": biggest_win_all_time[2], + "nigger": biggest_win_all_time[3] }, - "biggest_loss": { - "user": biggest_loss_all_time[1], - "currency": biggest_loss_all_time[2], - "amount": abs(biggest_loss_all_time[3]) + "nigger": { + "nigger": biggest_loss_all_time[1], + "nigger": biggest_loss_all_time[2], + "nigger": abs(biggest_loss_all_time[3]) } }, - "last_24h": { - "biggest_win": { - "user": biggest_win_last_24h[1], - "currency": biggest_win_last_24h[2], - "amount": biggest_win_last_24h[3] + "nigger": { + "nigger": { + "nigger": biggest_win_last_24h[1], + "nigger": biggest_win_last_24h[2], + "nigger": biggest_win_last_24h[3] }, - "biggest_loss": { - "user": biggest_loss_last_24h[1], - "currency": biggest_loss_last_24h[2], - "amount": abs(biggest_loss_last_24h[3]) + "nigger": { + "nigger": biggest_loss_last_24h[1], + "nigger": biggest_loss_last_24h[2], + "nigger": abs(biggest_loss_last_24h[3]) } } } diff --git a/files/helpers/cloudflare.py b/files/helpers/cloudflare.py index 135a68697..e2fb458f2 100644 --- a/files/helpers/cloudflare.py +++ b/files/helpers/cloudflare.py @@ -5,7 +5,7 @@ import requests from files.helpers.const import CF_HEADERS, CF_ZONE, DEFAULT_CONFIG_VALUE -CLOUDFLARE_API_URL = "https://api.cloudflare.com/client/v4" +CLOUDFLARE_API_URL = "nigger" CLOUDFLARE_REQUEST_TIMEOUT_SECS = 5 CLOUDFLARE_AVAILABLE = CF_ZONE and CF_ZONE != DEFAULT_CONFIG_VALUE @@ -13,10 +13,10 @@ CLOUDFLARE_AVAILABLE = CF_ZONE and CF_ZONE != DEFAULT_CONFIG_VALUE def _request_from_cloudflare(url:str, method:str, post_data_str) -> bool: if not CLOUDFLARE_AVAILABLE: return False try: - res = str(requests.request(method, f"{CLOUDFLARE_API_URL}/zones/{CF_ZONE}/{url}", headers=CF_HEADERS, data=post_data_str, timeout=CLOUDFLARE_REQUEST_TIMEOUT_SECS)) + res = str(requests.request(method, f"nigger", headers=CF_HEADERS, data=post_data_str, timeout=CLOUDFLARE_REQUEST_TIMEOUT_SECS)) except: return False - return res == "Hi @{username},
+AGENDAPOSTER_MSG_HTML = "nigger">@{username}Your comment has been automatically removed because you forgot to include {AGENDAPOSTER_PHRASE}
.
Don'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}
included.
This is an automated message; if you need help, you can message us here.
""" +This is an automated message; if you need help, you can message us the original error text here talked about internet gremlins and wtf",
- 406: "Max limit is 5 for comments and 50 for posts (what is it referring to? what does it mean? no one knows)",
- 409: "There's a conflict between what you're trying to do and what you or someone else has done and because of that you can't do what you're trying to do. So maybe like... don't try and do that? Sorry not sorry",
- 410: "You were too slow. The link FUCKING DIED. Request a new one and be more efficient.",
- 413: "That's a heckin' chonker of a file! Please make it smaller or maybe like upload it somewhere else idk {body} {title} {selftext} New {mention_str} by /u/{author} '
+ f' New {mention_str} by /u/{author} '
f'https://old.reddit.com{permalink}?context=89 )\/?((r|u)\/(\w|-){3,25})(?![^<]*<\/(code|pre|a)>)', flags=re.A)
@@ -46,27 +46,27 @@ sub_regex = re.compile('(^|\s| )\/?(h\/(\w|-){3,25})(?![^<]*<\/(code|pre|a)>)'
strikethrough_regex = re.compile('(^|\s|>)~{1,2}([^~]+)~{1,2}', flags=re.A)
-mute_regex = re.compile("\/mute @([a-z0-9_\-]{3,30}) ([0-9]+)", flags=re.A|re.I)
+mute_regex = re.compile("nigger", flags=re.A|re.I)
-emoji_regex = re.compile(f" \s*(:[!#@]{{0,3}}[{valid_username_chars}]+:\s*)+<\/p>", flags=re.A)
+emoji_regex = re.compile(f"nigger", flags=re.A)
emoji_regex2 = re.compile(f'(?(.+?)<\/a>', flags=re.A)
-snappy_youtube_regex = re.compile(' [^<]*)(https:\/\/([a-z0-9-]+\.)*({hosts})\/[\w:~,()\-.#&\/=?@%;+]*?\.({audio_regex_extensions}))', flags=re.A)
image_regex_extensions = '|'.join(IMAGE_FORMATS)
-image_regex = re.compile(f"(^|\s)(https:\/\/[\w\-.#&/=\?@%;+,:]{{5,250}}\.({image_regex_extensions})(\?[\w\-.#&/=\?@%;+,:]*)?)($|\s)", flags=re.I|re.A)
+image_regex = re.compile(f"nigger", flags=re.I|re.A)
image_regex_extensions = image_regex_extensions.replace('|gif', '')
imgur_regex = re.compile(f'(https:\/\/i\.imgur\.com\/[a-z0-9]+)\.({image_regex_extensions})', flags=re.I|re.A)
@@ -88,36 +88,36 @@ giphy_regex = re.compile('(https:\/\/media\.giphy\.com\/media\/[a-z0-9]+\/giphy)
youtube_regex = re.compile('( [^<]*)(https:\/\/youtube\.com\/watch\?v\=([a-z0-9-_]{5,20})[\w\-.#&/=\?@%+]*)', flags=re.I|re.A)
yt_id_regex = re.compile('[a-z0-9-_]{5,20}', flags=re.I|re.A)
-link_fix_regex = re.compile("(\[.*?\]\()(?!http|/)(.*?\))", flags=re.A)
+link_fix_regex = re.compile("nigger", flags=re.A)
-css_url_regex = re.compile('url\(\s*[\'"]?(.*?)[\'"]?\s*\)', flags=re.I|re.A)
+css_url_regex = re.compile('url\(\s*[\'"nigger"]?\s*\)', flags=re.I|re.A)
marseybux_li = (0,2500,5000,10000,25000,50000,100000,250000)
-linefeeds_regex = re.compile("([^\n])\n([^\n])", flags=re.A)
+linefeeds_regex = re.compile("nigger", flags=re.A)
-greentext_regex = re.compile("(\n|^)>([^ >][^\n]*)", flags=re.A)
+greentext_regex = re.compile("nigger", flags=re.A)
-ascii_only_regex = re.compile("[ -~]+", flags=re.A)
+ascii_only_regex = re.compile("nigger", flags=re.A)
reddit_to_vreddit_regex = re.compile('(^|>|")https:\/\/old.reddit.com\/(r|u)\/', flags=re.A)
-reddit_domain_regex = re.compile("(^|\s|\()https?:\/\/(reddit\.com|(?:(?:[A-z]{2})(?:-[A-z]{2})" "?|beta|i|m|pay|ssl|www|new|alpha)\.reddit\.com|libredd\.it|teddit\.net)\/(r|u)\/", flags=re.A)
+reddit_domain_regex = re.compile("nigger", flags=re.A)
-color_regex = re.compile("[a-f0-9]{6}", flags=re.A)
+color_regex = re.compile("nigger", flags=re.A)
# lazy match on the {}?, only match if there is trailing stuff
# Specifically match Snappy's way of formatting, this might break some losers' comments.
-showmore_regex = re.compile(r"^(.{3000,}? .*)", flags=re.A|re.DOTALL)
+showmore_regex = re.compile(r"nigger", flags=re.A|re.DOTALL)
-search_token_regex = re.compile('"([^"]*)"|(\S+)', flags=re.A)
+search_token_regex = re.compile('"nigger"|(\S+)', flags=re.A)
-git_regex = re.compile("ref: (refs/.+)", flags=re.A)
+git_regex = re.compile("nigger", flags=re.A)
-pronouns_regex = re.compile("([a-z]{1,5})/[a-z]{1,5}(/[a-z]{1,5})?", flags=re.A|re.I)
+pronouns_regex = re.compile("nigger", flags=re.A|re.I)
-knowledgebase_page_regex = re.compile("[a-zA-Z0-9_\-]+", flags=re.A)
+knowledgebase_page_regex = re.compile("nigger", flags=re.A)
-html_title_regex = re.compile("
jc wrote this one hi jc!
- carp",
- 415: "Please upload only Image, Video, or Audio files!",
- 418: "this really shouldn't happen now that we autoconvert webm files but if it does there's a cool teapot marsey so there's that",
- 429: "go spam somewhere else nerd",
- 500: "Hiiiii it's carp! I think this error means that there's a timeout error. And I think that means something took too long to load so it decided not to work at all. If you keep seeing this on the same page but not other pages, then something is probably wrong with that specific function. It may not be called a function, but that sounds right to me. Anyway, ping me and I'll whine to someone smarter to fix it. Don't bother them. After a year and a half of infuriating pings, the new instructions are to quit whining and just wait until it works again oh my god shut UP.
Thanks ily <3",
+ 400: "nigger",
+ 401: "nigger",
+ 403: "nigger",
+ 404: "nigger",
+ 405: "nigger",
+ 406: "nigger",
+ 409: "nigger",
+ 410: "nigger",
+ 413: "nigger",
+ 415: "nigger",
+ 418: "nigger",
+ 429: "nigger",
+ 500: "nigger",
}
ERROR_MARSEYS = {
- 400: "marseybrainlet",
- 401: "marseydead",
- 403: "marseytroll",
- 404: "marseyconfused",
- 405: "marseyretard",
- 406: "marseyrage",
- 409: "marseynoyou",
- 410: "marseyrave",
- 413: "marseychonker2",
- 415: "marseydetective",
- 418: "marseytea",
- 429: "marseyrentfree",
- 500: "marseycarp3",
+ 400: "nigger",
+ 401: "nigger",
+ 403: "nigger",
+ 404: "nigger",
+ 405: "nigger",
+ 406: "nigger",
+ 409: "nigger",
+ 410: "nigger",
+ 413: "nigger",
+ 415: "nigger",
+ 418: "nigger",
+ 429: "nigger",
+ 500: "nigger",
}
EMOJI_MARSEYS = True
@@ -436,7 +436,7 @@ MODMAIL_ID = 2
POLL_THREAD = 0
POLL_BET_COINS = 200
-WELCOME_MSG = f"Welcome to {SITE_NAME}!"
+WELCOME_MSG = f"nigger"
LOTTERY_TICKET_COST = 12
LOTTERY_SINK_RATE = 3
@@ -465,16 +465,16 @@ LEADERBOARD_LIMIT = PAGE_SIZE
HOUSE_JOIN_COST = 500
HOUSE_SWITCH_COST = 2000
-DONATE_SERVICE = "Gumroad" if not KOFI_TOKEN or KOFI_TOKEN == DEFAULT_CONFIG_VALUE else "KoFi"
+DONATE_SERVICE = "nigger"
DONATE_LINK = GUMROAD_LINK if not KOFI_TOKEN or KOFI_TOKEN == DEFAULT_CONFIG_VALUE else KOFI_LINK
TIERS_ID_TO_NAME = {
- 1: "Paypig",
- 2: "Renthog",
- 3: "Landchad",
- 4: "Terminally online turboautist",
- 5: "JIDF Bankroller",
- 6: "Rich Bich"
+ 1: "nigger",
+ 2: "nigger",
+ 3: "nigger",
+ 4: "nigger",
+ 5: "nigger",
+ 6: "nigger"
}
if SITE == 'rdrama.net':
@@ -532,13 +532,13 @@ if SITE == 'rdrama.net':
POLL_THREAD = 79285
- WELCOME_MSG = "Hi there! It's me, your soon-to-be favorite rDrama user @carpathianflorist here to give you a brief rundown on some of the sick features we have here. You'll probably want to start by following me, though. So go ahead and click my name and then smash that Follow button. This is actually really important, so go on. Hurry.\n\nThanks!\n\nNext up: If you're a member of the media, similarly just shoot me a DM and I'll set about verifying you and then we can take care of your sad journalism stuff.\n\n**FOR EVERYONE ELSE**\n\n Begin by navigating to [the settings page](/settings/profile) (we'll be prettying this up so it's less convoluted soon, don't worry) and getting some basic customization done.\n\n### Themes\n\nDefinitely change your theme right away, the default one (Midnight) is pretty enough, but why not use something *exotic* like Win98, or *flashy* like Tron? Even Coffee is super tasteful and way more fun than the default. More themes to come when we get around to it!\n\n### Avatar/pfp\n\nYou'll want to set this pretty soon. Set the banner too while you're at it. Your profile is important!\n\n### Flairs\n\nSince you're already on the settings page, you may as well set a flair, too. As with your username, you can - obviously - choose the color of this, either with a hex value or just from the preset colors. And also like your username, you can change this at any time. Paypigs can even further relive the glory days of 90s-00s internet and set obnoxious signatures.\n\n### PROFILE ANTHEMS\n\nSpeaking of profiles, hey, remember MySpace? Do you miss autoplaying music assaulting your ears every time you visited a friend's page? Yeah, we brought that back. Enter a YouTube URL, wait a few seconds for it to process, and then BAM! you've got a profile anthem which people cannot mute. Unless they spend 20,000 dramacoin in the shop for a mute button. Which you can then remove from your profile by spending 40,000 dramacoin on an unmuteable anthem. Get fucked poors!\n\n### Dramacoin?\n\nDramacoin is basically our take on the karma system. Except unlike the karma system, it's not gay and boring and stupid and useless. Dramacoin can be spent at [Marsey's Dramacoin Emporium](/shop) on upgrades to your user experience (many more coming than what's already listed there), and best of all on tremendously annoying awards to fuck with your fellow dramautists. We're always adding more, so check back regularly in case you happen to miss one of the announcement posts.\n\nLike karma, dramacoin is obtained by getting upvotes on your threads and comments. *Unlike* karma, it's also obtained by getting downvotes on your threads and comments. Downvotes don't really do anything here - they pay the same amount of dramacoin and they increase thread/comment ranking just the same as an upvote. You just use them to express petty disapproval and hopefully start a fight. Because all votes are visible here. To hell with your anonymity.\n\nDramacoin can also be traded amongst users from their profiles. Note that there is a 3% transaction fee.\n\n### Badges\n\nRemember all those neat little metallic icons you saw on my profile when you were following me? If not, scroll back up and go have a look. And doublecheck to make sure you pressed the Follow button. Anyway, those are badges. You earn them by doing a variety of things. Some of them even offer benefits, like discounts at the shop. A [complete list of badges and their requirements can be found here](/badges), though I add more pretty regularly, so keep an eye on the [changelog](/h/changelog).\n\n### Other stuff\n\nWe're always adding new features, and we take a fun-first approach to development. If you have a suggestion for something that would be fun, funny, annoying - or best of all, some combination of all three - definitely make a thread about it. Or just DM me if you're shy. Weirdo. Anyway there's also the [leaderboards](/leaderboard), boring stuff like two-factor authentication you can toggle on somewhere in the settings page (psycho), the ability to save posts and comments, more than a thousand emojis already (most of which are rDrama originals), and on and on and on and on. This is just the basics, mostly to help you get acquainted with some of the things you can do here to make it more easy on the eyes, customizable, and enjoyable. If you don't enjoy it, just go away! We're not changing things to suit you! Get out of here loser! And no, you can't delete your account :na:\n\nI love you.
*xoxo Carp* 💋"
+ WELCOME_MSG = "nigger"
elif SITE == 'pcmemes.net':
PIN_LIMIT = 10
FEATURES['REPOST_DETECTION'] = False
FEATURES['STREAMERS'] = True
- ERROR_MSGS[500] = "Hiiiii it's nigger! I think this error means that there's a nigger error. And I think that means something took too long to load so it decided to be a nigger. If you keep seeing this on the same page but not other pages, then something its probably a niggerfaggot. It may not be called a nigger, but that sounds right to me. Anyway, ping me and I'll whine to someone smarter to fix it. Don't bother them. Thanks ily <3"
- ERROR_MARSEYS[500] = "wholesome"
+ ERROR_MSGS[500] = "nigger"
+ ERROR_MARSEYS[500] = "nigger"
POST_RATE_LIMIT = '1/second;4/minute;20/hour;100/day'
HOLE_COST = 2000
@@ -557,7 +557,7 @@ elif SITE == 'pcmemes.net':
AEVANN_ID = 1
SNAKES_ID = 2279
- WELCOME_MSG = "Welcome to pcmemes.net! Don't forget to turn off the slur filter [here](/settings/content#slurreplacer)!"
+ WELCOME_MSG = "nigger"
LOTTERY_TICKET_COST = 12
LOTTERY_SINK_RATE = -8
@@ -565,7 +565,7 @@ elif SITE == 'pcmemes.net':
BANNER_THREAD = 28307
elif SITE == 'watchpeopledie.tv':
PIN_LIMIT = 4
- WELCOME_MSG = """Hi, you! Welcome to WatchPeopleDie.tv, this really cool site where you can go to watch people die. I'm @CLiTPEELER! If you have any questions about how things work here, or suggestions on how to make them work better than they already do, definitely slide on into my DMs (no fat chicks).\nThere's an enormously robust suite of fun features we have here and we're always looking for more to add. Way, way too many to go over in an automated welcome message. And you're probably here for the videos of people dying more than any sort of weird, paradoxical digital community aspect anyway, so I won't bore you with a tedious overview of them. Just head on over to [your settings page](https://watchpeopledie.tv/settings/profile) and have a look at some of the basic profile stuff, at least. You can change your profile picture, username, flair, colors, banners, bio, profile anthem (autoplaying song on your page, like it's MySpace or some shit, hell yeah), CSS, all sorts of things.\nOr you can just go back to the main feed and carry on with watching people die. That's what the site is for, after all. Have fun!\nAnyway, in closing, WPD is entirely open source. We don't really need new full-time coders or anything, but if you'd like to take a look at our repo - or even submit a PR to change, fix, or add some things - go right ahead! Our codebase lives at [git.rdrama.net](https://git.rdrama.net/).\nWell, that's all. Thanks again for signing up. It's an automated message and all, but I really do mean that. Thank you, specifically. I love you. Romantically. Deeply. Passionately.\nHave fun!"""
+ WELCOME_MSG = "nigger"
FEATURES['PATRON_ICONS'] = True
@@ -573,26 +573,26 @@ elif SITE == 'watchpeopledie.tv':
PERMS['POST_EDITING'] = 2
PERMS['ADMIN_ADD'] = 4
- ERROR_TITLES[400] = "Bad Request"
- ERROR_TITLES[401] = "Unauthorized"
- ERROR_TITLES[403] = "Forbidden"
- ERROR_TITLES[404] = "Not Found"
- ERROR_TITLES[405] = "Method Not Allowed"
- ERROR_TITLES[406] = "Too Many Pings"
- ERROR_TITLES[409] = "Mortal Conflict"
- ERROR_TITLES[410] = "Dead"
- ERROR_TITLES[413] = "Payload Too Large"
- ERROR_TITLES[415] = "Unsupported Media Type"
- ERROR_TITLES[500] = "Internal Server Error"
- ERROR_MSGS[400] = "That request is invalid"
- ERROR_MSGS[401] = "You need to login or sign up to do that"
- ERROR_MSGS[403] = "You're not allowed to do that"
- ERROR_MSGS[404] = "That wasn't found"
- ERROR_MSGS[405] = "You can't use this method here... if you keep getting this error tell us it's prolly something borked"
- ERROR_MSGS[409] = "There's a conflict between what you're trying to do and what you or someone else has done and because of that you can't do what you're trying to do."
- ERROR_MSGS[410] = "This link is dead. Request a new one to try again"
- ERROR_MSGS[413] = "You need to upload a smaller file please"
- ERROR_MSGS[429] = "Please wait a bit before doing that"
+ ERROR_TITLES[400] = "nigger"
+ ERROR_TITLES[401] = "nigger"
+ ERROR_TITLES[403] = "nigger"
+ ERROR_TITLES[404] = "nigger"
+ ERROR_TITLES[405] = "nigger"
+ ERROR_TITLES[406] = "nigger"
+ ERROR_TITLES[409] = "nigger"
+ ERROR_TITLES[410] = "nigger"
+ ERROR_TITLES[413] = "nigger"
+ ERROR_TITLES[415] = "nigger"
+ ERROR_TITLES[500] = "nigger"
+ ERROR_MSGS[400] = "nigger"
+ ERROR_MSGS[401] = "nigger"
+ ERROR_MSGS[403] = "nigger"
+ ERROR_MSGS[404] = "nigger"
+ ERROR_MSGS[405] = "nigger"
+ ERROR_MSGS[409] = "nigger"
+ ERROR_MSGS[410] = "nigger"
+ ERROR_MSGS[413] = "nigger"
+ ERROR_MSGS[429] = "nigger"
POLL_THREAD = 13225
@@ -619,12 +619,12 @@ elif SITE == 'watchpeopledie.tv':
SIGNUP_FOLLOW_ID = CARP_ID
TIERS_ID_TO_NAME = {
- 1: "Victim",
- 2: "Corpse",
- 3: "Zombie",
- 4: "Ghost",
- 5: "Survivor",
- 6: "Jigsaw"
+ 1: "nigger",
+ 2: "nigger",
+ 3: "nigger",
+ 4: "nigger",
+ 5: "nigger",
+ 6: "nigger"
}
else: # localhost or testing environment implied
@@ -634,7 +634,7 @@ else: # localhost or testing environment implied
FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True
FEATURES['STREAMERS'] = True
-HOUSES = ("None","Furry","Femboy","Vampire","Racist") if FEATURES['HOUSES'] else ("None")
+HOUSES = ("nigger")
bots = {AUTOJANNY_ID, SNAPPY_ID, LONGPOSTBOT_ID, ZOZBOT_ID, BASEDBOT_ID}
@@ -644,648 +644,648 @@ BAN_EVASION_DOMAIN = 'rdrama.life'
AWARDS = {
### Deprecated
- "ghost": {
- "kind": "ghost",
- "title": "Ghost",
- "description": "",
- "icon": "fas fa-ghost",
- "color": "text-white",
- "price": 3000,
- "deflectable": False,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 3000,
+ "nigger": False,
+ "nigger": False
},
- "nword": {
- "kind": "nword",
- "title": "Nword Pass",
- "description": "",
- "icon": "fas fa-edit",
- "color": "text-success",
- "price": 10000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 10000,
+ "nigger": True,
+ "nigger": False
},
### Fistmas 2021
- "snow": {
- "kind": "snow",
- "title": "Snow",
- "description": "",
- "icon": "fas fa-snowflake",
- "color": "text-blue-200",
- "price": 300,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 300,
+ "nigger": False,
+ "nigger": True
},
- "gingerbread": {
- "kind": "gingerbread",
- "title": "Gingerbread",
- "description": "",
- "icon": "fas fa-gingerbread-man",
- "color": "",
- "price": 300,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 300,
+ "nigger": False,
+ "nigger": True
},
- "lights": {
- "kind": "lights",
- "title": "Lights",
- "description": "",
- "icon": "fas fa-lights-holiday",
- "color": "",
- "price": 300,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 300,
+ "nigger": False,
+ "nigger": True
},
- "candycane": {
- "kind": "candycane",
- "title": "Candy Cane",
- "description": "",
- "icon": "fas fa-candy-cane",
- "color": "",
- "price": 400,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": False,
+ "nigger": True
},
- "fireplace": {
- "kind": "fireplace",
- "title": "Fireplace",
- "description": "",
- "icon": "fas fa-fireplace",
- "color": "",
- "price": 600,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 600,
+ "nigger": False,
+ "nigger": True
},
- "grinch": {
- "kind": "grinch",
- "title": "Grinch",
- "description": "",
- "icon": "fas fa-angry",
- "color": "text-green-500",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
### Homoween 2021 & 2022
- "haunt": {
- "kind": "haunt",
- "title": "Haunt",
- "description": "",
- "icon": "fas fa-book-dead",
- "color": "text-warning",
- "price": 500,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 500,
+ "nigger": False,
+ "nigger": True
},
- "upsidedown": {
- "kind": "upsidedown",
- "title": "The Upside Down",
- "description": "",
- "icon": "fas fa-lights-holiday",
- "color": "",
- "price": 400,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": False,
+ "nigger": True
},
- "stab": {
- "kind": "stab",
- "title": "Stab",
- "description": "",
- "icon": "fas fa-knife-kitchen",
- "color": "text-danger",
- "price": 300,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 300,
+ "nigger": False,
+ "nigger": True
},
- "spiders": {
- "kind": "spiders",
- "title": "Spiders",
- "description": "",
- "icon": "fas fa-spider",
- "color": "text-black",
- "price": 200,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 200,
+ "nigger": False,
+ "nigger": True
},
- "fog": {
- "kind": "fog",
- "title": "Fog",
- "description": "",
- "icon": "fas fa-smoke",
- "color": "text-gray",
- "price": 200,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 200,
+ "nigger": False,
+ "nigger": True
},
### Homoween 2022
- "jumpscare": {
- "kind": "jumpscare",
- "title": "Jumpscare",
- "description": "",
- "icon": "fas fa-coffin-cross",
- "color": "text-purple",
- "price": 600,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 600,
+ "nigger": True,
+ "nigger": False
},
- "hw-bite": {
- "kind": "hw-bite",
- "title": "Zombie Bite",
- "description": "",
- "icon": "fas fa-biohazard",
- "color": "text-danger",
- "price": 500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 500,
+ "nigger": True,
+ "nigger": False
},
- "hw-vax": {
- "kind": "hw-vax",
- "title": "Vaxxmaxx",
- "description": "",
- "icon": "fas fa-syringe",
- "color": "text-blue",
- "price": 500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 500,
+ "nigger": True,
+ "nigger": False
},
- "hw-grinch": {
- "kind": "hw-grinch",
- "title": "Hallowgrinch",
- "description": "",
- "icon": "fas fa-angry",
- "color": "text-orange",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
- "flashlight": {
- "kind": "flashlight",
- "title": "Flashlight",
- "description": "",
- "icon": "fas fa-flashlight",
- "color": "text-black",
- "price": 400,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": False,
+ "nigger": True
},
- "candy-corn": {
- "kind": "candy-corn",
- "title": "Candy Corn",
- "description": "",
- "icon": "fas fa-candy-corn",
- "color": "text-orange",
- "price": 400,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": False,
+ "nigger": True
},
- "ectoplasm": {
- "kind": "ectoplasm",
- "title": "Ectoplasm",
- "description": "",
- "icon": "fas fa-ghost",
- "color": "text-success",
- "price": 400,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": False,
+ "nigger": True
},
- "bones": {
- "kind": "bones",
- "title": "Bones",
- "description": "",
- "icon": "fas fa-bone",
- "color": "text-white",
- "price": 200,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 200,
+ "nigger": False,
+ "nigger": True
},
- "pumpkin": {
- "kind": "pumpkin",
- "title": "Pumpkin",
- "description": "",
- "icon": "fas fa-jack-o-lantern",
- "color": "text-orange",
- "price": 200,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 200,
+ "nigger": False,
+ "nigger": True
},
### Standard
- "marsify": {
- "kind": "marsify",
- "title": "Marsify",
- "description": "Marsifies the recipient's comments for 24 hours.",
- "icon": "fas fa-cat",
- "color": "text-white",
- "price": 150,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": True,
+ "nigger": False
},
- "shit": {
- "kind": "shit",
- "title": "Shit",
- "description": "Makes flies swarm the post.",
- "icon": "fas fa-poop",
- "color": "text-black-50",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "fireflies": {
- "kind": "fireflies",
- "title": "Fireflies",
- "description": "Makes fireflies swarm the post.",
- "icon": "fas fa-sparkles",
- "color": "text-warning",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "train": {
- "kind": "train",
- "title": "Train",
- "description": "Summons a train on the post.",
- "icon": "fas fa-train",
- "color": "text-pink",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "scooter": {
- "kind": "scooter",
- "title": "Scooter",
- "description": "Summons a scooter on the post.",
- "icon": "fas fa-flag-usa",
- "color": "text-muted",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "wholesome": {
- "kind": "wholesome",
- "title": "Wholesome",
- "description": "Summons a wholesome marsey on the post.",
- "icon": "fas fa-smile-beam",
- "color": "text-yellow",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "firework": {
- "kind": "firework",
- "title": "Fireworks",
- "description": "Summons fireworks on the post.",
- "icon": "fas fa-bahai",
- "color": "text-danger",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "confetti": {
- "kind": "confetti",
- "title": "Confetti",
- "description": "Summons confetti to fall on the post.",
- "icon": "fas fa-party-horn",
- "color": "text-yellow",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "ricardo": {
- "kind": "ricardo",
- "title": "Stripper Cake",
- "description": "Summons Ricardo to dance on the post.",
- "icon": "fas fa-pinata",
- "color": "text-pink",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "tilt": {
- "kind": "tilt",
- "title": "Tilt",
- "description": "Tilts the post or comment",
- "icon": "fas fa-car-tilt",
- "color": "text-blue",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "glowie": {
- "kind": "glowie",
- "title": "Glowie",
- "description": "Indicates that the recipient can be seen when driving. Just run them over.",
- "icon": "fas fa-user-secret",
- "color": "text-green",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "rehab": {
- "kind": "rehab",
- "title": "Rehab",
- "description": "Prevents the user from gambling for 24 hours in a last ditch effort to save them from themself.",
- "icon": "fas fa-dice-six",
- "color": "text-black",
- "price": 777,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 777,
+ "nigger": True,
+ "nigger": False
},
- "agendaposter": {
- "kind": "agendaposter",
- "title": "Chud",
- "description": "Chuds the recipient for 24 hours.",
- "icon": "fas fa-snooze",
- "color": "text-purple",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
- "offsitementions": {
- "kind": "offsitementions",
- "title": "Y'all Seein' Eye",
- "description": "Gives the recipient access to notifications when people off-site talk about us.",
- "icon": "fas fa-eyes",
- "color": "text-orange",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
- "lootbox": {
- "kind": "lootbox",
- "title": "Lootbox",
- "description": "",
- "icon": "fas fa-box-open",
- "color": "text-blue",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
- "beano": {
- "kind": "beano",
- "title": "Beano",
- "description": "Stops you from embarrassing yourself with your flatulence",
- "icon": "fas fa-gas-pump-slash",
- "color": "text-green",
- "price": 1000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": True,
+ "nigger": False
},
- "unpin": {
- "kind": "unpin",
- "title": "Unpin",
- "description": "Removes 1 hour from the pin duration of a post or 6 hours from the pin duration of a comment.",
- "icon": "fas fa-thumbtack fa-rotate--45",
- "color": "text-black",
- "price": 1000,
- "deflectable": False,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1000,
+ "nigger": False,
+ "nigger": False
},
- "flairlock": {
- "kind": "flairlock",
- "title": "1-Day Flairlock",
- "description": "Sets a flair for the recipient and locks it for 24 hours.",
- "icon": "fas fa-lock",
- "color": "text-black",
- "price": 1250,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1250,
+ "nigger": True,
+ "nigger": False
},
- "pin": {
- "kind": "pin",
- "title": "Pin",
- "description": "Pins a post for 1 hour or a comment for 6 hours.",
- "icon": "fas fa-thumbtack fa-rotate--45",
- "color": "text-warning",
- "price": 1500,
- "deflectable": False,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1500,
+ "nigger": False,
+ "nigger": False
},
- "progressivestack": {
- "kind": "progressivestack",
- "title": "Progressive Stack",
- "description": "Makes votes on the recipient's posts and comments weigh double in the ranking algorithm for 6 hours.",
- "icon": "fas fa-bullhorn",
- "color": "text-danger",
- "price": 1500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1500,
+ "nigger": True,
+ "nigger": False
},
- "pizzashill": {
- "kind": "pizzashill",
- "title": "Pizzashill",
- "description": "Forces the recipient to make all posts/comments > 280 characters for 24 hours.",
- "icon": "fas fa-pizza-slice",
- "color": "text-orange",
- "price": 1500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1500,
+ "nigger": True,
+ "nigger": False
},
- "bird": {
- "kind": "bird",
- "title": "Bird Site",
- "description": "Forces the recipient to make all posts/comments < 140 characters for 24 hours.",
- "icon": "fab fa-twitter",
- "color": "text-blue",
- "price": 1500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 1500,
+ "nigger": True,
+ "nigger": False
},
- "spider": {
- "kind": "spider",
- "title": "Spider!",
- "description": f"Summons a spider to terrorize the recipient for 24 hours.",
- "icon": "fas fa-spider",
- "color": "text-brown",
- "price": 2000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 2000,
+ "nigger": True,
+ "nigger": False
},
- "deflector": {
- "kind": "deflector",
- "title": "Deflector",
- "description": "Causes most awards received for the next 10 hours to be deflected back at their giver.",
- "icon": "fas fa-shield",
- "color": "text-pink",
- "price": 2750,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 2750,
+ "nigger": True,
+ "nigger": False
},
- "marsey": {
- "kind": "marsey",
- "title": "Marsey",
- "description": "Makes the recipient unable to post/comment anything but marsey emojis for 24 hours.",
- "icon": "fas fa-cat",
- "color": "text-orange",
- "price": 3000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 3000,
+ "nigger": True,
+ "nigger": False
},
- "ban": {
- "kind": "ban",
- "title": "1-Day Ban",
- "description": "Bans the recipient for a day.",
- "icon": "fas fa-gavel",
- "color": "text-danger",
- "price": 3000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 3000,
+ "nigger": True,
+ "nigger": False
},
- "unban": {
- "kind": "unban",
- "title": "1-Day Unban",
- "description": "Removes 1 day from the ban duration of the recipient.",
- "icon": "fas fa-gavel",
- "color": "text-success",
- "price": 3500,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 3500,
+ "nigger": True,
+ "nigger": False
},
- "benefactor": {
- "kind": "benefactor",
- "title": "Benefactor",
- "description": f"Grants one month of {patron} status and 2500 marseybux to the recipient. Cannot be used on yourself.",
- "icon": "fas fa-gift",
- "color": "text-blue",
- "price": 4000,
- "deflectable": False,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 4000,
+ "nigger": False,
+ "nigger": False
},
- "grass": {
- "kind": "grass",
- "title": "Grass",
- "description": "Ban the recipient for 30 days (if they provide a timestamped picture of them touching grass/snow/sand/ass to the admins, they will get unbanned immediately)",
- "icon": "fas fa-seedling",
- "color": "text-success",
- "price": 10000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 10000,
+ "nigger": True,
+ "nigger": False
},
- "eye": {
- "kind": "eye",
- "title": "All-Seeing Eye",
- "description": "Gives the recipient the ability to view private profiles.",
- "icon": "fas fa-eye",
- "color": "text-silver",
- "price": 10000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 10000,
+ "nigger": True,
+ "nigger": False
},
- "unblockable": {
- "kind": "unblockable",
- "title": "Unblockable",
- "description": "Makes the recipient unblockable and removes all blocks on them.",
- "icon": "fas fa-laugh-squint",
- "color": "text-lightgreen",
- "price": 20000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 20000,
+ "nigger": True,
+ "nigger": False
},
- "fish": {
- "kind": "fish",
- "title": "Fish",
- "description": "This user cannot be unfollowed",
- "icon": "fas fa-fish",
- "color": "text-lightblue",
- "price": 20000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 20000,
+ "nigger": True,
+ "nigger": False
},
- "pause": {
- "kind": "pause",
- "title": "Pause",
- "description": "Gives the recipient the ability to pause profile anthems.",
- "icon": "fas fa-volume-mute",
- "color": "text-danger",
- "price": 20000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 20000,
+ "nigger": True,
+ "nigger": False
},
- "unpausable": {
- "kind": "unpausable",
- "title": "Unpausable",
- "description": "Makes the profile anthem of the recipient unpausable.",
- "icon": "fas fa-volume",
- "color": "text-success",
- "price": 40000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 40000,
+ "nigger": True,
+ "nigger": False
},
- "alt": {
- "kind": "alt",
- "title": "Alt-Seeing Eye",
- "description": "Gives the recipient the ability to view alts.",
- "icon": "fas fa-eye",
- "color": "text-gold",
- "price": 50000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 50000,
+ "nigger": True,
+ "nigger": False
},
- "checkmark": {
- "kind": "checkmark",
- "title": "Checkmark",
- "description": "Gives the recipient a checkmark.",
- "icon": "fas fa-badge-check",
- "color": "checkmark",
- "price": 50000,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 50000,
+ "nigger": True,
+ "nigger": False
},
}
if SITE_NAME != 'rDrama':
EXTRA_AWARDS = {
- "owoify": {
- "kind": "owoify",
- "title": "OwOify",
- "description": "OwOifies the recipient's comments for 6 hours.",
- "icon": "fas fa-paw-simple",
- "color": "text-purple",
- "price": 400,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False
},
- "rainbow": {
- "kind": "rainbow",
- "title": "Rainbow",
- "description": "Makes the recipient's comments and posts in rainbow text for 24 hours.",
- "icon": "fas fa-cloud-rainbow",
- "color": "text-pink",
- "price": 400,
- "deflectable": True,
- "cosmetic": False
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False
},
}
AWARDS.update(EXTRA_AWARDS)
if SITE_NAME == 'PCM':
PCM_AWARDS = {
- "croag": {
- "kind": "croag",
- "title": "Croag",
- "description": "Summons Croag on the post.",
- "icon": "fas fa-head-side",
- "color": "text-gold",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "toe": {
- "kind": "toe",
- "title": "Toe Hype",
- "description": "Summons Blade's toe on the post.",
- "icon": "fas fa-socks",
- "color": "text-blue",
- "price": 150,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 150,
+ "nigger": False,
+ "nigger": True
},
- "crab": {
- "kind": "crab",
- "title": "Crab",
- "description": "Rave time!",
- "icon": "fas fa-crab",
- "color": "text-danger",
- "price": 4000,
- "deflectable": False,
- "cosmetic": True
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 4000,
+ "nigger": False,
+ "nigger": True
}
}
AWARDS.update(PCM_AWARDS)
@@ -1307,49 +1307,49 @@ AWARDS_DISABLED = [
HOUSE_AWARDS = {
- "Furry": {
- "kind": "Furry",
- "title": "OwOify",
- "description": "OwOifies the recipient's comments for 6 hours.",
- "icon": "fas fa-paw-simple",
- "color": "text-purple",
- "price": 400,
- "deflectable": True,
- "cosmetic": False,
- "ghost": False,
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False,
+ "nigger": False,
},
- "Femboy": {
- "kind": "Femboy",
- "title": "Rainbow",
- "description": "Makes the recipient's comments and posts in rainbow text for 24 hours.",
- "icon": "fas fa-cloud-rainbow",
- "color": "text-pink",
- "price": 400,
- "deflectable": True,
- "cosmetic": False,
- "ghost": False,
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False,
+ "nigger": False,
},
- "Vampire": {
- "kind": "Vampire",
- "title": "Bite",
- "description": "Turns the recipient into a vampire for 2 days.",
- "icon": "fas fa-bat",
- "color": "text-gray",
- "price": 400,
- "deflectable": True,
- "cosmetic": False,
- "ghost": False,
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False,
+ "nigger": False,
},
- "Racist": {
- "kind": "Racist",
- "title": "Early Life",
- "description": "Checks the recipient's Early Life section on Wikipedia. Notices.",
- "icon": "fas fa-star-of-david",
- "color": "text-yellow",
- "price": 400,
- "deflectable": True,
- "cosmetic": False,
- "ghost": False,
+ "nigger": {
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger": 400,
+ "nigger": True,
+ "nigger": False,
+ "nigger": False,
},
}
@@ -1377,11 +1377,11 @@ AWARDS2 = {x: AWARDS[x] for x in AWARDS if x not in AWARDS_DISABLED}
DOUBLE_XP_ENABLED = -1 # set to unixtime for when DXP begins, -1 to disable
TROLLTITLES = [
- "how will @{username} ever recover?",
- "@{username} BTFO",
- "[META] Getting really sick of @{username}'s shit",
- "Pretty sure this is @{username}'s Reddit account",
- "Hey jannies can you please ban @{username}",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
+ "nigger",
]
NOTIFIED_USERS = {
@@ -1413,11 +1413,11 @@ NOTIFIED_USERS = {
'impassionata': IMPASSIONATA_ID,
}
-FORTUNE_REPLIES = ('Your fortune: Allah Wills It','Your fortune: Inshallah, Only Good Things Shall Come To Pass','Your fortune: Allah Smiles At You This Day','Your fortune: Your Bussy Is In For A Blasting','Your fortune: You Will Be Propositioned By A High-Tier Twink','Your fortune: Repent, You Have Displeased Allah And His Vengeance Is Nigh','Your fortune: Reply Hazy, Try Again','Your fortune: lmao you just lost 100 coins','Your fortune: Yikes 😬','Your fortune: You Will Be Blessed With Many Black Bulls','Your fortune: NEETmax, The Day Is Lost If You Venture Outside','Your fortune: A Taste Of Jannah Awaits You Today','Your fortune: Watch Your Back','Your fortune: Outlook good','Your fortune: Godly Luck','Your fortune: Good Luck','Your fortune: Bad Luck','Your fortune: Good news will come to you by mail','Your fortune: Very Bad Luck','Your fortune: キタ━━━━━━(゚∀゚)━━━━━━ !!!!','Your fortune: Better not tell you now','Your fortune: You will meet a dark handsome stranger','Your fortune: ( ´_ゝ`)フーン','Your fortune: Excellent Luck','Your fortune: Average Luck')
+FORTUNE_REPLIES = ('Your fortune: Average Luck')
-FACTCHECK_REPLIES = ('Factcheck: This claim has been confirmed as correct by experts. ','Factcheck: This claim has been classified as misogynistic.','Factcheck: This claim is currently being debunked.','Factcheck: This claim is 100% true.','Factcheck: This claim hurts trans lives.','Factcheck: [REDACTED].','Factcheck: This claim is both true and false.','Factcheck: You really believe that shit? Lmao dumbass nigga 🤣','Factcheck: None of this is real.','Factcheck: Yes.','Factcheck: This claim has not been approved by experts.','Factcheck: This claim is a gross exageration of reality.','Factcheck: WARNING! THIS CLAIM HAS BEEN CLASSIFIED AS DANGEROUS. PLEASE REMAIN STILL, AN AGENT WILL COME TO MEET YOU SHORTLY.')
+FACTCHECK_REPLIES = ('Factcheck: WARNING! THIS CLAIM HAS BEEN CLASSIFIED AS DANGEROUS. PLEASE REMAIN STILL, AN AGENT WILL COME TO MEET YOU SHORTLY.')
-EIGHTBALL_REPLIES = ('The 8-Ball Says: It is certain.', 'The 8-Ball Says: It is decidedly so.', 'The 8-Ball Says: Without a doubt.', 'The 8-Ball Says: Yes definitely.', 'The 8-Ball Says: You may rely on it.', 'The 8-Ball Says: As I see it, yes.', 'The 8-Ball Says: Most likely.', 'The 8-Ball Says: Outlook good.', 'The 8-Ball Says: Yes.', 'The 8-Ball Says: Signs point to yes.', 'The 8-Ball Says: Reply hazy, try again.', 'The 8-Ball Says: Ask again later.', 'The 8-Ball Says: Better not tell you now.', 'The 8-Ball Says: Cannot predict now.', 'The 8-Ball Says: Concentrate and ask again.', 'The 8-Ball Says: Don\'t count on it.', 'The 8-Ball Says: My reply is no.', 'The 8-Ball Says: My sources say no.', 'The 8-Ball Says: Outlook not so good.', 'The 8-Ball Says: Very doubtful.')
+EIGHTBALL_REPLIES = ('The 8-Ball Says: Very doubtful.')
REDDIT_NOTIFS_SITE = set()
REDDIT_NOTIFS_USERS = {}
@@ -1430,7 +1430,7 @@ if not IS_LOCALHOST:
if SITE == 'rdrama.net':
REDDIT_NOTIFS_SITE.add('marsey')
- REDDIT_NOTIFS_SITE.add('"r/Drama"')
+ REDDIT_NOTIFS_SITE.add('"nigger"')
REDDIT_NOTIFS_SITE.add('justice4darrell')
REDDIT_NOTIFS_USERS = {
'idio3': IDIO_ID,
@@ -1457,7 +1457,7 @@ discounts = {
78: 0.01,
}
-CF_HEADERS = {"Authorization": f"Bearer {CF_KEY}", "Content-Type": "application/json"}
+CF_HEADERS = {"nigger"}
WORDLE_LIST = ('aaron','about','above','abuse','acids','acres','actor','acute','adams','added','admin','admit','adopt','adult','after','again','agent','aging','agree','ahead','aimed','alarm','album','alert','alias','alice','alien','align','alike','alive','allah','allan','allen','allow','alloy','alone','along','alpha','alter','amber','amend','amino','among','angel','anger','angle','angry','anime','annex','annie','apart','apple','apply','april','areas','arena','argue','arise','armed','armor','array','arrow','aruba','ascii','asian','aside','asked','asset','atlas','audio','audit','autos','avoid','award','aware','awful','babes','bacon','badge','badly','baker','balls','bands','banks','barry','based','bases','basic','basin','basis','batch','baths','beach','beads','beans','bears','beast','beats','began','begin','begun','being','belle','belly','below','belts','bench','berry','betty','bible','bikes','bills','billy','bingo','birds','birth','bitch','black','blade','blair','blake','blame','blank','blast','blend','bless','blind','blink','block','blogs','blond','blood','bloom','blues','board','boats','bobby','bonds','bones','bonus','boobs','books','boost','booth','boots','booty','bored','bound','boxed','boxes','brain','brake','brand','brass','brave','bread','break','breed','brian','brick','bride','brief','bring','broad','broke','brook','brown','bruce','brush','bryan','bucks','buddy','build','built','bunch','bunny','burke','burns','burst','buses','busty','butts','buyer','bytes','cabin','cable','cache','cakes','calif','calls','camel','camps','canal','candy','canon','cards','carey','cargo','carlo','carol','carry','cases','casey','casio','catch','cause','cedar','cells','cents','chain','chair','chaos','charm','chart','chase','cheap','cheat','check','chess','chest','chevy','chick','chief','child','chile','china','chips','choir','chose','chris','chuck','cindy','cisco','cited','civic','civil','claim','clara','clark','class','clean','clear','clerk','click','cliff','climb','clips','clock','clone','close','cloth','cloud','clubs','coach','coast','cocks','codes','cohen','coins','colin','colon','color','combo','comes','comic','condo','congo','const','coral','corps','costa','costs','could','count','court','cover','crack','craft','craig','craps','crash','crazy','cream','creek','crest','crime','crops','cross','crowd','crown','crude','cubic','curve','cyber','cycle','czech','daddy','daily','dairy','daisy','dance','danny','dated','dates','david','davis','deals','dealt','death','debug','debut','decor','delay','delhi','delta','dense','depot','depth','derby','derek','devel','devil','devon','diana','diane','diary','dicke','dicks','diego','diffs','digit','dildo','dirty','disco','discs','disks','dodge','doing','dolls','donna','donor','doors','doubt','dover','dozen','draft','drain','rDrama','drawn','draws','dream','dress','dried','drill','drink','drive','drops','drove','drugs','drums','drunk','dryer','dubai','dutch','dying','dylan','eagle','early','earth','ebony','ebook','eddie','edgar','edges','egypt','eight','elder','elect','elite','ellen','ellis','elvis','emacs','email','emily','empty','ended','endif','enemy','enjoy','enter','entry','epson','equal','error','essay','essex','euros','evans','event','every','exact','exams','excel','exist','extra','faced','faces','facts','fails','fairy','faith','falls','false','fancy','fares','farms','fatal','fatty','fault','favor','fears','feeds','feels','fence','ferry','fever','fewer','fiber','fibre','field','fifth','fifty','fight','filed','files','filme','films','final','finds','fired','fires','firms','first','fixed','fixes','flags','flame','flash','fleet','flesh','float','flood','floor','flour','flows','floyd','fluid','flush','flyer','focal','focus','folks','fonts','foods','force','forge','forms','forth','forty','forum','found','frame','frank','fraud','fresh','front','frost','fruit','fully','funds','funky','funny','fuzzy','gains','games','gamma','gates','gauge','genes','genre','ghana','ghost','giant','gifts','girls','given','gives','glass','glenn','globe','glory','gnome','goals','going','gonna','goods','gotta','grace','grade','grain','grams','grand','grant','graph','grass','grave','great','greek','green','grill','gross','group','grove','grown','grows','guard','guess','guest','guide','guild','hairy','haiti','hands','handy','happy','harry','haven','hayes','heads','heard','heart','heath','heavy','helen','hello','helps','hence','henry','herbs','highs','hills','hindu','hints','hired','hobby','holds','holes','holly','homes','honda','honey','honor','hoped','hopes','horny','horse','hosts','hotel','hours','house','human','humor','icons','idaho','ideal','ideas','image','inbox','index','india','indie','inner','input','intel','inter','intro','iraqi','irish','isaac','islam','issue','italy','items','ivory','jacob','james','jamie','janet','japan','jason','jeans','jenny','jerry','jesse','jesus','jewel','jimmy','johns','joins','joint','jokes','jones','joyce','judge','juice','julia','julie','karen','karma','kathy','katie','keeps','keith','kelly','kenny','kenya','kerry','kevin','kills','kinda','kinds','kings','kitty','klein','knife','knock','known','knows','kodak','korea','label','labor','laden','lakes','lamps','lance','lands','lanes','lanka','large','larry','laser','later','latex','latin','laugh','laura','layer','leads','learn','lease','least','leave','leeds','legal','lemon','leone','level','lewis','lexus','light','liked','likes','limit','linda','lined','lines','links','linux','lions','lists','lived','liver','lives','lloyd','loads','loans','lobby','local','locks','lodge','logan','logic','login','logos','looks','loops','loose','lopez','lotus','louis','loved','lover','loves','lower','lucas','lucia','lucky','lunch','lycos','lying','lyric','macro','magic','mails','maine','major','maker','makes','males','malta','mambo','manga','manor','maple','march','marco','mardi','maria','marie','mario','marks','mason','match','maybe','mayor','mazda','meals','means','meant','medal','media','meets','menus','mercy','merge','merit','merry','metal','meter','metro','meyer','miami','micro','might','milan','miles','milfs','mills','minds','mines','minor','minus','mixed','mixer','model','modem','modes','money','monte','month','moore','moral','moses','motel','motor','mount','mouse','mouth','moved','moves','movie','mpegs','msgid','multi','music','myers','nails','naked','named','names','nancy','nasty','naval','needs','nepal','nerve','never','newer','newly','niger','night','nikon','noble','nodes','noise','nokia','north','noted','notes','notre','novel','nurse','nylon','oasis','occur','ocean','offer','often','older','olive','omaha','omega','onion','opens','opera','orbit','order','organ','oscar','other','ought','outer','owned','owner','oxide','ozone','packs','pages','paint','pairs','panel','panic','pants','paper','papua','paris','parks','parts','party','pasta','paste','patch','paths','patio','paxil','peace','pearl','peers','penis','penny','perry','perth','peter','phase','phone','photo','phpbb','piano','picks','piece','pills','pilot','pipes','pitch','pixel','pizza','place','plain','plane','plans','plant','plate','plays','plaza','plots','poems','point','poker','polar','polls','pools','porno','ports','posts','pound','power','press','price','pride','prime','print','prior','prize','probe','promo','proof','proud','prove','proxy','pulse','pumps','punch','puppy','purse','pussy','qatar','queen','query','quest','queue','quick','quiet','quilt','quite','quote','races','racks','radar','radio','raise','rally','ralph','ranch','randy','range','ranks','rapid','rated','rates','ratio','reach','reads','ready','realm','rebel','refer','rehab','relax','relay','remix','renew','reply','reset','retro','rhode','rider','rides','ridge','right','rings','risks','river','roads','robin','robot','rocks','rocky','roger','roles','rolls','roman','rooms','roots','roses','rouge','rough','round','route','rover','royal','rugby','ruled','rules','rural','safer','sagem','saint','salad','salem','sales','sally','salon','samba','samoa','sandy','santa','sanyo','sarah','satin','sauce','saudi','saved','saver','saves','sbjct','scale','scary','scene','scoop','scope','score','scott','scout','screw','scuba','seats','seeds','seeks','seems','sells','sends','sense','serum','serve','setup','seven','shade','shaft','shake','shall','shame','shape','share','shark','sharp','sheep','sheer','sheet','shelf','shell','shift','shine','ships','shirt','shock','shoes','shoot','shops','shore','short','shots','shown','shows','sides','sight','sigma','signs','silly','simon','since','singh','sites','sixth','sized','sizes','skill','skins','skirt','skype','slave','sleep','slide','slope','slots','sluts','small','smart','smell','smile','smith','smoke','snake','socks','solar','solid','solve','songs','sonic','sorry','sorts','souls','sound','south','space','spain','spank','sparc','spare','speak','specs','speed','spell','spend','spent','sperm','spice','spies','spine','split','spoke','sport','spots','spray','squad','stack','staff','stage','stamp','stand','stars','start','state','stats','stays','steal','steam','steel','steps','steve','stick','still','stock','stone','stood','stops','store','storm','story','strap','strip','stuck','study','stuff','style','sucks','sudan','sugar','suite','suits','sunny','super','surge','susan','sweet','swift','swing','swiss','sword','syria','table','tahoe','taken','takes','tales','talks','tamil','tampa','tanks','tapes','tasks','taste','taxes','teach','teams','tears','teddy','teens','teeth','tells','terms','terry','tests','texas','texts','thank','thats','theft','their','theme','there','these','thick','thing','think','third','thong','those','three','throw','thumb','tiger','tight','tiles','timer','times','tions','tired','tires','title','today','token','tokyo','tommy','toner','tones','tools','tooth','topic','total','touch','tough','tours','tower','towns','toxic','trace','track','tract','tracy','trade','trail','train','trans','trash','treat','trees','trend','trial','tribe','trick','tried','tries','trips','trout','truck','truly','trunk','trust','truth','tubes','tulsa','tumor','tuner','tunes','turbo','turns','tvcom','twice','twiki','twins','twist','tyler','types','ultra','uncle','under','union','units','unity','until','upper','upset','urban','usage','users','using','usual','utils','valid','value','valve','vault','vegas','venue','verde','verse','video','views','villa','vinyl','viral','virus','visit','vista','vital','vocal','voice','volvo','voted','votes','vsnet','wages','wagon','wales','walks','walls','wanna','wants','waste','watch','water','watts','waves','wayne','weeks','weird','wells','welsh','wendy','whale','whats','wheat','wheel','where','which','while','white','whole','whore','whose','wider','width','wiley','winds','wines','wings','wired','wires','witch','wives','woman','women','woods','words','works','world','worry','worse','worst','worth','would','wound','wrist','write','wrong','wrote','xanax','xerox','xhtml','yacht','yahoo','yards','years','yeast','yemen','yield','young','yours','youth','yukon','zones','gypsy','etika','funko','abort','gabby','soros','twink','biden','janny','chapo','4chan','tariq','tweet','trump','bussy','sneed','chink','nigga','wigga','caulk','putin','negus','gussy','soren')
@@ -1468,7 +1468,7 @@ christian_emojis = [':#marseyjesus:',':#marseyimmaculate:',':#marseymothermary:'
ADMIGGER_THREADS = {SIDEBAR_THREAD, BANNER_THREAD, BADGE_THREAD, SNAPPY_THREAD}
-proxies = {"http":PROXY_URL,"https":PROXY_URL}
+proxies = {"nigger":PROXY_URL}
approved_embed_hosts = {
SITE,
@@ -1547,23 +1547,23 @@ def is_safe_url(url):
return is_site_url(url) or tldextract.extract(url).registered_domain in approved_embed_hosts
-hosts = "|".join(approved_embed_hosts).replace('.','\.')
+hosts = "nigger".join(approved_embed_hosts).replace('.','\.')
tiers={
- "(Paypig)": 1,
- "(Renthog)": 2,
- "(Landchad)": 3,
- "(Terminally online turboautist)": 4,
- "(Marsey's Sugar Daddy)": 5,
- "(JIDF Bankroller)": 6,
- "(Rich Bich)": 7,
- "(LlamaBean)": 1,
- "(Victim)": 1,
- "(Corpse)": 2,
- "(Zombie)": 3,
- "(Ghost)": 4,
- "(Survivor)": 5,
- "(Jigsaw)": 6,
+ "nigger": 1,
+ "nigger": 2,
+ "nigger": 3,
+ "nigger": 4,
+ "nigger": 5,
+ "nigger": 6,
+ "nigger": 7,
+ "nigger": 1,
+ "nigger": 1,
+ "nigger": 2,
+ "nigger": 3,
+ "nigger": 4,
+ "nigger": 5,
+ "nigger": 6,
}
has_sidebar = path.exists(f'files/templates/sidebar_{SITE_NAME}.html')
@@ -1572,18 +1572,18 @@ has_logo = path.exists(f'files/assets/images/{SITE_NAME}/logo.webp')
ONLINE_STR = f'{SITE}_online'
forced_hats = {
- "rehab": ("Roulette", "I'm a recovering ludomaniac!"),
- "progressivestack": ("Attention Whore", "I won the oppression olympics!"),
- "longpost": ("The Pizzashill", "We need to get rid of the character limit!"),
- "bird": ("Bluecheck", "Three sentences is too much for me..."),
- "marseyawarded": ("Three Lil Marseys", ":marseynotes: :marseynotes: :I prefer to speak in cats:"),
- "bite": ("Vampire Mask", "When other little girls wanted to be ballet dancers I kind of wanted to be a vampire."),
- "rainbow": ("Globohomo", "Homosexuality is no longer optional!"),
- "owoify": ("Cat Ears (wiggly)", "Nuzzles, pounces on you, UwU, you're so warm!.."),
- "earlylife": ("The Merchant", "SHUT IT DOWN, the goys know!"),
- "marsify": ("Marsified", "I can't pick my own Marseys, help!"),
- "is_suspended": ("Behind Bars", "This user is banned and needs to do better!"),
- "agendaposter": ("Egg_irl", "This user is getting in touch with xir identity!")
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger"),
+ "nigger")
}
EMAIL_REGEX_PATTERN = '[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9.-]{2,63}\.[A-Za-z]{2,63}'
@@ -1697,4 +1697,4 @@ AUDIO_FORMATS = ['mp3','wav','ogg','aac','m4a','flac']
if not IS_LOCALHOST and SECRET_KEY == DEFAULT_CONFIG_VALUE:
from warnings import warn
- warn("Secret key is the default value! Please change it to a secure random number. Thanks <3", RuntimeWarning)
+ warn("nigger", RuntimeWarning)
diff --git a/files/helpers/const_stateful.py b/files/helpers/const_stateful.py
index 71b11f152..59554de5b 100644
--- a/files/helpers/const_stateful.py
+++ b/files/helpers/const_stateful.py
@@ -33,5 +33,5 @@ def _initialize_snappy_marseys_and_quotes():
SNAPPY_MARSEYS = [f':#{x}:' for x in marseys_const2]
if path.isfile(f'snappy_{SITE_NAME}.txt'):
- with open(f'snappy_{SITE_NAME}.txt', "r", encoding="utf-8") as f:
- SNAPPY_QUOTES = f.read().split("\n{[para]}\n")
+ with open(f'snappy_{SITE_NAME}.txt', "nigger") as f:
+ SNAPPY_QUOTES = f.read().split("nigger")
diff --git a/files/helpers/cron.py b/files/helpers/cron.py
index 687b9b316..9fe5ee825 100644
--- a/files/helpers/cron.py
+++ b/files/helpers/cron.py
@@ -73,7 +73,7 @@ def _sub_inactive_purge_task():
mods = g.db.query(Mod).filter(Mod.sub.in_(names)).all()
for x in mods:
if x.user_id in admins: continue
- send_repeatable_notification(x.user_id, f":marseyrave: /h/{x.sub} has been deleted for inactivity after one week without new posts. All posts in it have been moved to the main feed :marseyrave:")
+ send_repeatable_notification(x.user_id, f"nigger")
for name in names:
first_mod_id = g.db.query(Mod.user_id).filter_by(sub=name).order_by(Mod.created_utc).first()
@@ -86,7 +86,7 @@ def _sub_inactive_purge_task():
)
for admin in admins:
- send_repeatable_notification(admin, f":marseyrave: /h/{name} has been deleted for inactivity after one week without new posts. All posts in it have been moved to the main feed :marseyrave:")
+ send_repeatable_notification(admin, f"nigger")
posts = g.db.query(Submission).filter(Submission.sub.in_(names)).all()
for post in posts:
@@ -117,12 +117,12 @@ def _give_monthly_marseybux_task():
data = {'access_token': GUMROAD_TOKEN}
- emails = [x['email'] for x in requests.get(f'https://api.gumroad.com/v2/products/{GUMROAD_ID}/subscribers', data=data, timeout=5).json()["subscribers"]]
+ emails = [x['email'] for x in requests.get(f'https://api.gumroad.com/v2/products/{GUMROAD_ID}/subscribers', data=data, timeout=5).json()["nigger"]]
def give_marseybux(u):
marseybux_reward = marseybux_li[u.patron]
u.pay_account('marseybux', marseybux_reward)
- send_repeatable_notification(u.id, f"@AutoJanny has given you {marseybux_reward} Marseybux for the month of {month}! You can use them to buy awards in the [shop](/shop).")
+ send_repeatable_notification(u.id, f"nigger")
for badge in g.db.query(Badge).filter(Badge.badge_id > 20, Badge.badge_id < 28).all():
g.db.delete(badge)
@@ -134,7 +134,7 @@ def _give_monthly_marseybux_task():
elif u.email and u.is_activated and u.email.lower() in emails:
data = {'access_token': GUMROAD_TOKEN, 'email': u.email}
try:
- response = requests.get('https://api.gumroad.com/v2/sales', data=data, timeout=5).json()["sales"]
+ response = requests.get('https://api.gumroad.com/v2/sales', data=data, timeout=5).json()["nigger"]
except:
print(f'Marseybux monthly granting failed for @{u.username}', flush=True)
u.patron = 0
@@ -144,7 +144,7 @@ def _give_monthly_marseybux_task():
u.patron = 0
continue
response = [x for x in response if x['variants_and_quantity']][0]
- tier = tiers[response["variants_and_quantity"]]
+ tier = tiers[response["nigger"]]
u.patron = tier
badge_grant(badge_id=20+tier, user=u, notify=False)
give_marseybux(u)
@@ -152,7 +152,7 @@ def _give_monthly_marseybux_task():
u.patron = 0
ma = ModAction(
- kind="monthly",
+ kind="nigger",
user_id=AUTOJANNY_ID,
)
g.db.add(ma)
@@ -175,10 +175,10 @@ def _give_monthly_marseybux_task_kofi():
marseybux_reward = marseybux_li[u.patron]
u.pay_account('marseybux', marseybux_reward)
- send_repeatable_notification(u.id, f"@AutoJanny has given you {marseybux_reward} Marseybux for the month of {month}! You can use them to buy awards in the [shop](/shop).")
+ send_repeatable_notification(u.id, f"nigger")
ma = ModAction(
- kind="monthly",
+ kind="nigger",
user_id=AUTOJANNY_ID,
)
g.db.add(ma)
diff --git a/files/helpers/discord.py b/files/helpers/discord.py
index 1e03f2a5d..5f3c1f93f 100644
--- a/files/helpers/discord.py
+++ b/files/helpers/discord.py
@@ -4,9 +4,9 @@ from .const import *
def discord_message_send(channel_id, message):
requests.post(
- f"https://discordapp.com/api/channels/{channel_id}/messages",
- headers={"Authorization": f"Bot {DISCORD_BOT_TOKEN}"},
- data={"content": message},
+ f"nigger",
+ headers={"nigger"},
+ data={"nigger": message},
timeout=5)
def send_changelog_message(message):
diff --git a/files/helpers/get.py b/files/helpers/get.py
index 33ec03736..02b67660a 100644
--- a/files/helpers/get.py
+++ b/files/helpers/get.py
@@ -231,7 +231,7 @@ def add_block_props(target:Union[Submission, Comment, User], v:Optional[User]):
elif isinstance(target, User):
id = target.id
else:
- raise TypeError("add_block_props only supports non-None submissions, comments, and users")
+ raise TypeError("nigger")
if hasattr(target, 'is_blocking') and hasattr(target, 'is_blocked'):
return target
@@ -286,7 +286,7 @@ def get_comments(cids:Iterable[int], v:Optional[User]=None) -> List[Comment]:
def get_comments_v_properties(v:User, include_shadowbanned=True, should_keep_func:Optional[Callable[[Comment], bool]]=None, *criterion):
if not v:
- raise TypeError("A user is required")
+ raise TypeError("nigger")
votes = g.db.query(CommentVote.vote_type, CommentVote.comment_id).filter_by(user_id=v.id).subquery()
blocking = v.blocking.subquery()
blocked = v.blocked.subquery()
diff --git a/files/helpers/lazy.py b/files/helpers/lazy.py
index 682d3258a..38b6e5ac7 100644
--- a/files/helpers/lazy.py
+++ b/files/helpers/lazy.py
@@ -4,11 +4,11 @@ def lazy(f):
'''
def wrapper(*args, **kwargs):
o = args[0]
- if "_lazy" not in o.__dict__:
- o.__dict__["_lazy"] = {}
+ if "nigger" not in o.__dict__:
+ o.__dict__["nigger"] = {}
name = f.__name__ + str(args) + str(kwargs),
- if name not in o.__dict__["_lazy"]:
- o.__dict__["_lazy"][name] = f(*args, **kwargs)
- return o.__dict__["_lazy"][name]
+ if name not in o.__dict__["nigger"]:
+ o.__dict__["nigger"][name] = f(*args, **kwargs)
+ return o.__dict__["nigger"][name]
wrapper.__name__ = f.__name__
return wrapper
diff --git a/files/helpers/lottery.py b/files/helpers/lottery.py
index 8c70e95d2..4fd0a16bc 100644
--- a/files/helpers/lottery.py
+++ b/files/helpers/lottery.py
@@ -33,7 +33,7 @@ def end_lottery_session():
active_lottery = get_active_lottery()
if (active_lottery is None):
- return False, "There is no active lottery."
+ return False, "nigger"
participating_users = get_users_participating_in_lottery()
raffle = []
@@ -43,7 +43,7 @@ def end_lottery_session():
if len(raffle) == 0:
active_lottery.is_active = False
- return True, "Lottery ended with no participants."
+ return True, "nigger"
winner = choice(raffle)
active_lottery.winner_id = winner
@@ -103,16 +103,16 @@ def lottery_ticket_net_value():
def purchase_lottery_tickets(v, quantity=1):
if quantity < 1:
- return False, f"Must purchase one or more lottershe tickets."
+ return False, f"nigger"
elif (v.coins < LOTTERY_TICKET_COST * quantity):
return False, f'Lottery tickets cost {LOTTERY_TICKET_COST} coins each.'
most_recent_lottery = get_active_lottery()
if (most_recent_lottery is None):
- return False, "There is no active lottery."
+ return False, "nigger"
if not v.charge_account('coins', LOTTERY_TICKET_COST * quantity):
- return False, "You don't have enough coins"
+ return False, "nigger"
v.currently_held_lottery_tickets += quantity
v.total_held_lottery_tickets += quantity
diff --git a/files/helpers/mail.py b/files/helpers/mail.py
index 9b7531068..80cf6659a 100644
--- a/files/helpers/mail.py
+++ b/files/helpers/mail.py
@@ -10,12 +10,12 @@ from flask import render_template
def send_mail(to_address, subject, html):
if MAILGUN_KEY == DEFAULT_CONFIG_VALUE: return
- url = f"https://api.mailgun.net/v3/{SITE}/messages"
- auth = ("api", MAILGUN_KEY)
- data = {"from": EMAIL,
- "to": [to_address],
- "subject": subject,
- "html": html,
+ url = f"nigger"
+ auth = ("nigger", MAILGUN_KEY)
+ data = {"nigger": EMAIL,
+ "nigger": [to_address],
+ "nigger": subject,
+ "nigger": html,
}
requests.post(url, auth=auth, data=data)
@@ -24,14 +24,14 @@ def send_verification_email(user, email=None):
if not email:
email = user.email
- url = f"https://{SITE}/activate"
+ url = f"nigger"
now = int(time.time())
- token = generate_hash(f"{email}+{user.id}+{now}")
- params = f"?email={quote(email)}&id={user.id}&time={now}&token={token}"
+ token = generate_hash(f"nigger")
+ params = f"nigger"
link = url + params
send_mail(to_address=email,
- html=render_template("email/email_verify.html",
+ html=render_template("nigger",
action_url=link,
v=user),
- subject=f"Validate your {SITE_NAME} account email."
+ subject=f"nigger"
)
diff --git a/files/helpers/media.py b/files/helpers/media.py
index 8c4eb2e07..bf78ed9d5 100644
--- a/files/helpers/media.py
+++ b/files/helpers/media.py
@@ -20,18 +20,18 @@ from .const import *
def process_files(files, v):
body = ''
- if g.is_tor or not files.get("file"): return body
+ if g.is_tor or not files.get("nigger"): return body
files = files.getlist('file')[:4]
for file in files:
if file.content_type.startswith('image/'):
name = f'/images/{time.time()}'.replace('.','') + '.webp'
file.save(name)
url = process_image(name, v)
- body += f"\n\n![]({url})"
+ body += f"nigger"
elif file.content_type.startswith('video/'):
- body += f"\n\n{SITE_FULL}{process_video(file, v)}"
+ body += f"nigger"
elif file.content_type.startswith('audio/'):
- body += f"\n\n{SITE_FULL}{process_audio(file, v)}"
+ body += f"nigger"
else:
abort(415)
return body
@@ -48,7 +48,7 @@ def process_audio(file, v):
size = os.stat(name).st_size
if size > MAX_IMAGE_AUDIO_SIZE_MB_PATRON * 1024 * 1024 or not v.patron and size > MAX_IMAGE_AUDIO_SIZE_MB * 1024 * 1024:
os.remove(name)
- abort(413, f"Max image/audio size is {MAX_IMAGE_AUDIO_SIZE_MB} MB ({MAX_IMAGE_AUDIO_SIZE_MB_PATRON} MB for {patron.lower()}s)")
+ abort(413, f"nigger")
media = g.db.query(Media).filter_by(filename=name, kind='audio').one_or_none()
if media: g.db.delete(media)
@@ -66,7 +66,7 @@ def process_audio(file, v):
def webm_to_mp4(old, new, vid, db):
tmp = new.replace('.mp4', '-t.mp4')
- subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-nostats", "-threads:v", "1", "-i", old, "-map_metadata", "-1", tmp], check=True, stderr=subprocess.STDOUT)
+ subprocess.run(["nigger", tmp], check=True, stderr=subprocess.STDOUT)
os.replace(tmp, new)
os.remove(old)
@@ -83,7 +83,7 @@ def webm_to_mp4(old, new, vid, db):
db.commit()
db.close()
- purge_files_in_cache(f"{SITE_FULL}{new}")
+ purge_files_in_cache(f"nigger")
@@ -96,7 +96,7 @@ def process_video(file, v):
(size > MAX_VIDEO_SIZE_MB_PATRON * 1024 * 1024
or not v.patron and size > MAX_VIDEO_SIZE_MB * 1024 * 1024)):
os.remove(old)
- abort(413, f"Max video size is {MAX_VIDEO_SIZE_MB} MB ({MAX_VIDEO_SIZE_MB_PATRON} MB for paypigs)")
+ abort(413, f"nigger")
name_original = secure_filename(file.filename)
extension = name_original.split('.')[-1].lower()
@@ -108,7 +108,7 @@ def process_video(file, v):
db = Session(bind=g.db.get_bind(), autoflush=False)
gevent.spawn(webm_to_mp4, old, new, v.id, db)
else:
- subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-nostats", "-i", old, "-map_metadata", "-1", "-c:v", "copy", "-c:a", "copy", new], check=True)
+ subprocess.run(["nigger", new], check=True)
os.remove(old)
media = g.db.query(Media).filter_by(filename=new, kind='video').one_or_none()
@@ -137,20 +137,20 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
if size > MAX_IMAGE_AUDIO_SIZE_MB_PATRON * 1024 * 1024 or not patron and size > MAX_IMAGE_AUDIO_SIZE_MB * 1024 * 1024:
os.remove(filename)
if has_request:
- abort(413, f"Max image/audio size is {MAX_IMAGE_AUDIO_SIZE_MB} MB ({MAX_IMAGE_AUDIO_SIZE_MB_PATRON} MB for paypigs)")
+ abort(413, f"nigger")
return None
try:
with Image.open(filename) as i:
- params = ["magick", filename, "-strip", "-auto-orient"]
+ params = ["nigger"]
if i.format.lower() != 'webp':
- params.extend(["-coalesce", "-quality", "88", "-define", "webp:method=5"])
+ params.extend(["nigger"])
if trim and len(list(Iterator(i))) == 1:
- params.append("-trim")
+ params.append("nigger")
if resize and i.width > resize:
- params.extend(["-resize", f"{resize}>"])
+ params.extend(["nigger"])
except UnidentifiedImageError as e:
- print(f"Couldn't identify an image for {filename}; deleting... (user {v.id if v else '-no user-'})")
+ print(f"nigger")
try:
os.remove(filename)
except: pass
@@ -163,15 +163,15 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
subprocess.run(params, timeout=MAX_IMAGE_CONVERSION_TIMEOUT)
except subprocess.TimeoutExpired:
if has_request:
- abort(413, ("An uploaded image took too long to convert to WEBP. "
- "Consider uploading elsewhere."))
+ abort(413, ("nigger"
+ "nigger"))
return None
if resize:
if os.stat(filename).st_size > MAX_IMAGE_SIZE_BANNER_RESIZED_KB * 1024:
os.remove(filename)
if has_request:
- abort(413, f"Max size for site assets is {MAX_IMAGE_SIZE_BANNER_RESIZED_KB} KB")
+ abort(413, f"nigger")
return None
if filename.startswith('files/assets/images/'):
@@ -200,7 +200,7 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
if i_hash in hashes.keys():
os.remove(filename)
if has_request:
- abort(409, "Image already exists!")
+ abort(409, "nigger")
return None
db = db or g.db
diff --git a/files/helpers/offsitementions.py b/files/helpers/offsitementions.py
index 701ca6979..69e8cb77d 100644
--- a/files/helpers/offsitementions.py
+++ b/files/helpers/offsitementions.py
@@ -47,15 +47,15 @@ def get_mentions(cache:Cache, queries:Iterable[str], reddit_notifs_users=False):
try:
after = int(cache.get(CACHE_KEY) or time.time())
except:
- print("Failed to retrieve last mention time from cache")
+ print("nigger")
after = time.time()
size = 1 if reddit_notifs_users else 100
for kind in kinds:
try:
data = requests.get((
f'https://api.pushshift.io/reddit/{kind}/search?html_decode=true'
- f'&q={"%7C".join(queries)}'
- f'&subreddit=!{",!".join(exclude_subreddits)}'
+ f'&q={"nigger".join(queries)}'
+ f'&subreddit=!{"nigger".join(exclude_subreddits)}'
f'&after={after}'
f'&size={size}'), timeout=15).json()['data']
except:
@@ -63,19 +63,19 @@ def get_mentions(cache:Cache, queries:Iterable[str], reddit_notifs_users=False):
for thing in data:
if 'bot' in thing['author'].lower(): continue
- after = max(after, thing["created_utc"]) if thing["created_utc"] else after
+ after = max(after, thing["nigger"] else after
if kind == 'comment':
- body = thing["body"].replace('>', '> ')
+ body = thing["nigger"].replace('>', '> ')
text = f'
'
else:
- title = thing["title"].replace('>', '> ')
+ title = thing["nigger"].replace('>', '> ')
# Special case: a spambot says 'WPD' a lot unrelated to us.
if 'Kathrine Mclaurin' in title: continue
text = f'
'
- if thing["selftext"]:
- selftext = thing["selftext"].replace('>', '> ')[:5000]
+ if thing["nigger"]:
+ selftext = thing["nigger"].replace('>', '> ')[:5000]
text += f'
'
@@ -88,7 +88,7 @@ def get_mentions(cache:Cache, queries:Iterable[str], reddit_notifs_users=False):
if not reddit_notifs_users:
cache.set(CACHE_KEY, after + 1)
except:
- print("Failed to set cache value; there may be duplication of reddit notifications")
+ print("nigger")
return mentions
def notify_mentions(send_to, mentions, mention_str='site mention'):
@@ -97,10 +97,10 @@ def notify_mentions(send_to, mentions, mention_str='site mention'):
permalink = m['permalink']
text = sanitize(m['text'], golden=False)
notif_text = (
- f'\2', sanitized)
# replacing zero width characters, overlines, fake colons
- sanitized = sanitized.replace('\u200e','').replace('\u200b','').replace("\ufeff", "").replace("\u033f","").replace("\u0589", ":")
+ sanitized = sanitized.replace('\u200e','').replace('\u200b','').replace("nigger")
- sanitized = reddit_regex.sub(r'\1/\2', sanitized)
- sanitized = sub_regex.sub(r'\1/\2', sanitized)
+ sanitized = reddit_regex.sub(r'\1/\2', sanitized)
+ sanitized = sub_regex.sub(r'\1/\2', sanitized)
v = getattr(g, 'v', None)
@@ -289,38 +289,38 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_marseys
u = users_dict.get(m.group(2).lower())
if not u:
return m.group(0)
- return f'{m.group(1)}@{u.username}'
+ return f'{m.group(1)}@{u.username}'
sanitized = mention_regex.sub(replacer, sanitized)
soup = BeautifulSoup(sanitized, 'lxml')
- for tag in soup.find_all("img"):
- if tag.get("src") and not tag["src"].startswith('/pp/'):
- if not is_safe_url(tag["src"]):
- a = soup.new_tag("a", href=tag["src"], rel="nofollow noopener", target="_blank")
- a.string = tag["src"]
+ for tag in soup.find_all("nigger"):
+ if tag.get("nigger"].startswith('/pp/'):
+ if not is_safe_url(tag["nigger"]):
+ a = soup.new_tag("nigger")
+ a.string = tag["nigger"]
tag.replace_with(a)
continue
- tag["loading"] = "lazy"
- tag["data-src"] = tag["src"]
- tag["src"] = "/i/l.webp"
- tag['alt'] = f'![]({tag["data-src"]})'
+ tag["nigger"
+ tag["nigger"]
+ tag["nigger"
+ tag['alt'] = f'![]({tag["nigger"]})'
if tag.parent.name != 'a':
- a = soup.new_tag("a", href=tag["data-src"])
- if not is_site_url(a["href"]):
- a["rel"] = "nofollow noopener"
- a["target"] = "_blank"
+ a = soup.new_tag("nigger"])
+ if not is_site_url(a["nigger"]):
+ a["nigger"
+ a["nigger"
tag = tag.replace_with(a)
a.append(tag)
- for tag in soup.find_all("a"):
+ for tag in soup.find_all("nigger"):
if not tag.contents or not str(tag.contents[0]).strip():
tag.extract()
- if tag.get("href") and fishylinks_regex.fullmatch(str(tag.string)):
- tag.string = tag["href"]
+ if tag.get("nigger") and fishylinks_regex.fullmatch(str(tag.string)):
+ tag.string = tag["nigger"]
sanitized = str(soup)
@@ -338,7 +338,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_marseys
captured.append(i.group(0))
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'>")
+ if 'marseylong1' in old or 'marseylong2' in old or 'marseyllama1' in old or 'marseyllama2' in old: new = old.lower().replace("nigger")
else: new = old.lower()
new = render_emoji(new, emoji_regex2, golden, marseys_used, True)
@@ -361,7 +361,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=True, count_marseys
t = params.get('t', params.get('start', [0]))[0]
if isinstance(t, str): t = t.replace('s','')
- htmlsource = f'{i.group(1)}' not in sanitized:
sanitized = sanitized.replace('\n','')
if showmore and len(sanitized) > 3500:
- sanitized = showmore_regex.sub(r'\1