diff --git a/files/classes/award.py b/files/classes/award.py index 30e1fcb2a..c55788875 100644 --- a/files/classes/award.py +++ b/files/classes/award.py @@ -3,11 +3,7 @@ from sqlalchemy.orm import relationship from files.__main__ import Base from os import environ from files.helpers.lazy import lazy -from files.helpers.const import AWARDS - -site_name = environ.get("SITE_NAME").strip() - - +from files.helpers.const import * class AwardRelationship(Base): diff --git a/files/classes/badges.py b/files/classes/badges.py index 2ec4d5ee2..00e48195a 100644 --- a/files/classes/badges.py +++ b/files/classes/badges.py @@ -3,11 +3,9 @@ from sqlalchemy.orm import relationship from files.__main__ import Base, app from os import environ from files.helpers.lazy import lazy -from files.helpers.const import BADGES +from files.helpers.const import * from datetime import datetime -site_name = environ.get("SITE_NAME").strip() - class Badge(Base): __tablename__ = "badges" @@ -63,5 +61,5 @@ class Badge(Base): return {'text': self.text, 'name': self.name, 'url': self.url, - 'icon_url':f"https://{app.config['SERVER_NAME']}{self.path}" + 'icon_url':f"{SITE_FULL}{self.path}" } \ No newline at end of file diff --git a/files/classes/comment.py b/files/classes/comment.py index 93302aabf..623c21e03 100644 --- a/files/classes/comment.py +++ b/files/classes/comment.py @@ -7,15 +7,11 @@ from sqlalchemy import * from sqlalchemy.orm import relationship from files.__main__ import Base from files.classes.votes import CommentVote -from files.helpers.const import AUTOPOLLER_ID, AUTOBETTER_ID, censor_slurs +from files.helpers.const import * from files.helpers.lazy import lazy from .flags import CommentFlag from random import randint -site = environ.get("DOMAIN").strip() -if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN" -else: cc = "COUNTRY CLUB" - class Comment(Base): __tablename__ = "comments" @@ -324,7 +320,7 @@ class Comment(Base): return data def realbody(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])): return f"

{cc} ONLY

" + 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])): return f"

{CC} ONLY

" body = self.body_html @@ -364,7 +360,7 @@ class Comment(Base): return body 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])): return f"

{cc} ONLY

" + 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])): return f"

{CC} ONLY

" body = self.body diff --git a/files/classes/mod_logs.py b/files/classes/mod_logs.py index 62d6d1e5a..59db52b3e 100644 --- a/files/classes/mod_logs.py +++ b/files/classes/mod_logs.py @@ -5,10 +5,7 @@ import time from files.helpers.lazy import lazy from os import environ from copy import deepcopy - -site = environ.get("DOMAIN").strip() -if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN" -else: cc = "COUNTRY CLUB" +from files.helpers.const import * class ModAction(Base): __tablename__ = "modactions" @@ -94,7 +91,7 @@ class ModAction(Base): def target_link(self): if self.target_user: return f'{self.target_user.username}' elif self.target_post: - if self.target_post.club: return f'{cc} ONLY' + if self.target_post.club: return f'{CC} ONLY' return f'{self.target_post.title.replace("<","").replace(">","")}' elif self.target_comment_id: return f'comment' diff --git a/files/classes/submission.py b/files/classes/submission.py index 69194a730..e3311e400 100644 --- a/files/classes/submission.py +++ b/files/classes/submission.py @@ -7,17 +7,12 @@ from flask import render_template from sqlalchemy import * from sqlalchemy.orm import relationship from files.__main__ import Base -from files.helpers.const import AUTOPOLLER_ID, AUTOBETTER_ID, censor_slurs, TROLLTITLES +from files.helpers.const import * from files.helpers.lazy import lazy from .flags import Flag from .comment import Comment from flask import g -site = environ.get("DOMAIN").strip() -site_name = environ.get("SITE_NAME").strip() -if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN" -else: cc = "COUNTRY CLUB" - class Submission(Base): __tablename__ = "submissions" @@ -232,22 +227,22 @@ class Submission(Base): @property @lazy def thumb_url(self): - if self.over_18: return f"https://{site}/static/assets/images/nsfw.webp" - elif not self.url: return f"https://{site}/static/assets/images/{site_name}/default_text.webp" + if self.over_18: return f"{SITE_FULL}/static/assets/images/nsfw.webp" + elif not self.url: return f"{SITE_FULL}/static/assets/images/{SITE_NAME}/default_text.webp" elif self.thumburl: return self.thumburl - elif self.is_youtube or self.is_video: return f"https://{site}/static/assets/images/default_thumb_yt.webp" - else: return f"https://{site}/static/assets/images/default_thumb_link.webp" + elif self.is_youtube or self.is_video: return f"{SITE_FULL}/static/assets/images/default_thumb_yt.webp" + else: return f"{SITE_FULL}/static/assets/images/default_thumb_link.webp" @property @lazy def full_thumb(self): - if self.thumb_url.startswith('/'): return f'https://{site}' + self.thumb_url + if self.thumb_url.startswith('/'): return SITE_FULL + self.thumb_url return self.thumb_url @property @lazy def full_url(self): - if self.url and self.url.startswith('/'): return f'https://{site}' + self.url + if self.url and self.url.startswith('/'): return SITE_FULL + self.url return self.url @property @@ -352,7 +347,7 @@ class Submission(Base): else: return "" def realbody(self, v): - if self.club and not (v and (v.paid_dues or v.id == self.author_id)): return f"

