Merge branch 'frost' into blitzen
This commit is contained in:
commit
848bd2c099
30 changed files with 64 additions and 46 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,3 +9,4 @@ disablesignups
|
|||
venv/
|
||||
.vscode/
|
||||
.sass-cache/
|
||||
flask_session/
|
|
@ -13,7 +13,6 @@ services:
|
|||
- DOMAIN=localhost
|
||||
- SITE_NAME=Drama
|
||||
- GIPHY_KEY=3435tdfsdudebussylmaoxxt43
|
||||
- FORCE_HTTPS=0
|
||||
- DISCORD_SERVER_ID=3435tdfsdudebussylmaoxxt43
|
||||
- DISCORD_CLIENT_ID=3435tdfsdudebussylmaoxxt43
|
||||
- DISCORD_CLIENT_SECRET=3435tdfsdudebussylmaoxxt43
|
||||
|
|
1
env
1
env
|
@ -3,7 +3,6 @@ export MASTER_KEY="XuxGqp5NyygJrM24b5gt3YgyvFVGdQnwVDwLzLwpu3eQwY"
|
|||
export DOMAIN="localhost"
|
||||
export SITE_NAME="Drama"
|
||||
export GIPHY_KEY="3435tdfsdudebussylmaoxxt43"
|
||||
export FORCE_HTTPS="0"
|
||||
export DISCORD_SERVER_ID="3435tdfsdudebussylmaoxxt43"
|
||||
export DISCORD_CLIENT_ID="3435tdfsdudebussylmaoxxt43"
|
||||
export DISCORD_CLIENT_SECRET="3435tdfsdudebussylmaoxxt43"
|
||||
|
|
|
@ -8,6 +8,7 @@ from flask_limiter import Limiter
|
|||
from flask_compress import Compress
|
||||
from flask_limiter.util import get_ipaddr
|
||||
from flask_mail import Mail
|
||||
from flask_session import Session
|
||||
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
|
@ -17,6 +18,8 @@ from werkzeug.middleware.proxy_fix import ProxyFix
|
|||
import redis
|
||||
|
||||
app = Flask(__name__, template_folder='templates')
|
||||
app.config["SESSION_TYPE"] = "redis"
|
||||
Session(app)
|
||||
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=3)
|
||||
app.url_map.strict_slashes = False
|
||||
|
@ -25,6 +28,7 @@ app.jinja_env.auto_reload = True
|
|||
import faulthandler
|
||||
faulthandler.enable()
|
||||
|
||||
|
||||
app.config["SITE_NAME"]=environ.get("SITE_NAME").strip()
|
||||
app.config["COINS_NAME"]=environ.get("COINS_NAME").strip()
|
||||
app.config["GUMROAD_LINK"]=environ.get("GUMROAD_LINK", "https://marsey1.gumroad.com/l/tfcvri").strip()
|
||||
|
@ -36,14 +40,13 @@ app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 86400
|
|||
app.config["SESSION_COOKIE_NAME"] = f'session_{environ.get("DOMAIN")}'.strip().lower()
|
||||
app.config["VERSION"] = "1.0.0"
|
||||
app.config['MAX_CONTENT_LENGTH'] = 8 * 1024 * 1024
|
||||
app.config["SESSION_COOKIE_SECURE"] = bool(int(environ.get("FORCE_HTTPS", 1)))
|
||||
app.config["SESSION_COOKIE_SECURE"] = True
|
||||
app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
|
||||
app.config["PERMANENT_SESSION_LIFETIME"] = 60 * 60 * 24 * 365
|
||||
app.config["SESSION_REFRESH_EACH_REQUEST"] = True
|
||||
app.config["SLOGAN"] = environ.get("SLOGAN", "").strip()
|
||||
app.config["DEFAULT_COLOR"] = environ.get("DEFAULT_COLOR", "ff0000").strip()
|
||||
app.config["DEFAULT_THEME"] = environ.get("DEFAULT_THEME", "midnight").strip()
|
||||
app.config["FORCE_HTTPS"] = int(environ.get("FORCE_HTTPS", 1)) if ("localhost" not in app.config["SERVER_NAME"] and "localhost" not in app.config["SERVER_NAME"]) else 0
|
||||
app.config["FORCE_HTTPS"] = True
|
||||
app.config["UserAgent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
|
||||
app.config["HCAPTCHA_SITEKEY"] = environ.get("HCAPTCHA_SITEKEY","").strip()
|
||||
app.config["HCAPTCHA_SECRET"] = environ.get("HCAPTCHA_SECRET","").strip()
|
||||
|
@ -59,7 +62,7 @@ app.config["RATELIMIT_ENABLED"] = True
|
|||
app.config["RATELIMIT_DEFAULTS_DEDUCT_WHEN"]=lambda:True
|
||||
app.config["RATELIMIT_DEFAULTS_EXEMPT_WHEN"]=lambda:False
|
||||
app.config["RATELIMIT_HEADERS_ENABLED"]=True
|
||||
app.config["CACHE_TYPE"] = "filesystem"
|
||||
app.config["CACHE_TYPE"] = "redis"
|
||||
app.config["CACHE_DIR"] = "cache"
|
||||
app.config["RATELIMIT_STORAGE_URL"] = environ.get("REDIS_URL", "redis://localhost")
|
||||
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
|
||||
|
@ -68,6 +71,10 @@ app.config['MAIL_USE_TLS'] = True
|
|||
app.config['MAIL_USERNAME'] = environ.get("MAIL_USERNAME", "").strip()
|
||||
app.config['MAIL_PASSWORD'] = environ.get("MAIL_PASSWORD", "").strip()
|
||||
|
||||
app.config["SESSION_USE_SIGNER"] = True
|
||||
app.config["SESSION_COOKIE_DOMAIN"] = app.config["SERVER_NAME"]
|
||||
|
||||
|
||||
r=redis.Redis(host=environ.get("REDIS_URL", "redis://localhost"), decode_responses=True, ssl_cert_reqs=None)
|
||||
|
||||
limiter = Limiter(
|
||||
|
@ -101,9 +108,9 @@ def before_request():
|
|||
|
||||
if not request.path.startswith("/assets") and not request.path.startswith("/images") and not request.path.startswith("/hostedimages"):
|
||||
session.permanent = True
|
||||
if not session.get("session_id"): session["session_id"] = secrets.token_hex(16)
|
||||
if not session.get("session_id"): session["session_id"] = secrets.token_hex(50)
|
||||
|
||||
if app.config["FORCE_HTTPS"] and request.url.startswith("http://") and "localhost" not in app.config["SERVER_NAME"]:
|
||||
if request.url.startswith("http://") and "localhost" not in app.config["SERVER_NAME"]:
|
||||
url = request.url.replace("http://", "https://", 1)
|
||||
return redirect(url, code=301)
|
||||
|
||||
|
|
|
@ -4670,3 +4670,6 @@ input[type=radio] ~ .custom-control-label::before {
|
|||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
}
|
||||
.preview-edit img {
|
||||
max-width: 20%;
|
||||
}
|
|
@ -302,7 +302,7 @@ class User(Base):
|
|||
def formkey(self):
|
||||
|
||||
if "session_id" not in session:
|
||||
session["session_id"] = token_hex(16)
|
||||
session["session_id"] = token_hex(50)
|
||||
|
||||
msg = f"{session['session_id']}+{self.id}+{self.login_nonce}"
|
||||
|
||||
|
@ -377,6 +377,10 @@ class User(Base):
|
|||
def post_notifications_count(self):
|
||||
return g.db.query(Notification.id).join(Comment).filter(Notification.user_id == self.id, Notification.read == False, Comment.author_id == AUTOJANNY_ID).count()
|
||||
|
||||
@property
|
||||
@lazy
|
||||
def not_post_notifications_count(self):
|
||||
return self.notifications_count - self.post_notifications_count
|
||||
|
||||
@property
|
||||
@lazy
|
||||
|
|
|
@ -1030,8 +1030,12 @@ def api_sticky_post(post_id, v):
|
|||
else: post.stickied = None
|
||||
else:
|
||||
pins = g.db.query(Submission.id).filter(Submission.stickied != None, Submission.is_banned == False).count()
|
||||
if pins > 2: return {"error": "Can't exceed 3 pinned posts limit!"}, 403
|
||||
post.stickied = v.username
|
||||
if pins > 2:
|
||||
if v.admin_level > 2:
|
||||
t = int(time.time()) + 3600
|
||||
post.stickied = f"t:{t}"
|
||||
else: return {"error": "Can't exceed 3 pinned posts limit!"}, 403
|
||||
else: post.stickied = v.username
|
||||
g.db.add(post)
|
||||
|
||||
ma=ModAction(
|
||||
|
|
|
@ -136,7 +136,7 @@ def login_post():
|
|||
|
||||
session["user_id"] = account.id
|
||||
session["logged_in"] = account.id
|
||||
session["session_id"] = token_hex(16)
|
||||
session["session_id"] = token_hex(50)
|
||||
session["login_nonce"] = account.login_nonce
|
||||
session.permanent = True
|
||||
|
||||
|
@ -343,7 +343,7 @@ def sign_up_post(v):
|
|||
|
||||
session["user_id"] = new_user.id
|
||||
session["logged_in"] = new_user.id
|
||||
session["session_id"] = token_hex(16)
|
||||
session["session_id"] = token_hex(50)
|
||||
|
||||
g.db.commit()
|
||||
|
||||
|
|
|
@ -104,10 +104,10 @@ def cached_chart(days):
|
|||
days = int((nowstamp - firstsignup) / 86400)
|
||||
|
||||
if days > 31:
|
||||
file = "/weekly_chart.webp"
|
||||
file = "/weekly_chart.png"
|
||||
day_cutoffs = [today_cutoff - 86400 * 7 * i for i in range(31)][1:]
|
||||
else:
|
||||
file = "/daily_chart.webp"
|
||||
file = "/daily_chart.png"
|
||||
day_cutoffs = [today_cutoff - 86400 * i for i in range(31)][1:]
|
||||
|
||||
day_cutoffs.insert(0, calendar.timegm(now))
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{v.theme}}.css?v=200">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{v.theme}}.css?v=200">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/CHRISTMAS/css/agendaposter.css?v=200">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
{% endif %}
|
||||
|
||||
</head>
|
||||
|
|
|
@ -186,9 +186,9 @@
|
|||
|
||||
{% block stylesheets %}
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=438">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/mistletoe.css?v=400">
|
||||
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
<title>Login - {{'SITE_NAME' | app_config}}</title>
|
||||
{% endblock %}
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=438">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=439">
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<title>2-Step Login - {{'SITE_NAME' | app_config}}</title>
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
|
||||
</head>
|
||||
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
|
||||
{% block stylesheets %}
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=438">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/mistletoe.css?v=400">
|
||||
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
|
||||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}Sign up - {{'SITE_NAME' | app_config}}{% endif %}</title>
|
||||
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=438">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=439">
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}{{'SITE_NAME' | app_config}}{% endif %}</title>
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=438"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=439"><link rel="stylesheet" href="/assets/CHRISTMAS/css/{{'DEFAULT_THEME' | app_config}}.css?v=200">
|
||||
|
||||
</head>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=438">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?v=439">
|
||||
|
||||
<title>Flask + Tailwind CSS</title>
|
||||
</head>
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=190">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
{% endif %}
|
||||
|
||||
</head>
|
||||
|
|
|
@ -297,7 +297,7 @@
|
|||
<a href="javascript:void(0)" form="comment-edit-form-{{c.id}}" class="btn btn-primary ml-2 fl-r commentmob" onclick="comment_edit('{{c.id}}')">Save Edit</a>
|
||||
<a id="cancel-edit-{{c.id}}" href="javascript:void(0)" onclick="toggleEdit('{{c.id}}')" class="btn btn-link text-muted ml-auto cancel-form fl-r commentmob">Cancel</a>
|
||||
</form>
|
||||
<div id="preview-edit-{{c.id}}" class="mb-3 mt-5"></div>
|
||||
<div id="preview-edit-{{c.id}}" class="preview-edit mb-3 mt-5"></div>
|
||||
<div class="form-text text-small p-0 m-0"><a href="/formatting" {% if v and v.newtab %}target="_blank"{% endif %}>Formatting help</a></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
<script src="/assets/js/bootstrap.js?v=190"></script>
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439">
|
||||
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=190">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
{% endif %}
|
||||
|
||||
<link href="/assets/css/fa.css?v=193" rel="stylesheet">
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
{% block content %}
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=190">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
{% endif %}
|
||||
|
||||
<div class="row justify-content-around">
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{% endblock %}
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439">
|
||||
<link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link href="/assets/css/fa.css?v=193" rel="stylesheet">
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<title>2-Step Login - {{'SITE_NAME' | app_config}}</title>
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
|
||||
</head>
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<ul class="nav settings-nav" style="padding:0 30px;">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link py-3{% if not '=true' in request.full_path %} active{% endif %}" href="/notifications">
|
||||
All
|
||||
All{% if v.not_post_notifications_count %} <span class="text-primary font-weight-bold">({{v.not_post_notifications_count}})</span>{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=190">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
|
||||
<link href="/assets/css/fa.css?v=193" rel="stylesheet">
|
||||
|
|
|
@ -38,10 +38,10 @@
|
|||
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
{% endif %}
|
||||
|
||||
<link href="/assets/css/fa.css?v=193" rel="stylesheet">
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}Sign up - {{'SITE_NAME' | app_config}}{% endif %}</title>
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
|
||||
</head>
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<title>{% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}{{'SITE_NAME' | app_config}}{% endif %}</title>
|
||||
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
|
||||
</head>
|
||||
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
{% block stylesheets %}
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=191">
|
||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=190">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||
{% else %}
|
||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=438">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=439">
|
||||
<link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=191">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -6,6 +6,7 @@ Flask-Caching
|
|||
Flask-Compress
|
||||
Flask-Limiter==1.1.0
|
||||
Flask-Mail==0.9.1
|
||||
Flask-Session
|
||||
gevent
|
||||
greenlet
|
||||
gunicorn
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue