remotes/1693045480750635534/spooky-22
Aevann1 2021-08-19 07:14:52 +02:00
parent 393c0fe2fe
commit 5057c2934e
62 changed files with 247 additions and 238 deletions

View File

@ -37,6 +37,8 @@ services:
- READ_ONLY=0
- BOT_DISABLE=0
- COINS_NAME=Dramacoins
- DEFAULT_THEME=dark
- DEFAULT_COLOR=ff66ac
links:
- "redis"
- "postgres"

View File

@ -36,7 +36,7 @@ app.config['DATABASE_URL'] = environ.get("DATABASE_CONNECTION_POOL_URL",environ.
app.config['SECRET_KEY'] = environ.get('MASTER_KEY')
app.config["SERVER_NAME"] = environ.get("DOMAIN").strip()
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 31536000
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 86400
app.config["SESSION_COOKIE_NAME"] = "session_" + environ.get("SITE_NAME").strip().lower()
app.config["VERSION"] = "1.0.0"
@ -47,6 +47,8 @@ app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
app.config["PERMANENT_SESSION_LIFETIME"] = 60 * 60 * 24 * 365
app.config["SESSION_REFRESH_EACH_REQUEST"] = True
app.config["DEFAULT_THEME"] = environ.get("defaulttheme").strip() + "_" + environ.get("defaultcolor").strip()
app.config["FORCE_HTTPS"] = int(environ.get("FORCE_HTTPS", 1)) if ("localhost" not in app.config["SERVER_NAME"] and "127.0.0.1" not in app.config["SERVER_NAME"]) else 0
app.jinja_env.cache = {}

View File

@ -246,7 +246,7 @@ class Comment(Base, Age_times, Scores, Stndrd, Fuzzing):
def realbody(self, v):
body = self.comment_aux.body_html
if not v or v.slurreplacer: body = body.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" trump"," DDR").replace(" Trump"," DDR").replace(" TRUMP"," DDR").replace(" biden"," DDD").replace(" Biden"," DDD").replace(" BIDEN"," DDD").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
if not v or v.slurreplacer: body = body.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
if v and not v.oldreddit: body = body.replace("old.reddit.com", "reddit.com")
if v and v.controversial:

View File

@ -1,7 +1,9 @@
from sqlalchemy import *
from flask import g
from files.__main__ import Base
from os import environ
site = environ.get("DOMAIN").strip()
class Image(Base):
__tablename__ = "images"
@ -11,9 +13,9 @@ class Image(Base):
text = Column(String(64))
deletehash = Column(String(64))
@property
def path(self):
return f"/assets/images/cover.png"
def path(self): return f"/assets/images/{site}/cover.png"

View File

@ -203,7 +203,7 @@ class Submission(Base, Stndrd, Age_times, Scores, Fuzzing):
@lazy
def thumb_url(self):
if self.over_18: return f"https://{site}/assets/images/nsfw.png"
elif not self.url: return f"https://{site}/assets/images/default_thumb_text.png"
elif not self.url: return f"https://{site}/assets/images/{site}/default_thumb_text.png"
elif self.thumburl: return self.thumburl
elif "youtu.be" in self.domain or "youtube.com" in self.domain: return f"https://{site}/assets/images/default_thumb_yt.png"
else: return f"https://{site}/assets/images/default_thumb_link.png"
@ -341,7 +341,7 @@ class Submission(Base, Stndrd, Age_times, Scores, Fuzzing):
def realbody(self, v):
body = self.submission_aux.body_html
if not v or v.slurreplacer: body = body.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" trump"," DDR").replace(" Trump"," DDR").replace(" TRUMP"," DDR").replace(" biden"," DDD").replace(" Biden"," DDD").replace(" BIDEN"," DDD").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
if not v or v.slurreplacer: body = body.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
if v and not v.oldreddit: body = body.replace("old.reddit.com", "reddit.com")
return body
@ -357,7 +357,7 @@ class Submission(Base, Stndrd, Age_times, Scores, Fuzzing):
def realtitle(self, v):
if self.title_html: title = self.title_html
else: title = self.title
if not v or v.slurreplacer: title = title.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" trump"," DDR").replace(" Trump"," DDR").replace(" TRUMP"," DDR").replace(" biden"," DDD").replace(" Biden"," DDD").replace(" BIDEN"," DDD").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
if not v or v.slurreplacer: title = title.replace(" nigger"," 🏀").replace(" Nigger"," 🏀").replace(" NIGGER"," 🏀").replace(" pedo"," libertarian").replace(" Pedo"," Libertarian ").replace(" PEDO"," LIBERTARIAN ").replace(" tranny"," 🚄").replace(" Tranny"," 🚄").replace(" TRANNY"," 🚄").replace(" fag"," cute twink").replace(" Fag"," Cute twink").replace(" FAG"," CUTE TWINK").replace(" faggot"," cute twink").replace(" Faggot"," Cute twink").replace(" FAGGOT"," CUTE TWINK").replace(" steve akins"," penny verity oaken").replace(" Steve Akins"," Penny Verity Oaken").replace(" STEVE AKINS"," PENNY VERITY OAKEN").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" RETARD"," RSLUR").replace(" rapist"," male feminist").replace(" Rapist"," Male feminist").replace(" RAPIST"," MALE FEMINIST").replace(" kill yourself"," keep yourself safe").replace(" KILL YOURSELF"," KEEP YOURSELF SAFE").replace(" trannie"," 🚄").replace(" Trannie"," 🚄").replace(" TRANNIE"," 🚄").replace(" troon"," 🚄").replace(" Troon"," 🚄").replace(" TROON"," 🚄")
return title
@property

View File

@ -16,18 +16,19 @@ from files.__main__ import Base, cache
from files.helpers.security import *
site = environ.get("DOMAIN").strip()
defaulttheme = environ.get("DEFAULT_COLOR").strip()
defaultcolor = environ.get("DEFAULT_COLOR").strip()
class User(Base, Stndrd, Age_times):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String)
namecolor = Column(String, default='ff66ac')
namecolor = Column(String, default=defaultcolor)
background = Column(String)
customtitle = Column(String)
customtitleplain = Column(String)
titlecolor = Column(String, default='ff66ac')
theme = Column(String, default='dark')
themecolor = Column(String, default='ff66ac')
titlecolor = Column(String, default=defaultcolor)
theme = Column(String, default=defaulttheme)
themecolor = Column(String, default=defaultcolor)
song = Column(String)
highres = Column(String)
profileurl = Column(String)

View File

@ -158,7 +158,7 @@ def api_comment(v):
if not body and not request.files.get('file'): return {"error":"You need to actually write something!"}, 400
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF|?maxwidth=9999))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n").replace("\n\n\n\n\n\n", "\n\n").replace("\n\n\n\n", "\n\n").replace("\n\n\n", "\n\n")
with CustomRenderer(post_id=parent_id) as renderer: body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)
@ -535,7 +535,7 @@ def edit_comment(cid, v):
if c.is_banned or c.deleted_utc > 0: abort(403)
body = request.form.get("body", "")[:10000]
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF|?maxwidth=9999))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
body = body.replace("\n", "\n\n").replace("\n\n\n\n\n\n", "\n\n").replace("\n\n\n\n", "\n\n").replace("\n\n\n", "\n\n")
with CustomRenderer(post_id=c.post.id) as renderer: body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)

View File