{cc} ONLY

" + if self.club and not (v and (v.paid_dues or v.id == self.author_id)): return f"

{CC} ONLY

" body = self.body_html @@ -382,7 +377,7 @@ class Submission(Base): return body def plainbody(self, v): - if self.club and not (v and (v.paid_dues or v.id == self.author_id)): return f"

{cc} ONLY

" + if self.club and not (v and (v.paid_dues or v.id == self.author_id)): return f"

{CC} ONLY

" body = self.body @@ -402,7 +397,7 @@ class Submission(Base): def realtitle(self, v): if self.club and not (v and (v.paid_dues or v.id == self.author_id)): if v: return random.choice(TROLLTITLES).format(username=v.username) - else: return f'{cc} MEMBERS ONLY' + else: return f'{CC} MEMBERS ONLY' elif self.title_html: title = self.title_html else: title = self.title @@ -414,7 +409,7 @@ class Submission(Base): def plaintitle(self, v): if self.club and not (v and (v.paid_dues or v.id == self.author_id)): if v: return random.choice(TROLLTITLES).format(username=v.username) - else: return f'{cc} MEMBERS ONLY' + else: return f'{CC} MEMBERS ONLY' else: title = self.title title = censor_slurs(title, v) diff --git a/files/classes/user.py b/files/classes/user.py index 5aec1a24b..d220ca217 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -18,8 +18,6 @@ from files.helpers.security import * import random from os import environ, remove, path -site = environ.get("DOMAIN").strip() -site_name = environ.get("SITE_NAME").strip() defaulttheme = environ.get("DEFAULT_THEME", "midnight").strip() defaultcolor = environ.get("DEFAULT_COLOR", "fff").strip() defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip() @@ -28,7 +26,7 @@ cardview = bool(int(environ.get("CARD_VIEW", 1))) class User(Base): __tablename__ = "users" - if site == "pcmemes.net": + if SITE == "pcmemes.net": quadrant = Column(String) basedcount = Column(Integer, default=0) pills = deferred(Column(String, default="")) @@ -428,15 +426,15 @@ class User(Base): @lazy def banner_url(self): if self.bannerurl: return self.bannerurl - else: return f"https://{site}/static/assets/images/{site_name}/site_preview.webp?a=1" + else: return f"{SITE_FULL}/static/assets/images/{SITE_NAME}/site_preview.webp?a=1" @property @lazy def profile_url(self): - if self.agendaposter: return f"https://{site}/static/assets/images/defaultpictures/agendaposter/{random.randint(1, 50)}.webp?a=204" + if self.agendaposter: return f"{SITE_FULL}/static/assets/images/defaultpictures/agendaposter/{random.randint(1, 50)}.webp?a=204" if self.profileurl: return self.profileurl - if "rama" in site: return f"https://{site}/static/assets/images/defaultpictures/{random.randint(1, 150)}.webp?a=202" - return f"https://{site}/static/assets/images/default-profile-pic.webp?a=204" + if SITE_NAME == 'Drama': return f"{SITE_FULL}/static/assets/images/defaultpictures/{random.randint(1, 150)}.webp?a=202" + return f"{SITE_FULL}/static/assets/images/default-profile-pic.webp?a=204" @lazy def json_popover(self, v): @@ -457,7 +455,7 @@ class User(Base): @property @lazy def full_profileurl(self): - if self.profile_url.startswith('/'): return f'https://{site}' + self.profile_url + if self.profile_url.startswith('/'): return SITE_FULL + self.profile_url return self.profile_url @property diff --git a/files/helpers/const.py b/files/helpers/const.py index 5dc9db6e9..b7be3ab13 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -2,9 +2,15 @@ from os import environ, listdir import re from copy import deepcopy from json import loads +from files.__main__ import app SITE = environ.get("DOMAIN", '').strip() SITE_NAME = environ.get("SITE_NAME", '').strip() +if SITE == "localhost": SITE_FULL = 'http://' + SITE +else: SITE_FULL = 'https://' + SITE +if SITE == 'pcmemes.net': CC = "SPLASH MOUNTAIN" +else: CC = "COUNTRY CLUB" +CC_TITLE = CC.title() with open("files/assets/js/emoji_modal.js", 'r') as file: marseytext = file.read().split('emojis: ')[1].split('cops police"},')[0] + '"}}' @@ -787,4 +793,27 @@ NOTIFIED_USERS = { } num_banners = len(listdir('files/assets/images/Drama/banners')) + 1 -num_sidebar = len(listdir('files/assets/images/Drama/sidebar')) + 1 \ No newline at end of file +num_sidebar = len(listdir('files/assets/images/Drama/sidebar')) + 1 + +@app.template_filter("full_link") +def full_link(url): + + return f"{SITE_FULL}{url}" + +@app.template_filter("app_config") +def app_config(x): + return app.config.get(x) + +@app.template_filter("post_embed") +def post_embed(id, v): + + try: id = int(id) + except: return None + + p = get_post(id, v, graceful=True) + + return render_template("submission_listing.html", listing=[p], v=v) + +@app.context_processor +def inject_constants(): + return {"num_banners":num_banners, "num_sidebar":num_sidebar, "environ":environ, "SITE_NAME":SITE_NAME, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE} \ No newline at end of file diff --git a/files/helpers/jinja2.py b/files/helpers/jinja2.py deleted file mode 100644 index be6a35949..000000000 --- a/files/helpers/jinja2.py +++ /dev/null @@ -1,27 +0,0 @@ -from files.__main__ import app -from .get import * -from os import listdir, environ -from .const import * - -@app.template_filter("full_link") -def full_link(url): - - return f"https://{app.config['SERVER_NAME']}{url}" - -@app.template_filter("app_config") -def app_config(x): - return app.config.get(x) - -@app.template_filter("post_embed") -def post_embed(id, v): - - try: id = int(id) - except: return None - - p = get_post(id, v, graceful=True) - - return render_template("submission_listing.html", listing=[p], v=v) - -@app.context_processor -def inject_constants(): - return {"num_banners":num_banners, "num_sidebar":num_sidebar, "environ":environ, "SITE_NAME":SITE_NAME, "AUTOJANNY_ID": AUTOJANNY_ID, "NOTIFICATIONS_ID": NOTIFICATIONS_ID, "PUSHER_ID": PUSHER_ID} \ No newline at end of file diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py index 993b23fcf..d205648f4 100644 --- a/files/helpers/sanitize.py +++ b/files/helpers/sanitize.py @@ -9,8 +9,6 @@ from mistletoe import markdown from json import loads, dump from random import random -site = environ.get("DOMAIN").strip() - allowed_tags = tags = ['b', 'blockquote', 'br', @@ -166,7 +164,7 @@ def sanitize(sanitized, noimages=False, alert=False, comment=False, edit=False): for tag in soup.find_all("a"): if tag.get("href"): - if site not in tag["href"] and not tag["href"].startswith('/'): + if not tag["href"].startswith(SITE_FULL) and not tag["href"].startswith('/'): tag["target"] = "_blank" tag["rel"] = "nofollow noopener noreferrer" diff --git a/files/mail/__init__.py b/files/mail/__init__.py index 868febe2f..469cd098d 100644 --- a/files/mail/__init__.py +++ b/files/mail/__init__.py @@ -5,17 +5,16 @@ from urllib.parse import quote from files.helpers.security import * from files.helpers.wrappers import * +from files.helpers.const import * from files.classes import * from files.__main__ import app, mail, limiter from flask_mail import Message -site = environ.get("DOMAIN").strip() name = environ.get("SITE_NAME").strip() - def send_mail(to_address, subject, html): - msg = Message(html=html, subject=subject, sender=f"{name}@{site}", recipients=[to_address]) + msg = Message(html=html, subject=subject, sender=f"{name}@{SITE}", recipients=[to_address]) mail.send(msg) diff --git a/files/routes/admin.py b/files/routes/admin.py index bfad24748..f83209d96 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -17,7 +17,6 @@ from files.helpers.discord import add_role from datetime import datetime import requests -SITE_NAME = environ.get("SITE_NAME", "").strip() GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri").strip() GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "").strip() @@ -25,11 +24,8 @@ CF_KEY = environ.get("CF_KEY", "").strip() CF_ZONE = environ.get("CF_ZONE", "").strip() CF_HEADERS = {"Authorization": f"Bearer {CF_KEY}", "Content-Type": "application/json"} -if SITE_NAME == 'PCM': cc = "splash mountain" -else: cc = "country club" month = datetime.now().strftime('%B') - @app.get("/refund") @admin_level_required(3) def refund(v): @@ -166,7 +162,7 @@ def club_allow(v, username): g.db.add(x) g.db.commit() - return {"message": f"@{username} has been allowed into the {cc}!"} + return {"message": f"@{username} has been allowed into the {CC_TITLE}!"} @app.post("/@/club_ban") @limiter.limit("1/second;30/minute;200/hour;1000/day") @@ -186,7 +182,7 @@ def club_ban(v, username): g.db.add(x) g.db.commit() - return {"message": f"@{username} has been kicked from the {cc}. Deserved."} + return {"message": f"@{username} has been kicked from the {CC_TITLE}. Deserved."} @app.post("/@/make_meme_admin") diff --git a/files/routes/comments.py b/files/routes/comments.py index 8e46fb476..07519d3d6 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -11,9 +11,6 @@ from files.__main__ import app, limiter from files.helpers.sanitize import filter_emojis_only import requests -site = environ.get("DOMAIN").strip() -if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN" -else: cc = "COUNTRY CLUB" IMGUR_KEY = environ.get("IMGUR_KEY").strip() if PUSHER_ID: beams_client = PushNotifications(instance_id=PUSHER_ID, secret_key=PUSHER_KEY) diff --git a/files/routes/discord.py b/files/routes/discord.py index 18b16ee93..17e5a140f 100644 --- a/files/routes/discord.py +++ b/files/routes/discord.py @@ -11,7 +11,6 @@ BOT_TOKEN = environ.get("DISCORD_BOT_TOKEN").strip() COINS_NAME = environ.get("COINS_NAME").strip() DISCORD_ENDPOINT = "https://discordapp.com/api/v6" WELCOME_CHANNEL="846509313941700618" -SITE_NAME = environ.get("SITE_NAME", "").strip() @app.get("/discord") @is_not_permabanned diff --git a/files/routes/feeds.py b/files/routes/feeds.py index 06e7e2592..d7e4e857c 100644 --- a/files/routes/feeds.py +++ b/files/routes/feeds.py @@ -1,7 +1,7 @@ import html from .front import frontlist from datetime import datetime -from files.helpers.jinja2 import full_link +from files.helpers.const import * from files.helpers.get import * from yattag import Doc from files.helpers.wrappers import * diff --git a/files/routes/front.py b/files/routes/front.py index 0c6373ccd..a7b3aa878 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -4,7 +4,6 @@ from files.__main__ import app, cache, limiter from files.classes.submission import Submission defaulttimefilter = environ.get("DEFAULT_TIME_FILTER", "all").strip() -SITE_NAME = environ.get("SITE_NAME", "").strip() @app.post("/clear") @auth_required diff --git a/files/routes/posts.py b/files/routes/posts.py index 5a5b26221..f6ba288ca 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -19,17 +19,15 @@ import requests from shutil import copyfile from psutil import cpu_percent -site = environ.get("DOMAIN").strip() -site_name = environ.get("SITE_NAME").strip() IMGUR_KEY = environ.get("IMGUR_KEY").strip() CF_KEY = environ.get("CF_KEY", "").strip() CF_ZONE = environ.get("CF_ZONE", "").strip() CF_HEADERS = {"Authorization": f"Bearer {CF_KEY}", "Content-Type": "application/json"} -if path.exists(f'snappy_{site_name}.txt'): - with open(f'snappy_{site_name}.txt', "r") as f: - if site == 'pcmemes.net': snappyquotes = f.read().split("{[para]}") +if path.exists(f'snappy_{SITE_NAME}.txt'): + with open(f'snappy_{SITE_NAME}.txt', "r") as f: + if SITE == 'pcmemes.net': snappyquotes = f.read().split("{[para]}") else: snappyquotes = f.read().split("{[para]}") + [f':#{x}:' for x in marseys] @app.post("/toggle_club/") @@ -991,7 +989,7 @@ def submit_post(v): if not new_post.thumburl and new_post.url: if request.host in new_post.url or new_post.url.startswith('/') or request.host == 'rdrama.net' and 'rdrama' in new_post.domain: - new_post.thumburl = f'/static/assets/images/{site_name}/site_preview.webp' + new_post.thumburl = f'/static/assets/images/{SITE_NAME}/site_preview.webp' elif request.headers.get('cf-ipcountry')!="T1": gevent.spawn( thumbnail_thread, new_post.id) diff --git a/files/routes/settings.py b/files/routes/settings.py index dfa9c0e0c..12809bb13 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -20,7 +20,6 @@ valid_password_regex = re.compile("^.{8,100}$") YOUTUBE_KEY = environ.get("YOUTUBE_KEY", "").strip() COINS_NAME = environ.get("COINS_NAME").strip() GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "").strip() -SITE_NAME = environ.get("SITE_NAME", "").strip() IMGUR_KEY = environ.get("IMGUR_KEY").strip() GUMROAD_ID = environ.get("GUMROAD_ID", "tfcvri").strip() diff --git a/files/routes/static.py b/files/routes/static.py index 565af3e4b..2f78698fa 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -9,9 +9,6 @@ import calendar import matplotlib.pyplot as plt from files.classes.mod_logs import ACTIONTYPES, ACTIONTYPES2 -site = environ.get("DOMAIN").strip() -site_name = environ.get("SITE_NAME").strip() - @app.get("/privacy") @auth_required def privacy(v): @@ -246,7 +243,7 @@ def log_item(id, v): @app.get("/static/assets/favicon.ico") def favicon(): - return send_file(f"./assets/images/{site_name}/icon.webp") + return send_file(f"./assets/images/{SITE_NAME}/icon.webp") @app.get("/api") @auth_required diff --git a/files/routes/votes.py b/files/routes/votes.py index a781da8c8..d2396b0ac 100644 --- a/files/routes/votes.py +++ b/files/routes/votes.py @@ -1,6 +1,6 @@ from files.helpers.wrappers import * from files.helpers.get import * -from files.helpers.const import AUTOBETTER_ID +from files.helpers.const import * from files.classes import * from flask import * from files.__main__ import app, limiter, cache diff --git a/files/templates/comment_failed.html b/files/templates/comment_failed.html index ca9621ef8..955cb60af 100644 --- a/files/templates/comment_failed.html +++ b/files/templates/comment_failed.html @@ -12,8 +12,8 @@