@ -236,7 +236,7 @@ def edit_post(pid, v):
abort(403)
body = request.form.get("body", "")
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF|?maxwidth=9999))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
with CustomRenderer() as renderer: body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)
@ -707,7 +707,7 @@ def submit_post(v):
else: return render_template("submit.html", v=v, error="2048 character limit for URLs.", title=title, url=url,body=request.form.get("body", "")), 400
# render text
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF|?maxwidth=9999))', body, re.MULTILINE): body = body.replace(i.group(1), f'![]({i.group(1)})')
with CustomRenderer() as renderer:
body_md = renderer.render(mistletoe.Document(body))
body_html = sanitize(body_md, linkgen=True)

View File

@ -76,7 +76,7 @@ def settings_profile_post(v):
v=v,
error="You didn't change anything")
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF))', bio, re.MULTILINE): bio = bio.replace(i.group(1), f'![]({i.group(1)})')
for i in re.finditer('^(https:\/\/.*\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF|?maxwidth=9999))', bio, re.MULTILINE): bio = bio.replace(i.group(1), f'![]({i.group(1)})')
bio = bio.replace("\n", "\n\n").replace("\n\n\n\n\n\n", "\n\n").replace("\n\n\n\n", "\n\n").replace("\n\n\n", "\n\n")
with CustomRenderer() as renderer: bio_html = renderer.render(mistletoe.Document(bio))
bio_html = sanitize(bio_html, linkgen=True)

View File

@ -97,7 +97,7 @@ def index():
@app.get("/assets/favicon.ico")
def favicon():
return send_file("./assets/images/favicon.png")
return send_file(f"./assets/images/{site}/favicon.png")
@app.get("/api")
@auth_desired

View File

@ -71,6 +71,8 @@ def api_vote_post(post_id, new, v):
# check for existing vote
existing = g.db.query(Vote).filter_by(user_id=v.id, submission_id=post.id).first()
if existing.vote_type == new: return "", 204
if existing:
if existing.vote_type == 0 and new != 0:
post.author.coins += 1
@ -119,6 +121,8 @@ def api_vote_comment(comment_id, new, v):
# check for existing vote
existing = g.db.query(CommentVote).filter_by(user_id=v.id, comment_id=comment.id).first()
if existing.vote_type == new: return "", 204
if existing:
if existing.vote_type == 0 and new != 0:
comment.author.coins += 1
@ -145,4 +149,4 @@ def api_vote_comment(comment_id, new, v):
comment.upvotes = g.db.query(CommentVote).filter_by(comment_id=comment.id, vote_type=1).count()
comment.downvotes = g.db.query(CommentVote).filter_by(comment_id=comment.id, vote_type=-1).count()
g.db.add(comment)
return make_response(""), 204
return "", 204

View File

@ -24,7 +24,7 @@
<div class="text-small text-muted">Or enter this code: {{mfa_secret}}</div>
</div>
<p>
<span class="font-weight-bold">Step 2:</span> Enter the six-digit code generated in the authenticator app and your {{"SITE_NAME" | app_config}} account password.
<span class="font-weight-bold">Step 2:</span> Enter the six-digit code generated in the authenticator app and your {{'SITE_NAME' | app_config}} account password.
</p>
<label for="2fa_input">6-digit code</label>
<input type="text" class="form-control mb-2" id="2fa_input" name="2fa_token" placeholder="# # # # # #" required>
@ -47,7 +47,7 @@
<div class="alert alert-warning" role="alert">
<i class="fas fa-info-circle"></i>
To disable two-step login, please enter your {{"SITE_NAME" | app_config}} account password and the 6-digit code generated in your authentication app. If you no longer have your two-step device, <a href="/lost_2fa">click here</a>.
To disable two-step login, please enter your {{'SITE_NAME' | app_config}} account password and the 6-digit code generated in your authentication app. If you no longer have your two-step device, <a href="/lost_2fa">click here</a>.
</div>
<label for="2fa_input_password">Password</label>

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}}</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Help">
<title>{{'SITE_NAME' | app_config}}</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} Help">
{% endblock %}
{% block content %}

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}}</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Help">
<title>{{'SITE_NAME' | app_config}}</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} Help">
{% endblock %}
{% block content %}

View File

@ -2,7 +2,7 @@
{% block title %}
<title>API App Administration</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Help">
<meta name="description" content="{{'SITE_NAME' | app_config}} Help">
{% endblock %}
{% block content %}

View File

@ -2,7 +2,7 @@
{% block title %}
<title>API App Administration</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Help">
<meta name="description" content="{{'SITE_NAME' | app_config}} Help">
{% endblock %}
{% block content %}

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}}</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Help">
<title>{{'SITE_NAME' | app_config}}</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} Help">
{% endblock %}
{% block content %}

View File

@ -64,7 +64,7 @@
{% block title %}
<title>Flagged Posts</title>
<meta name="description" content="on {{"SITE_NAME" | app_config}}">
<meta name="description" content="on {{'SITE_NAME' | app_config}}">
{% endblock %}
{% block content %}

View File

@ -36,7 +36,7 @@
{% block title %}
<title>Image feed</title>
<meta name="description" content="on {{"SITE_NAME" | app_config}}">
<meta name="description" content="on {{'SITE_NAME' | app_config}}">
{% endblock %}

View File

@ -3,7 +3,7 @@
{% block title %}
<title>Removed Content</title>
<meta name="description" content="on {{"SITE_NAME" | app_config}}">
<meta name="description" content="on {{'SITE_NAME' | app_config}}">
{% endblock %}
{% block content %}

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}} - API</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} API Guide">
<title>{{'SITE_NAME' | app_config}} - API</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} API Guide">
{% endblock %}
{% block content %}
@ -20,7 +20,7 @@ This page explains how to obtain and use an access token.
## Step 1: Create your Application
In the [apps tab of {{"SITE_NAME" | app_config}} settings](/settings/apps), fill in and submit the form to request an access token. You will need:
In the [apps tab of {{'SITE_NAME' | app_config}} settings](/settings/apps), fill in and submit the form to request an access token. You will need:
* an application name
* a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).
@ -28,13 +28,13 @@ In the [apps tab of {{"SITE_NAME" | app_config}} settings](/settings/apps), fill
Don't worry too much about accuracy; you will be able to change all of these later.
{{"SITE_NAME" | app_config}} administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.
{{'SITE_NAME' | app_config}} administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.
DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!
## Step 2: Using the Access Token
To use the access token, include the following header in subsequent API requests to {{"SITE_NAME" | app_config}}: `Authorization: access_token_goes_here`
To use the access token, include the following header in subsequent API requests to {{'SITE_NAME' | app_config}}: `Authorization: access_token_goes_here`
Python example:
@ -73,13 +73,13 @@ The expected result of this would be a large JSON representation of the posts po
<pre>
</pre>
The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their {{"SITE_NAME" | app_config}} account without having to provide their login information to the application.
The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their {{'SITE_NAME' | app_config}} account without having to provide their login information to the application.
This page explains how to obtain API application keys, how to prompt a user for authorization, and how to obtain and use access tokens.
## Step 1: Create your Application
In the [apps tab of {{"SITE_NAME" | app_config}} settings](/settings/apps), fill in and submit the form to request new API keys. You will need:
In the [apps tab of {{'SITE_NAME' | app_config}} settings](/settings/apps), fill in and submit the form to request new API keys. You will need:
* an application name
* a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).
@ -87,7 +87,7 @@ In the [apps tab of {{"SITE_NAME" | app_config}} settings](/settings/apps), fill
Don't worry too much about accuracy; you will be able to change all of these later.
{{"SITE_NAME" | app_config}} administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.
{{'SITE_NAME' | app_config}} administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.
DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!
@ -95,15 +95,15 @@ DO NOT reveal your Client ID or Access Token. Anyone with these information will
Send your user to `{{request.host_url}}authorize/?client_id=YOUR_CLIENT_ID`
If done correctly, the user will see that your application wants to access their {{"SITE_NAME" | app_config}} account, and be prompted to approve or deny the request.
If done correctly, the user will see that your application wants to access their {{'SITE_NAME' | app_config}} account, and be prompted to approve or deny the request.
## Step 3: Catch the redirect
The user clicks "Authorize". {{"SITE_NAME" | app_config}} will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.
The user clicks "Authorize". {{'SITE_NAME' | app_config}} will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.
## Step 4: Using the Access Token
To use the access token, include the following header in subsequent API requests to {{"SITE_NAME" | app_config}}: `Authorization: access_token_goes_here`
To use the access token, include the following header in subsequent API requests to {{'SITE_NAME' | app_config}}: `Authorization: access_token_goes_here`
Python example:

View File

@ -5,10 +5,10 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="{% block pagedesc %}{{"SITE_NAME" | app_config}}{% endblock %}">
<meta name="description" content="{% block pagedesc %}{{'SITE_NAME' | app_config}}{% endblock %}">
<meta name="author" content="">
<title>{% block pagetitle %}{{"SITE_NAME" | app_config}}{% endblock %}</title>
<title>{% block pagetitle %}{{'SITE_NAME' | app_config}}{% endblock %}</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -23,12 +23,12 @@
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{"SITE_NAME" | app_config}} CSS -->
<!-- {{'SITE_NAME' | app_config}} CSS -->
{% if v %}
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
</head>
@ -57,7 +57,7 @@
<div class="col-10 col-md-7">
<div class="mb-5">
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{"SITE_NAME" | app_config}}</span></a>
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{'SITE_NAME' | app_config}}</span></a>
</div>
<h1 class="h2">{% block authtitle %}{% endblock %}</h1>

View File

@ -9,7 +9,7 @@
<div>Badges are sorted into bronze, silver, gold, and diamond tiers, based on the relative difficulty of obtaining them.</div>
<h2 class="mt-3">Unlockable Badges</h2>
<div>These badges are automatically granted through different kinds of activity on {{"SITE_NAME" | app_config}}.</div>
<div>These badges are automatically granted through different kinds of activity on {{'SITE_NAME' | app_config}}.</div>
<pre></pre>
<table class="table table-striped mb-5">
<thead class="bg-primary text-white">

View File

@ -93,7 +93,7 @@
<span class="font-weight-bold"><a href="{{c.post.permalink}}">{{c.post.title | safe}}</a></span>
{% endif %}
{% elif c.author_id==1046 or c.author_id==2360 %}
<span class="font-weight-bold">{{"SITE_NAME" | app_config}} Notification</span>
<span class="font-weight-bold">{{'SITE_NAME' | app_config}} Notification</span>
{% else %}
<span class="font-weight-bold">Private Message</span>
{% endif %}
@ -125,7 +125,7 @@
{% if c.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>&nbsp;{% endif %}
{% if v and v.admin_level==6 and c.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-toggle="tooltip" data-placement="bottom" title="Shadowbanned user"></i>&nbsp;{% endif %}
{% if c.is_pinned %}<i class="text-admin fas fa-thumbtack fa-rotate--45" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Pinned comment"></i>&nbsp;{% endif %}
{% if c.distinguish_level %}<i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{"SITE_NAME" | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if c.distinguish_level %}<i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{'SITE_NAME' | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if c.is_op %}<i class="fas fa-microphone-stand text-info" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="OP"></i>&nbsp;{% endif %}
{% if c.is_bot %}<i class="fad fa-robot text-info" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Bot"></i>&nbsp;{% endif %}
{% if c.is_blocking %}<i class="fas fa-user-minus text-warning" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{% if v and v.admin_level >= 2 %}You're blocking this user, but you can see this comment because {{'it\'s an admin comment' if c.distinguish_level else 'you\'re an admin'}}.{% else %}Comment author is banned{% endif %}"></i>&nbsp;{% endif %}

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}} - Contact</title>
<meta name="description" content="Contact {{"SITE_NAME" | app_config}} Admins">
<title>{{'SITE_NAME' | app_config}} - Contact</title>
<meta name="description" content="Contact {{'SITE_NAME' | app_config}} Admins">
{% endblock %}
@ -31,10 +31,10 @@
</div>
{% endif %}
<h1 class="article-title">Contact {{"SITE_NAME" | app_config}} Admins</h1>
<h1 class="article-title">Contact {{'SITE_NAME' | app_config}} Admins</h1>
{% if v and v.is_activated and not v.is_suspended %}
<p>Use this form to contact {{"SITE_NAME" | app_config}} Admins.</p>
<p>Use this form to contact {{'SITE_NAME' | app_config}} Admins.</p>
<label class="mt-3">Your Email</label>
<input class="form-control" value="{{v.email}}" readonly="readonly" disabled>
@ -50,7 +50,7 @@
{% elif v and v.is_suspended %}
<p>Your {{"SITE_NAME" | app_config}} account has been suspended. You are not permitted to use this form.</p>
<p>Your {{'SITE_NAME' | app_config}} account has been suspended. You are not permitted to use this form.</p>
{% elif v %}

View File