Please remove the following link(s) from your comment, and then you will be able to post it:

    - {% for site in badlinks %} -
  • {{site}}
  • + {% for s in badlinks %} +
  • {{s}}
  • {% endfor %}
diff --git a/files/templates/submission.html b/files/templates/submission.html index 47b5931f1..a40d5a0ca 100644 --- a/files/templates/submission.html +++ b/files/templates/submission.html @@ -23,6 +23,13 @@ {% if p.award_count("wholesome") %} -
- :#marseywholesome: +
+ + + :#marseywholesome: + +
{% endif %} {% if p.award_count("wholesome") > 1 %} - -
- :#marseywholesome: -
+ + + :#marseywholesome: + + {% endif %} {% if p.award_count("wholesome") > 2 %} - -
- :#marseywholesome: -
+ + + :#marseywholesome: + + {% endif %} {% if p.award_count("wholesome") > 3 %} - -
- :#marseywholesome: -
+ + + :#marseywholesome: + + {% endif %} {% if p.award_count("train") %} @@ -402,13 +380,13 @@ {% endif %} {% if p.realurl(v) %}

- {% if p.club %}{{cc}}{% endif %} + {% if p.club %}{{CC}}{% endif %} {% if p.flair %}{{p.flair | safe}}{% endif %} {{p.realtitle(v) | safe}}

{% else %}

- {% if p.club %}{{cc}}{% endif %} + {% if p.club %}{{CC}}{% endif %} {% if p.flair %}{{p.flair | safe}}{% endif %} {{p.realtitle(v) | safe}}

diff --git a/files/templates/submission_listing.html b/files/templates/submission_listing.html index 14120cc3f..151afd16f 100644 --- a/files/templates/submission_listing.html +++ b/files/templates/submission_listing.html @@ -200,7 +200,7 @@
- {% if p.club %}{{cc}}{% endif %} + {% if p.club %}{{CC}}{% endif %} {% if p.flair %}{{p.flair | safe}}{% endif %} {{p.realtitle(v) | safe}}
diff --git a/files/templates/submit.html b/files/templates/submit.html index edb7e6162..bd48af0c4 100644 --- a/files/templates/submit.html +++ b/files/templates/submit.html @@ -160,7 +160,7 @@ {% if v.club_allowed != False %}
- +
{% endif %}