@ -827,17 +827,17 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="thumbnail" content="/assets/images/preview.png">
<meta name="thumbnail" content="/assets/images/{{'SITE_NAME' | app_config}}/preview.png">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<link rel="icon" type="image/png" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
{% block title %}
<title>{{"SITE_NAME" | app_config}}</title>
<title>{{'SITE_NAME' | app_config}}</title>
<meta property="og:type" content="article" />
<meta property="og:title" content="{{"SITE_NAME" | app_config}}" />
<meta property="og:title" content="{{'SITE_NAME' | app_config}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta property="og:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta property="og:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta property="og:url" content="{{request.path | full_link}}">
<meta property="og:description" name="description" content="Dude bussy lmao">
<meta property="og:author" name="author" content="@{{request.host_url}}" />
@ -845,10 +845,10 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="@{{request.host_url}}">
<meta name="twitter:title" content="{{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="@{{request.host_url}}">
<meta name="twitter:description" content="Dude bussy lmao" />
<meta name="twitter:image" content="/assets/images/preview.png" />
<meta name="twitter:image" content="/assets/images/{{'SITE_NAME' | app_config}}/preview.png" />
<meta name="twitter:url" content="{{request.path | full_link}}" />
{% endblock %}
@ -862,149 +862,147 @@
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/favicon.png">
<!---<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicon.png">--->
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
<!---<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">--->
<link rel="manifest" href="/assets/manifest.json">
<link rel="mask-icon" href="/assets/images/favicon.png" color="#FF66AC">
<link rel="shortcut icon" href="/assets/images/favicon.png">
<meta name="apple-mobile-web-app-title" content="{{"SITE_NAME" | app_config}}">
<meta name="application-name" content="{{"SITE_NAME" | app_config}}">
<meta name="msapplication-TileColor" content="#FF66AC">
<link rel="mask-icon" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png" color="#{{'DEFAULT_COLOR' | app_config}}">
<link rel="shortcut icon" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
<meta name="apple-mobile-web-app-title" content="{{'SITE_NAME' | app_config}}">
<meta name="application-name" content="{{'SITE_NAME' | app_config}}">
<meta name="msapplication-TileColor" content="#{{'DEFAULT_COLOR' | app_config}}">
<meta name="msapplication-config" content="/assets/images/browserconfig.xml">
<meta name="theme-color" content="#FF66AC">
<meta name="theme-color" content="#{{'DEFAULT_COLOR' | app_config}}">
<link
rel="apple-touch-startup-image"
sizes="320x480"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="640x960"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-icon"
sizes="640x1136"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-icon"
sizes="750x1334"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="768x1004"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="768x1024"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="828x1792"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1024x748"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1024x768"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1125x2436"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1242x2208"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1242x2688"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1334x750"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1536x2008"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1536x2048"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1668x2224"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="1792x828"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2048x1496"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2048x1536"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2048x2732"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2208x1242"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2224x1668"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2436x1125"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2668x1242"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<link
rel="apple-touch-startup-image"
sizes="2737x2048"
href="/assets/images/favicon.png"
href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png"
/>
<!-- {{"SITE_NAME" | app_config}} CSS -->
{% block stylesheets %}
@ -1012,7 +1010,7 @@
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
{% endblock %}
@ -1036,7 +1034,7 @@
<body id="{% if request.path != '/comments' %}{% block pagetype %}frontpage{% endblock %}{% endif %}" style="overflow-x: hidden; {% if v and v.background %} background:url(/assets/images/backgrounds/{{v.background}}) no-repeat center center fixed !important; background-size: cover!important; background-color: #000!important;{% endif %}">
<a href="https://secure.transequality.org/site/Donation2?df_id=1480"><img src="/assets/images/{% if v %}banner.png{% else %}cached.jpg{% endif %}" width="100%"></a>
<a href="https://secure.transequality.org/site/Donation2?df_id=1480"><img src="/assets/images/{{'SITE_NAME' | app_config}}/{% if v %}banner.png{% else %}cached.jpg{% endif %}" width="100%"></a>
{% include "header.html" %}
@ -1162,7 +1160,7 @@
{% if request.path=='/' and g.system and g.timestamp>session.get('tooltip_last_dismissed',0)+60*60*24 and (not g.system.endswith('/chrome') and not g.system.endswith('/other')) and not g.system.endswith('/webview') %}
<div id="mobile-prompt-container" class="fixed-bottom">
<div id="mobile-prompt" href="javascript:void(0)" data-toggle="tooltip" data-container="#mobile-prompt-container" data-placement="top" data-trigger="click" title="Install the {{"SITE_NAME" | app_config}} webapp by saving this page to your home screen!"></div>
<div id="mobile-prompt" href="javascript:void(0)" data-toggle="tooltip" data-container="#mobile-prompt-container" data-placement="top" data-trigger="click" title="Install the {{'SITE_NAME' | app_config}} webapp by saving this page to your home screen!"></div>
</div>
{% endif %}

View File

@ -15,7 +15,7 @@
<i class="fad fa-trash-alt text-muted" style="font-size: 3.5rem;"></i>
</div>
<p>Your comment will be removed everywhere on {{"SITE_NAME" | app_config}}. This action cannot be undone.</p>
<p>Your comment will be removed everywhere on {{'SITE_NAME' | app_config}}. This action cannot be undone.</p>
</div>
<div class="modal-footer">

View File

@ -22,9 +22,9 @@
<div class="h4 d-md-none">Delete post?</div>
<p class="d-none d-md-block">Your post will be removed everywhere on {{"SITE_NAME" | app_config}}.</p>
<p class="d-none d-md-block">Your post will be removed everywhere on {{'SITE_NAME' | app_config}}.</p>
<p class="text-muted d-md-none">Your post will be removed everywhere on {{"SITE_NAME" | app_config}}.</p>
<p class="text-muted d-md-none">Your post will be removed everywhere on {{'SITE_NAME' | app_config}}.</p>
<div class="d-md-none">

View File

@ -25,7 +25,7 @@
</td>
</tr>
</table>
<p>Please note that {{"SITE_NAME" | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<table class="body-sub" role="presentation">
<tr>
<td>

View File

@ -433,7 +433,7 @@
<![endif]-->
</head>
<body>
<span class="preheader">{% block preheader %}Thanks for joining {{"SITE_NAME" | app_config}}! Please take a sec to verify the email you used to sign up.{% endblock %}</span>
<span class="preheader">{% block preheader %}Thanks for joining {{'SITE_NAME' | app_config}}! Please take a sec to verify the email you used to sign up.{% endblock %}</span>
<table class="email-wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td align="center">
@ -441,7 +441,7 @@
<tr>
<td class="email-masthead">
<a href="/" class="f-fallback email-masthead_name">
{{"SITE_NAME" | app_config}}
{{'SITE_NAME' | app_config}}
</a>
</td>
</tr>

View File

@ -2,10 +2,10 @@
{% block title %}Verify Your Email{% endblock %}</h1>
{% block preheader %}Verify your new {{"SITE_NAME" | app_config}} email.{% endblock %}
{% block preheader %}Verify your new {{'SITE_NAME' | app_config}} email.{% endblock %}
{% block content %}
<p>You told us you wanted to change your {{"SITE_NAME" | app_config}} account email. To finish this process, please verify your new email address:</p>
<p>You told us you wanted to change your {{'SITE_NAME' | app_config}} account email. To finish this process, please verify your new email address:</p>
<!-- Action -->
<table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
@ -45,7 +45,7 @@
</td>
</tr>
</table>
<p>Please note that {{"SITE_NAME" | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<table class="body-sub" role="presentation">
<tr>
<td>

View File

@ -1,9 +1,9 @@
{% extends "email/default.html" %}
{% block title %}Welcome to {{"SITE_NAME" | app_config}}!{% endblock %}</h1>
{% block title %}Welcome to {{'SITE_NAME' | app_config}}!{% endblock %}</h1>
{% block content %}
<p>Thanks for joining {{"SITE_NAME" | app_config}}. Were happy to have you on board. To get the most out of {{"SITE_NAME" | app_config}}, please verify your account email:</p>
<p>Thanks for joining {{'SITE_NAME' | app_config}}. Were happy to have you on board. To get the most out of {{'SITE_NAME' | app_config}}, please verify your account email:</p>
<!-- Action -->
<table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
@ -43,7 +43,7 @@
</td>
</tr>
</table>
<p>Please note that {{"SITE_NAME" | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<p>Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.</p>
<!-- Sub copy -->
<table class="body-sub" role="presentation">
<tr>

View File

@ -1,7 +1,7 @@
{% extends "email/default.html" %}
{% block title %}Reset Your Password{% endblock %}
{% block preheader %}Reset your {{"SITE_NAME" | app_config}} password.{% endblock %}
{% block preheader %}Reset your {{'SITE_NAME' | app_config}} password.{% endblock %}
{% block content %}
<p>To reset your password, click the button below:</p>

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/favicon.png">
<link rel="icon" type="image/png" href="/assets/{{'SITE_NAME' | app_config}}/favicon.png">
<title>503 Service Unavailable</title>
@ -18,18 +18,18 @@
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- iOS webapp -->
<link rel="apple-touch-icon" href="/assets/favicon.png">
<link rel="apple-touch-icon" href="/assets/{{'SITE_NAME' | app_config}}/favicon.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-title" content="{{"SITE_NAME" | app_config}}">
<meta name="apple-mobile-web-app-title" content="{{'SITE_NAME' | app_config}}">
<!-- {{"SITE_NAME" | app_config}} CSS -->
<!-- {{'SITE_NAME' | app_config}} CSS -->
{% if v %}
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
<!-- Font Awesome -->
@ -44,7 +44,7 @@
<!-- Navigation -->
<nav class="navbar navbar-expand-md navbar-light bg-white shadow shadow-md fixed-top" id="navbar">
<div class="container">
<div class="flex-grow-1"><span class="text-primary navbar-brand">{{"SITE_NAME" | app_config}}</span></div>
<div class="flex-grow-1"><span class="text-primary navbar-brand">{{'SITE_NAME' | app_config}}</span></div>
@ -73,7 +73,7 @@
<pre></pre>
</span>
<h1 class="h5">503 Service Unavailable</h1>
<p class="text-muted">r{{"SITE_NAME" | app_config}} is unavailable.</p>
<p class="text-muted">r{{'SITE_NAME' | app_config}} is unavailable.</p>
<p class="text-muted">HI IT'S CARP AGAIN<BR>I'm like 95% sure this error means Aevann is restarting the server to apply a change. But I think that's also 520/521? What causes a 503? No one knows. Wait like a minute (maybe two) and see if it's still happening. It shouldn't. Good luck!</p>
<button class="btn btn-primary" onclick="window.location.reload()">
Refresh

View File

@ -1,10 +1,10 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{"SITE_NAME" | app_config}} Password Reset{% endblock %}
{% block pagetitle %}{{'SITE_NAME' | app_config}} Password Reset{% endblock %}
{% block authtitle %}Reset your password.{% endblock %}
{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{"SITE_NAME" | app_config}} account and change your password.{% endblock %}
{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{'SITE_NAME' | app_config}} account and change your password.{% endblock %}
{% block content %}

View File

@ -1,7 +1,7 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}} - Formatting</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Formatting">
<title>{{'SITE_NAME' | app_config}} - Formatting</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} Formatting">
{% endblock %}
{% block content %}
@ -12,7 +12,7 @@
{% filter markdown %}
# Formatting
On {{"SITE_NAME" | app_config}}, you can use Markdown formatting.
On {{'SITE_NAME' | app_config}}, you can use Markdown formatting.
## Inline formatting
@ -49,8 +49,8 @@ On {{"SITE_NAME" | app_config}}, you can use Markdown formatting.
</tr>
<tr>
<td>Links</td>
<td>[{{"SITE_NAME" | app_config}}]({{request.host_url}})</td>
<td><a href="{{request.host_url}}">{{"SITE_NAME" | app_config}}</a></td>
<td>[{{'SITE_NAME' | app_config}}]({{request.host_url}})</td>
<td><a href="{{request.host_url}}">{{'SITE_NAME' | app_config}}</a></td>
</tr>
<tr>
<td>Emojis</td>
@ -132,8 +132,8 @@ We also have some custom hooks for mentioning users and subreddits. Note that th
</tr>
<tr>
<td>Subreddit Mention</td>
<td>r/{{"SITE_NAME" | app_config}}</td>
<td><a class="d-inline-block" href="https://www.reddit.com/r/{{"SITE_NAME" | app_config}}/">r/{{"SITE_NAME" | app_config}}</a></td>
<td>r/{{'SITE_NAME' | app_config}}</td>
<td><a class="d-inline-block" href="https://www.reddit.com/r/{{'SITE_NAME' | app_config}}/">r/{{'SITE_NAME' | app_config}}</a></td>
</tr>
<tr>
<td>Redditor Mention</td>

View File

@ -2,7 +2,7 @@
<nav class="navbar navbar-expand-md navbar-light shadow shadow-md fixed-top" id="navbar">
<div class="container-fluid">
<div class="flex-grow-1"><a {% if v %}href="/"{% else %}href="/logged_out"{% endif %} class="navbar-brand"><img src="/assets/images/logo.gif" height="20"><span class="text-small-extra text-uppercase text-gray-400"> Sigma</span></a></div>
<div class="flex-grow-1"><a {% if v %}href="/"{% else %}href="/logged_out"{% endif %} class="navbar-brand"><img src="/assets/images/{{'SITE_NAME' | app_config}}/logo.gif" height="20"><span class="text-small-extra text-uppercase text-gray-400"> Sigma</span></a></div>
<div class="flex-grow-1 d-fl d-none d-md-block">
<form class="form-inline search flex-nowrap mx-0 mx-lg-auto" action="/search/posts/" method="get">
<input class="form-control w-100" type="search" placeholder="Search" aria-label="Search" name="q" value="{{request.args.get('q', '')}}">
@ -96,10 +96,10 @@
</div>
<hr class="my-2">
<div class="px-2">
<a class="dropdown-item" href="/assets/{{"SITE_NAME" | app_config}}.apk"><i class="fab fa-android fa-fw text-left mr-3"></i>Android app</a>
<a class="dropdown-item" href="/assets/{{'SITE_NAME' | app_config}}.apk"><i class="fab fa-android fa-fw text-left mr-3"></i>Android app</a>
<a class="dropdown-item" href="/post/1xq/posting-guidelines-policies-legal-shit"><i class="fas fa-balance-scale fa-fw text-left mr-3"></i>Rules</a>
<a class="dropdown-item" href="/changelog"><i class="fas fa-clipboard fa-fw text-left mr-3"></i>Changelog</a>
<a class="dropdown-item" href="https://github.com/Aevann1/{{"SITE_NAME" | app_config}}"><i class="fab fa-github fa-fw text-left mr-3"></i>Source code</a>
<a class="dropdown-item" href="https://github.com/Aevann1/{{'SITE_NAME' | app_config}}"><i class="fab fa-github fa-fw text-left mr-3"></i>Source code</a>
<a class="dropdown-item" href="/discord"><i class="fab fa-discord fa-fw text-left mr-3"></i>Discord</a>
<a class="dropdown-item" href="https://rdrama.gumroad.com/l/tfcvri"><i class="fas fa-dollar-sign fa-fw text-left mr-3"></i>Donate</a>
<a class="dropdown-item" href="/archives"><i class="fas fa-book fa-fw text-left mr-3"></i>Subreddit Archives</a>
@ -152,9 +152,9 @@
<li class="nav-item">
<a class="nav-link" href="/settings"><i class="fas fa-cog fa-fw mr-3"></i>My account</a>
</li>
<li class="nav-item"><a class="nav-link" href="/assets/{{"SITE_NAME" | app_config}}.apk"><i class="fab fa-android fa-fw mr-3"></i>Android app</a></li>
<li class="nav-item"><a class="nav-link" href="/assets/{{'SITE_NAME' | app_config}}.apk"><i class="fab fa-android fa-fw mr-3"></i>Android app</a></li>
<li class="nav-item"><a class="nav-link" href="/post/1xq/posting-guidelines-policies-legal-shit"><i class="fas fa-balance-scale fa-fw mr-3"></i>Rules</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/Aevann1/{{"SITE_NAME" | app_config}}"><i class="fab fa-github fa-fw mr-3"></i>Source code</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/Aevann1/{{'SITE_NAME' | app_config}}"><i class="fab fa-github fa-fw mr-3"></i>Source code</a></li>
<li class="nav-item"><a class="nav-link" href="/discord"><i class="fab fa-discord fa-fw mr-3"></i>Discord</a></li>
<li class="nav-item"><a class="nav-link" href="https://rdrama.gumroad.com/l/tfcvri"><i class="fas fa-dollar-sign fa-fw mr-3"></i>Donate</a></li>
<li class="nav-item"><a class="nav-link" href="/archives"><i class="fas fa-book fa-fw mr-3"></i>Subreddit Archives</a></li>

View File

@ -8,7 +8,7 @@
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
{% endblock %}

View File

@ -6,11 +6,11 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Sign in to {{"SITE_NAME" | app_config}}">
<meta name="description" content="Sign in to {{'SITE_NAME' | app_config}}">
<meta name="author" content="">
{% block title %}
<title>Login - {{"SITE_NAME" | app_config}}</title>
<title>Login - {{'SITE_NAME' | app_config}}</title>
{% endblock %}
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -26,8 +26,8 @@
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{"SITE_NAME" | app_config}} CSS -->
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<!-- {{'SITE_NAME' | app_config}} CSS -->
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
</head>
@ -55,7 +55,7 @@
<div class="col-10 col-md-7">
<div class="mb-5">
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{"SITE_NAME" | app_config}}</span></a>
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{'SITE_NAME' | app_config}}</span></a>
</div>
{% block content %}

View File

@ -6,10 +6,10 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Sign in to {{"SITE_NAME" | app_config}}">
<meta name="description" content="Sign in to {{'SITE_NAME' | app_config}}">
<meta name="author" content="">
<title>2-Step Login - {{"SITE_NAME" | app_config}}</title>
<title>2-Step Login - {{'SITE_NAME' | app_config}}</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
@ -22,8 +22,8 @@
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{"SITE_NAME" | app_config}} CSS -->
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<!-- {{'SITE_NAME' | app_config}} CSS -->
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
</head>
@ -52,7 +52,7 @@
<div class="col-10 col-md-7">
<div class="mb-5">
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{"SITE_NAME" | app_config}}</span></a>
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{'SITE_NAME' | app_config}}</span></a>
</div>
<div id="login-form" class="">

View File

@ -1,6 +1,6 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{"SITE_NAME" | app_config}} Two-Factor Removal{% endblock %}
{% block pagetitle %}{{'SITE_NAME' | app_config}} Two-Factor Removal{% endblock %}
{% block authtitle %}Remove the two-factor authentication from your account.{% endblock %}

View File

@ -34,7 +34,7 @@
<input type="submit" class="btn btn-primary" id="auth_button" value="Authorize {{application.app_name}}">
<a href="/" class="btn btn-secondary">No, back to {{"SITE_NAME" | app_config}}</a>
<a href="/" class="btn btn-secondary">No, back to {{'SITE_NAME' | app_config}}</a>
</form>

View File

@ -1,6 +1,6 @@
{% extends "authforms.html" %}
{% block pagetitle %}{{"SITE_NAME" | app_config}} Password Reset{% endblock %}
{% block pagetitle %}{{'SITE_NAME' | app_config}} Password Reset{% endblock %}
{% block authtitle %}Change your password.{% endblock %}

View File

@ -3,7 +3,7 @@
{% block pagetype %}search{% endblock %}
{% block title %}
<title>Search for "{{query}}" - {{"SITE_NAME" | app_config}}"</title> <!-- include dynamic jinja-generated text in title -->
<title>Search for "{{query}}" - {{'SITE_NAME' | app_config}}"</title> <!-- include dynamic jinja-generated text in title -->
<meta name="description" content="{{total}} result{{'s' if total != 1 else ''}}">
{% endblock %}

View File

@ -47,13 +47,13 @@
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<link rel="icon" type="image/png" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
<title>{% block pagetitle %}Settings - {{"SITE_NAME" | app_config}}{% endblock %}</title>
<title>{% block pagetitle %}Settings - {{'SITE_NAME' | app_config}}{% endblock %}</title>
<meta property="og:type" content="article" />
<meta property="og:title" content="{{"SITE_NAME" | app_config}}" />
<meta property="og:title" content="{{'SITE_NAME' | app_config}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta property="og:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta property="og:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="Dude bussy lmao">
<meta property="og:author" name="author" content="@{{request.host_url}}" />
@ -61,10 +61,10 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="@{{request.host_url}}">
<meta name="twitter:title" content="{{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="@{{request.host_url}}">
<meta name="twitter:description" content="Dude bussy lmao" />
<meta name="twitter:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta name="twitter:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta name="twitter:url" content="{{request.host}}" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -72,7 +72,7 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- {{"SITE_NAME" | app_config}} CSS -->
<!-- {{'SITE_NAME' | app_config}} CSS -->
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}

View File

@ -8,13 +8,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<meta name="thumbnail" content="/assets/images/preview.png">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<meta name="thumbnail" content="/assets/images/{{'SITE_NAME' | app_config}}/preview.png">
<link rel="icon" type="image/png" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
<meta property="og:type" content="article" />
<meta property="og:title" content="{{"SITE_NAME" | app_config}}" />
<meta property="og:title" content="{{'SITE_NAME' | app_config}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta property="og:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta property="og:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta property="og:url" content="{{request.path | full_link}}">
<meta property="og:description" name="description" content="Dude bussy lmao">
<meta property="og:author" name="author" content="{{request.host_url}}" />
@ -22,15 +22,15 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="{{request.host_url}}">
<meta name="twitter:description" content="Dude bussy lmao" />
<meta name="twitter:image" content="/assets/images/preview.png" />
<meta name="twitter:image" content="/assets/images/{{'SITE_NAME' | app_config}}/preview.png" />
<meta name="twitter:url" content="{{request.path | full_link}}" />
<title>{% block pagetitle %}{{"SITE_NAME" | app_config}}{% endblock %}</title>
<title>{% block pagetitle %}{{'SITE_NAME' | app_config}}{% endblock %}</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -38,12 +38,12 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- {{"SITE_NAME" | app_config}} CSS -->
<!-- {{'SITE_NAME' | app_config}} CSS -->
{% if v %}
<link id="css-link" rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% else %}
<link id="css-link" rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link id="css-link" rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
<!-- Font Awesome -->

View File

@ -1,8 +1,8 @@
{% extends "settings.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}} - FAQ</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} FAQ">
<title>{{'SITE_NAME' | app_config}} - FAQ</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} FAQ">
{% endblock %}
{% block content %}

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Block Settings - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Block Settings - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Custom CSS - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Custom CSS - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Profile Settings - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Profile Settings - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Profile Settings - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Profile Settings - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}
{% include "emoji_modal.html" %}
@ -320,10 +320,10 @@
<input type="submit" class="btn btn-secondary text-capitalize mr-2 mb-0 mt-2" value="Disconnect Discord">
</form>
<div class="text-small-extra text-muted mt-3">Disconnecting your Discord account will remove you from the {{"SITE_NAME" | app_config}} Discord server.</div>
<div class="text-small-extra text-muted mt-3">Disconnecting your Discord account will remove you from the {{'SITE_NAME' | app_config}} Discord server.</div>
{% else %}
<a href="/discord" class="btn btn-primary">Link Discord</a>
<div class="text-small-extra text-muted mt-3">Link your Discord account to join the {{"SITE_NAME" | app_config}} Discord server.</div>
<div class="text-small-extra text-muted mt-3">Link your Discord account to join the {{'SITE_NAME' | app_config}} Discord server.</div>
{% endif %}
</div>
@ -335,7 +335,7 @@
<h2 class="h5" name="referral">RSS Feed</h2>
<p class="text-small text-muted">Subscribe to the {{"SITE_NAME" | app_config}} RSS feed.</p>
<p class="text-small text-muted">Subscribe to the {{'SITE_NAME' | app_config}} RSS feed.</p>
<div class="settings-section rounded">
@ -355,7 +355,7 @@
<h2 class="h5" id="bio" name="bio">Your Profile</h2>
<p class="text-small text-muted">Edit how others see you on {{"SITE_NAME" | app_config}}.</p>
<p class="text-small text-muted">Edit how others see you on {{'SITE_NAME' | app_config}}.</p>
<div class="settings-section rounded mb-0">

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Custom profilecss - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Custom profilecss - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}

View File

@ -1,6 +1,6 @@
{% extends "settings.html" %}
{% block pagetitle %}Security Settings - {{"SITE_NAME" | app_config}}{% endblock %}
{% block pagetitle %}Security Settings - {{'SITE_NAME' | app_config}}{% endblock %}
{% block content %}
@ -185,7 +185,7 @@
<h2 class="h5">Log Out Everywhere</h2>
<p class="text-small text-muted">Log all other devices out of your {{"SITE_NAME" | app_config}} account.</p>
<p class="text-small text-muted">Log all other devices out of your {{'SITE_NAME' | app_config}} account.</p>
<div class="settings-section rounded">
@ -241,7 +241,7 @@
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Delete your {{"SITE_NAME" | app_config}} account</h5>
<h5 class="modal-title">Delete your {{'SITE_NAME' | app_config}} account</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="far fa-times"></i></span>
</button>
@ -283,7 +283,7 @@
<div class="w-lg-100">
<textarea class="form-control mb-2" id="delete-reason" name="delete_reason" placeholder="Tell us why you're leaving {{"SITE_NAME" | app_config}}. (Optional)"></textarea>
<textarea class="form-control mb-2" id="delete-reason" name="delete_reason" placeholder="Tell us why you're leaving {{'SITE_NAME' | app_config}}. (Optional)"></textarea>
</div>

View File

@ -69,9 +69,9 @@
<meta name="description" content="Sign up in under 27 seconds.">
<meta name="author" content="">
<meta property="og:type" content="article" />
<meta property="og:title" content="{{"SITE_NAME" | app_config}}" />
<meta property="og:title" content="{{'SITE_NAME' | app_config}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta property="og:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta property="og:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="Sign up now! Dude bussy lmao">
<meta property="og:author" name="author" content="{{request.host_url}}" />
@ -79,13 +79,13 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="{{request.host_url}}">
<meta name="twitter:description" content="Sign up now! Dude bussy lmao" />
<meta name="twitter:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta name="twitter:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta name="twitter:url" content="{{request.host}}" />
<title>{% if ref_user %}{{ref_user.username}} invites you to {{"SITE_NAME" | app_config}}{% else %}Sign up - {{"SITE_NAME" | app_config}}{% endif %}</title>
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}Sign up - {{'SITE_NAME' | app_config}}{% endif %}</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -100,8 +100,8 @@
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{"SITE_NAME" | app_config}} CSS -->
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<!-- {{'SITE_NAME' | app_config}} CSS -->
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
</head>
@ -129,14 +129,14 @@
<div class="col-10 col-md-7">
<div class="mb-3">
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{"SITE_NAME" | app_config}}</span></a>
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{'SITE_NAME' | app_config}}</span></a>
</div>
<div id="register-form" class="">
{% if ref_user %}
<h1 class="h2">@{{ref_user.username}} has invited you!</h1>
<p class="text-muted mb-md-2">Looks like someone wants you to join {{"SITE_NAME" | app_config}}.</p>
<p class="text-muted mb-md-2">Looks like someone wants you to join {{'SITE_NAME' | app_config}}.</p>
{% else %}
<h1 class="h2">Create your account.</h1>
<p class="text-muted mb-md-2">No email address required.</p>
@ -223,7 +223,7 @@
</div>
</div>
<!-- {{"SITE_NAME" | app_config}} JS -->
<!-- {{'SITE_NAME' | app_config}} JS -->
<script src="/assets/js/all_js.js"></script>

View File

@ -9,9 +9,9 @@
<meta name="description" content="Sign up in under 27 seconds.">
<meta name="author" content="">
<meta property="og:type" content="article" />
<meta property="og:title" content="{{"SITE_NAME" | app_config}}" />
<meta property="og:title" content="{{'SITE_NAME' | app_config}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta property="og:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta property="og:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta property="og:url" content="{{request.host}}">
<meta property="og:description" name="description" content="Sign up now! Dude bussy lmao">
<meta property="og:author" name="author" content="{{request.host_url}}" />
@ -19,13 +19,13 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="{{request.host_url}}">
<meta name="twitter:description" content="Sign up now! Dude bussy lmao" />
<meta name="twitter:image" content="{{'/assets/images/preview.png' | full_link}}" />
<meta name="twitter:image" content="{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}" />
<meta name="twitter:url" content="{{request.host}}" />
<title>{% if ref_user %}{{ref_user.username}} invites you to {{"SITE_NAME" | app_config}}{% else %}{{"SITE_NAME" | app_config}}{% endif %}</title>
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}{{'SITE_NAME' | app_config}}{% endif %}</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
@ -40,8 +40,8 @@
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{"SITE_NAME" | app_config}} CSS -->
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<!-- {{'SITE_NAME' | app_config}} CSS -->
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
</head>
@ -69,7 +69,7 @@
<div class="col-10 col-md-7">
<div class="text-center mb-5">
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{"SITE_NAME" | app_config}}</span></a>
<a href="/" class="text-decoration-none"><span class="h3 text-primary">{{'SITE_NAME' | app_config}}</span></a>
</div>
<div id="register-form" class="">
@ -142,7 +142,7 @@
});
</script>
<!-- {{"SITE_NAME" | app_config}} JS -->
<!-- {{'SITE_NAME' | app_config}} JS -->
<script src="/assets/js/all_js.js"></script>

View File

@ -26,7 +26,7 @@
<meta property="og:type" content="article" />
{% if comment_info and not comment_info.is_banned and not linked_comment.deleted_utc > 0 %}
<title>{{'@'+comment_info.author.username}} comments on "{{p.title}} - {{"SITE_NAME" | app_config}}"</title>
<title>{{'@'+comment_info.author.username}} comments on "{{p.title}} - {{'SITE_NAME' | app_config}}"</title>
<meta property="og:article:author" content="{{'@'+comment_info.author.username}}" />
@ -34,17 +34,17 @@
{% if comment_info.edited_utc %}<meta property="article:modified_time" content="{{comment_info.edited_string}}" />{% endif %}
<meta property="og:description" name="description" content="{{comment_info.body}}" />
<meta property="og:author" name="author" content="{{'@'+comment_info.author.username}}" />
<meta property="og:title" content="{{'@'+comment_info.author.username}} comments on {{p.title}} - {{"SITE_NAME" | app_config}}" />
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta property="og:title" content="{{'@'+comment_info.author.username}} comments on {{p.title}} - {{'SITE_NAME' | app_config}}" />
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta property="og:url" content="{{comment_info.permalink | full_link}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{'@'+comment_info.author.username}} comments on {{p.title}} - {{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{'@'+comment_info.author.username}} comments on {{p.title}} - {{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="{{'@'+comment_info.author.username}}">
<meta name="twitter:description" content="{{comment_info.body}}" />
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:url" content="{{p.permalink | full_link}}" />
{% if linked_comment.author.is_private %}
@ -52,7 +52,7 @@
{% endif %}
{% else %}
<title>{{p.title | safe}} - {{"SITE_NAME" | app_config}}</title>
<title>{{p.title | safe}} - {{'SITE_NAME' | app_config}}</title>
<meta property="og:article:author" content="{{'@'+p.author.username}}" />
@ -60,17 +60,17 @@
{% if p.edited_utc %}<meta property="article:modified_time" content="{{p.edited_string}}" />{% endif %}
<meta property="og:description" name="description" content="{{p.realbody(V)}}" />
<meta property="og:author" name="author" content="{{'@'+p.author.username}}" />
<meta property="og:title" content="{{p.title}} - {{"SITE_NAME" | app_config}}" />
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta property="og:title" content="{{p.title}} - {{'SITE_NAME' | app_config}}" />
<meta property="og:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb%}{{p.thumb_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta property="og:url" content="{{p.permalink | full_link}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{p.title}} - {{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{p.title}} - {{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="{{'@'+p.author.username}}">
<meta name="twitter:description" content="{{p.realbody(v)}}" />
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb %}{{p.thumb_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:image" content="{% if p.is_image %}{{p.realurl(v)}}{% elif p.has_thumb %}{{p.thumb_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:url" content="{{p.permalink | full_link}}" />
{% if p.author.is_private %}
@ -219,7 +219,7 @@
{% if v and v.admin_level==6 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-toggle="tooltip" data-placement="bottom" title="Shadowbanned user"></i>&nbsp;{% endif %}
{% if p.stickied %}<i class="fas fa-thumbtack fa-fw text-admin fa-rotate--45" data-toggle="tooltip" data-placement="bottom" title="Pinned post"></i>&nbsp;{% endif %}
{% if p.is_pinned %}<i class="fas fa-thumbtack fa-fw text-admin fa-rotate--45" data-toggle="tooltip" data-placement="bottom" title="Pinned to profile"></i>&nbsp;{% endif %}
{% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{"SITE_NAME" | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if p.distinguish_level %} <i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{'SITE_NAME' | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if p.is_bot %} <i class="fad fa-robot text-info" data-toggle="tooltip" data-placement="bottom" data-original-title="Bot"></i>{% endif %}
&nbsp;
{% if p.over_18 %}<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %}

View File

@ -98,7 +98,7 @@
{% endif %}
{% if v and v.admin_level==6 and p.author.shadowbanned %}<i class="fas fa-user-times text-admin" data-toggle="tooltip" data-placement="bottom" title="Shadowbanned user"></i>&nbsp;{% endif %}
{% if p.stickied %}<i class="fas fa-thumbtack text-admin fa-rotate--45" data-toggle="tooltip" data-placement="bottom" title="Pinned post"></i>&nbsp;{% endif %}
{% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{"SITE_NAME" | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if p.distinguish_level %}<i class="fas fa-broom text-admin" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{{'SITE_NAME' | app_config}} Badmin, speaking officially"></i>&nbsp;{% endif %}
{% if p.is_pinned and request.path.startswith('/@') %}<i class="fas fa-thumbtack text-admin fa-rotate--45" data-toggle="tooltip" data-placement="bottom" title="Pinned to profile"></i>&nbsp;{% endif %}
{% if p.over_18 %}&nbsp;<span class="badge badge-danger text-small-extra mr-1">+18</span>{% endif %}
{% if p.is_bot %} <i class="fad fa-robot text-info" data-toggle="tooltip" data-placement="bottom" data-original-title="Bot"></i>{% endif %}

View File

@ -234,13 +234,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
<link rel="icon" type="image/png" href="/assets/images/{{'SITE_NAME' | app_config}}/favicon.png">
{% include "emoji_modal.html" %}
{% include "gif_modal.html" %}
{% block title %}
<title>Create a post - {{"SITE_NAME" | app_config}}</title>
<title>Create a post - {{'SITE_NAME' | app_config}}</title>
{% endblock %}
@ -250,14 +250,14 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- {{"SITE_NAME" | app_config}} Board CSS -->
<!-- {{'SITE_NAME' | app_config}} Board CSS -->
{% block stylesheets %}
{% if v %}
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
{% endblock %}
@ -407,7 +407,7 @@
{% endblock %}
<!-- {{"SITE_NAME" | app_config}} JS -->
<!-- {{'SITE_NAME' | app_config}} JS -->
<script src="/assets/js/all_js.js"></script>

View File

@ -6,7 +6,7 @@
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/dark_ff66ac.css">
<link rel="stylesheet" href="{{'DEFAULT_THEME' | app_config}}">
{% endif %}
{% if u and u.profilecss %}
<link rel="stylesheet" href="/@{{u.username}}/profilecss">
@ -18,26 +18,26 @@
{% block pagetype %}userpage{% endblock %}
{% block title %}
<title>{{u.username}}'s profile - {{"SITE_NAME" | app_config}}</title>
<title>{{u.username}}'s profile - {{'SITE_NAME' | app_config}}</title>
{% if u.is_private %}
<meta name="robots" content="noindex">
{% endif %}
<meta property="og:article:author" content="@{{u.username}}" />
<meta property="article:section" content="{{u.username}}'s profile - {{"SITE_NAME" | app_config}}" />
<meta property="article:section" content="{{u.username}}'s profile - {{'SITE_NAME' | app_config}}" />
<meta property="article:published_time" content="{{u.created_date}}" />
<meta property="og:description" name="description" content="{{u.coins}} {{"COINS_NAME" | app_config}} - Joined {{u.created_date}} - {% if u.stored_subscriber_count >=1 and not u.is_private and not u.is_nofollow %}{{u.stored_subscriber_count}} Followers - {% endif %}{% if not u.is_private %}{{u.post_count}} Posts - {{u.comment_count}} Comments - {% endif %}{{u.bio}}" />
<meta property="og:author" name="author" content="@{{u.username}}" />
<meta property="og:title" content="{{u.username}}" />
<meta property="og:image" content="{% if u.bannerurl %}{{u.banner_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta property="og:image" content="{% if u.bannerurl %}{{u.banner_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta property="og:url" content="{{u.url | full_link}}" />
<meta property="og:site_name" content="{{request.host}}" />
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="{{request.host_url}}">
<meta name="twitter:title" content="{{u.username}}'s profile - {{"SITE_NAME" | app_config}}" />
<meta name="twitter:title" content="{{u.username}}'s profile - {{'SITE_NAME' | app_config}}" />
<meta name="twitter:creator" content="@{{u.username}}">
<meta name="twitter:description" content="{{u.coins}} {{"COINS_NAME" | app_config}} - Joined {{u.created_date}} - {% if u.stored_subscriber_count >=1 and not u.is_private and not u.is_nofollow %}{{u.stored_subscriber_count}} Followers -{% endif %} {% if not u.is_private %} {{u.post_count}} Posts - {{u.comment_count}} Comments -{% endif %} {{u.bio}}" />
<meta name="twitter:image" content="{% if u.bannerurl %}{{u.banner_url}}{% else %}{{'/assets/images/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:image" content="{% if u.bannerurl %}{{u.banner_url}}{% else %}{{'/assets/images/{{'SITE_NAME' | app_config}}/preview.png' | full_link}}{% endif %}" />
<meta name="twitter:url" content="{{u.url | full_link}}" />
{% endblock %}

View File

@ -47,7 +47,7 @@
<div class="font-weight-bold text-muted">Account Reserved</div>
<div class="text-muted">The username @{{u.username}} has been pre-emptively reserved for: {{u.reserved}}</div>
<div class="text-muted">If that's you, or if you are their authorized representative, please contact {{"SITE_NAME" | app_config}} staff in order to obtain access to this account.</div>
<div class="text-muted">If that's you, or if you are their authorized representative, please contact {{'SITE_NAME' | app_config}} staff in order to obtain access to this account.</div>
</div>
</div>

View File

@ -1,8 +1,8 @@
{% extends "default.html" %}
{% block title %}
<title>{{"SITE_NAME" | app_config}}</title>
<meta name="description" content="{{"SITE_NAME" | app_config}} Votes">
<title>{{'SITE_NAME' | app_config}}</title>
<meta name="description" content="{{'SITE_NAME' | app_config}} Votes">
{% endblock %}
{% block content %}