crisis
This commit is contained in:
parent
0b7f586721
commit
3ff29602d3
23 changed files with 130 additions and 95 deletions
|
@ -1,25 +0,0 @@
|
||||||
The providers ("we", "us", "our") of the service provided by this web site ("rDrama.net") are not responsible for any user-generated content and accounts. Content submitted express the views of their author only.<br><br>
|
|
||||||
|
|
||||||
You agree to not use rDrama.net to submit or link to any content which violates any laws. You are entirely responsible for the content of, and any harm resulting from, that content or your conduct.<br><br>
|
|
||||||
|
|
||||||
You must be at least 18 years of age to use this site.<br><br>
|
|
||||||
|
|
||||||
<h3>Content Policy:</h3>
|
|
||||||
|
|
||||||
This website follows all of <a href="https://cloudflare.com/website-terms/">Cloudflare's Terms of Service</a> policies for content regulation.<br><br>
|
|
||||||
|
|
||||||
Things you cannot do ever on this website under any circumstances:<br><br><ul>
|
|
||||||
|
|
||||||
<li>Cheese pizza</li>
|
|
||||||
<li>Threats of violence</li>
|
|
||||||
<li>Human trafficking</li>
|
|
||||||
<li>Spam</li>
|
|
||||||
<li>Doxxing Site Users</li></ul>
|
|
||||||
|
|
||||||
All content posted to this website is subject to protection under <a href="https://law.cornell.edu/uscode/text/47/230">Section 230</a>. All media posted to this website is done so in a transformative nature for the purpose of critique/ridicule.
|
|
||||||
|
|
||||||
<h3>General Moderation:</h3>
|
|
||||||
|
|
||||||
We reserve the right to remove anything and everything you post here at any time for any reason. Nazi shit is not tolerated here.<br><br>
|
|
||||||
|
|
||||||
<h5>If you do not agree with these terms, please do not register or use rDrama.net. Use of rDrama.net constitutes acceptance of these terms.</h5>
|
|
BIN
files/assets/images/2Much4You/sidebar.webp
Normal file
BIN
files/assets/images/2Much4You/sidebar.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
files/assets/images/subs/2asia4you.png
Normal file
BIN
files/assets/images/subs/2asia4you.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
BIN
files/assets/images/subs/2balkan4you.webp
Normal file
BIN
files/assets/images/subs/2balkan4you.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
files/assets/images/subs/2middleeast4you.webp
Normal file
BIN
files/assets/images/subs/2middleeast4you.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
12
files/classes/mod.py
Normal file
12
files/classes/mod.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
from sqlalchemy import *
|
||||||
|
from sqlalchemy.orm import relationship
|
||||||
|
from files.__main__ import Base
|
||||||
|
|
||||||
|
class Mod(Base):
|
||||||
|
|
||||||
|
__tablename__ = "mods"
|
||||||
|
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||||
|
sub = Column(String, ForeignKey("subs.name"), primary_key=True)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"<Mod(user_id={self.user_id}, sub={self.sub})>"
|
13
files/classes/sub.py
Normal file
13
files/classes/sub.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
from sqlalchemy import *
|
||||||
|
from sqlalchemy.orm import relationship
|
||||||
|
from files.__main__ import Base
|
||||||
|
|
||||||
|
class Sub(Base):
|
||||||
|
|
||||||
|
__tablename__ = "subs"
|
||||||
|
name = Column(String, primary_key=True)
|
||||||
|
sidebar = Column(String)
|
||||||
|
sidebar_html = Column(String)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"<Sub(name={self.name})>"
|
|
@ -12,6 +12,7 @@ from files.helpers.lazy import lazy
|
||||||
from .flags import Flag
|
from .flags import Flag
|
||||||
from .comment import Comment
|
from .comment import Comment
|
||||||
from flask import g
|
from flask import g
|
||||||
|
from .sub import *
|
||||||
|
|
||||||
class Submission(Base):
|
class Submission(Base):
|
||||||
__tablename__ = "submissions"
|
__tablename__ = "submissions"
|
||||||
|
@ -56,6 +57,7 @@ class Submission(Base):
|
||||||
awards = relationship("AwardRelationship", viewonly=True)
|
awards = relationship("AwardRelationship", viewonly=True)
|
||||||
reports = relationship("Flag", viewonly=True)
|
reports = relationship("Flag", viewonly=True)
|
||||||
comments = relationship("Comment", primaryjoin="Comment.parent_submission==Submission.id")
|
comments = relationship("Comment", primaryjoin="Comment.parent_submission==Submission.id")
|
||||||
|
subr = relationship("Sub", primaryjoin="foreign(Submission.sub)==remote(Sub.name)", viewonly=True)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
|
@ -13,6 +13,7 @@ from .userblock import *
|
||||||
from .badges import *
|
from .badges import *
|
||||||
from .clients import *
|
from .clients import *
|
||||||
from .mod_logs import *
|
from .mod_logs import *
|
||||||
|
from .mod import *
|
||||||
from files.__main__ import Base, cache
|
from files.__main__ import Base, cache
|
||||||
from files.helpers.security import *
|
from files.helpers.security import *
|
||||||
import random
|
import random
|
||||||
|
@ -149,6 +150,10 @@ class User(Base):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@lazy
|
||||||
|
def mods(self, sub):
|
||||||
|
return g.db.query(Mod.user_id).filter_by(user_id=self.id, sub=sub).one_or_none()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@lazy
|
@lazy
|
||||||
def csslazy(self):
|
def csslazy(self):
|
||||||
|
|
|
@ -2,6 +2,8 @@ from os import environ, listdir
|
||||||
import re
|
import re
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from json import loads
|
from json import loads
|
||||||
|
from files.__main__ import db_session
|
||||||
|
from files.classes.sub import Sub
|
||||||
|
|
||||||
SITE = environ.get("DOMAIN", '').strip()
|
SITE = environ.get("DOMAIN", '').strip()
|
||||||
SITE_NAME = environ.get("SITE_NAME", '').strip()
|
SITE_NAME = environ.get("SITE_NAME", '').strip()
|
||||||
|
@ -566,5 +568,6 @@ FORTUNE_REPLIES = ('<b style="color:#6023f8">Your fortune: Allah Wills It</b>','
|
||||||
|
|
||||||
no_pass_phrase = """<p>Sorry whiteboy, we're gonna need to see some ID before you start throwin that word around like it's nothing.\n\nTake a 10 minute time-out and come back when you've learned your lesson and/or paid reparations (by purchasing a BIPOC Approved™ Rdrama NWord Pass© from the <a href="/shop">shop</a>) \n\n<em>This is an automated message; if you need help, you can message us <a href="/contact">here</a>.</em></p>"""
|
no_pass_phrase = """<p>Sorry whiteboy, we're gonna need to see some ID before you start throwin that word around like it's nothing.\n\nTake a 10 minute time-out and come back when you've learned your lesson and/or paid reparations (by purchasing a BIPOC Approved™ Rdrama NWord Pass© from the <a href="/shop">shop</a>) \n\n<em>This is an automated message; if you need help, you can message us <a href="/contact">here</a>.</em></p>"""
|
||||||
|
|
||||||
if True: subs = ('2balkan4you','2middleeast4you','2asia4you','2visegrad4you')
|
db = db_session()
|
||||||
else: subs = ()
|
SUBS = [x[0] for x in db.query(Sub.name).all()]
|
||||||
|
db.close()
|
|
@ -16,4 +16,4 @@ def post_embed(id, v):
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_constants():
|
def inject_constants():
|
||||||
return {"environ":environ, "SITE_NAME":SITE_NAME, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR, "COLORS":COLORS, "subs":subs}
|
return {"environ":environ, "SITE_NAME":SITE_NAME, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR, "COLORS":COLORS, "SUBS": SUBS}
|
||||||
|
|
|
@ -343,6 +343,43 @@ def post_sidebar(v):
|
||||||
return render_template('admin/sidebar.html', v=v, sidebar=sidebar, msg='Sidebar edited successfully!')
|
return render_template('admin/sidebar.html', v=v, sidebar=sidebar, msg='Sidebar edited successfully!')
|
||||||
|
|
||||||
|
|
||||||
|
@app.get('/s/<sub>/sidebar')
|
||||||
|
@auth_required
|
||||||
|
def get_sub_sidebar(v, sub):
|
||||||
|
sub = g.db.query(Sub).filter_by(name=sub).one_or_none()
|
||||||
|
if not sub: abort(404)
|
||||||
|
|
||||||
|
mod = g.db.query(Mod).filter_by(user_id=v.id, sub=sub.name).one_or_none()
|
||||||
|
if not mod: abort(403)
|
||||||
|
|
||||||
|
return render_template('admin/sidebar.html', v=v, sidebar=sub.sidebar, sub=sub)
|
||||||
|
|
||||||
|
|
||||||
|
@app.post('/s/<sub>/sidebar')
|
||||||
|
@limiter.limit("1/second;30/minute;200/hour;1000/day")
|
||||||
|
@auth_required
|
||||||
|
def post_sub_sidebar(v, sub):
|
||||||
|
sub = g.db.query(Sub).filter_by(name=sub).one_or_none()
|
||||||
|
if not sub: abort(404)
|
||||||
|
|
||||||
|
mod = g.db.query(Mod).filter_by(user_id=v.id, sub=sub.name).one_or_none()
|
||||||
|
if not mod: abort(403)
|
||||||
|
|
||||||
|
sub.sidebar = request.values.get('sidebar', '').strip()
|
||||||
|
sub.sidebar_html = sanitize(sub.sidebar)
|
||||||
|
g.db.add(sub)
|
||||||
|
|
||||||
|
ma = ModAction(
|
||||||
|
kind="change_sidebar",
|
||||||
|
user_id=v.id
|
||||||
|
)
|
||||||
|
g.db.add(ma)
|
||||||
|
|
||||||
|
g.db.commit()
|
||||||
|
|
||||||
|
return render_template('admin/sidebar.html', v=v, sidebar=sub.sidebar, msg='Sidebar edited successfully!', sub=sub)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/admin/shadowbanned")
|
@app.get("/admin/shadowbanned")
|
||||||
@auth_required
|
@auth_required
|
||||||
def shadowbanned(v):
|
def shadowbanned(v):
|
||||||
|
|
|
@ -131,7 +131,7 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None, sub=None):
|
||||||
else:
|
else:
|
||||||
if post.is_banned and not (v and (v.admin_level > 1 or post.author_id == v.id)): template = "submission_banned.html"
|
if post.is_banned and not (v and (v.admin_level > 1 or post.author_id == v.id)): template = "submission_banned.html"
|
||||||
else: template = "submission.html"
|
else: template = "submission.html"
|
||||||
return render_template(template, v=v, p=post, sort=sort, comment_info=comment_info, render_replies=True, sub=post.sub)
|
return render_template(template, v=v, p=post, sort=sort, comment_info=comment_info, render_replies=True, sub=post.subr)
|
||||||
|
|
||||||
@app.post("/comment")
|
@app.post("/comment")
|
||||||
@limiter.limit("1/second;20/minute;200/hour;1000/day")
|
@limiter.limit("1/second;20/minute;200/hour;1000/day")
|
||||||
|
|
|
@ -133,7 +133,8 @@ def notifications(v):
|
||||||
@limiter.limit("3/second;30/minute;400/hour;2000/day")
|
@limiter.limit("3/second;30/minute;400/hour;2000/day")
|
||||||
@auth_desired
|
@auth_desired
|
||||||
def front_all(v, sub=None):
|
def front_all(v, sub=None):
|
||||||
if sub and sub not in subs: sub = None
|
sub = g.db.query(Sub).filter_by(name=sub).one_or_none()
|
||||||
|
|
||||||
if g.webview and not session.get("session_id"):
|
if g.webview and not session.get("session_id"):
|
||||||
session.permanent = True
|
session.permanent = True
|
||||||
session["session_id"] = secrets.token_hex(49)
|
session["session_id"] = secrets.token_hex(49)
|
||||||
|
@ -256,7 +257,7 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, ccmode="false"
|
||||||
|
|
||||||
posts = g.db.query(Submission)
|
posts = g.db.query(Submission)
|
||||||
|
|
||||||
if sub: posts = posts.filter_by(sub=sub)
|
if sub: posts = posts.filter_by(sub=sub.name)
|
||||||
|
|
||||||
if t == 'all': cutoff = 0
|
if t == 'all': cutoff = 0
|
||||||
else:
|
else:
|
||||||
|
@ -326,7 +327,7 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, ccmode="false"
|
||||||
|
|
||||||
if (sort == "hot" or (v and v.id == Q_ID)) and page == 1 and ccmode == "false":
|
if (sort == "hot" or (v and v.id == Q_ID)) and page == 1 and ccmode == "false":
|
||||||
pins = g.db.query(Submission).filter(Submission.stickied != None, Submission.is_banned == False)
|
pins = g.db.query(Submission).filter(Submission.stickied != None, Submission.is_banned == False)
|
||||||
if sub: pins = pins.filter_by(sub=sub)
|
if sub: pins = pins.filter_by(sub=sub.name)
|
||||||
if v and v.admin_level == 0:
|
if v and v.admin_level == 0:
|
||||||
blocking = [x[0] for x in g.db.query(UserBlock.target_id).filter_by(user_id=v.id).all()]
|
blocking = [x[0] for x in g.db.query(UserBlock.target_id).filter_by(user_id=v.id).all()]
|
||||||
blocked = [x[0] for x in g.db.query(UserBlock.user_id).filter_by(target_id=v.id).all()]
|
blocked = [x[0] for x in g.db.query(UserBlock.user_id).filter_by(target_id=v.id).all()]
|
||||||
|
|
|
@ -91,7 +91,10 @@ def publish(pid, v):
|
||||||
@app.get("/s/<sub>/submit")
|
@app.get("/s/<sub>/submit")
|
||||||
@auth_required
|
@auth_required
|
||||||
def submit_get(v, sub=None):
|
def submit_get(v, sub=None):
|
||||||
if sub and sub not in subs: sub = None
|
sub = g.db.query(Sub.name).filter_by(name=sub).one_or_none()
|
||||||
|
if sub: sub = sub[0]
|
||||||
|
else: sub = None
|
||||||
|
|
||||||
return render_template("submit.html", v=v, sub=sub)
|
return render_template("submit.html", v=v, sub=sub)
|
||||||
|
|
||||||
@app.get("/post/<pid>")
|
@app.get("/post/<pid>")
|
||||||
|
@ -248,7 +251,7 @@ def post_id(pid, anything=None, v=None, sub=None):
|
||||||
else:
|
else:
|
||||||
if post.is_banned and not (v and (v.admin_level > 1 or post.author_id == v.id)): template = "submission_banned.html"
|
if post.is_banned and not (v and (v.admin_level > 1 or post.author_id == v.id)): template = "submission_banned.html"
|
||||||
else: template = "submission.html"
|
else: template = "submission.html"
|
||||||
return render_template(template, v=v, p=post, ids=list(ids), sort=sort, render_replies=True, offset=offset, sub=post.sub)
|
return render_template(template, v=v, p=post, ids=list(ids), sort=sort, render_replies=True, offset=offset, sub=post.subr)
|
||||||
|
|
||||||
@app.post("/viewmore/<pid>/<sort>/<offset>")
|
@app.post("/viewmore/<pid>/<sort>/<offset>")
|
||||||
@limiter.limit("1/second;30/minute;200/hour;1000/day")
|
@limiter.limit("1/second;30/minute;200/hour;1000/day")
|
||||||
|
@ -761,7 +764,7 @@ def thumbnail_thread(pid):
|
||||||
@auth_required
|
@auth_required
|
||||||
def submit_post(v, sub=None):
|
def submit_post(v, sub=None):
|
||||||
if not sub: sub = request.values.get("sub")
|
if not sub: sub = request.values.get("sub")
|
||||||
if sub and sub not in subs: sub = None
|
sub = g.db.query(Sub).filter_by(name=sub).one_or_none()
|
||||||
|
|
||||||
if v.is_suspended: return {"error": "You can't perform this action while banned."}, 403
|
if v.is_suspended: return {"error": "You can't perform this action while banned."}, 403
|
||||||
|
|
||||||
|
@ -1016,7 +1019,7 @@ def submit_post(v, sub=None):
|
||||||
title=title[:500],
|
title=title[:500],
|
||||||
title_html=title_html,
|
title_html=title_html,
|
||||||
created_utc=int(time.time()),
|
created_utc=int(time.time()),
|
||||||
sub=sub
|
sub=sub.name
|
||||||
)
|
)
|
||||||
|
|
||||||
g.db.add(new_post)
|
g.db.add(new_post)
|
||||||
|
@ -1245,7 +1248,7 @@ def submit_post(v, sub=None):
|
||||||
if 'megathread' in new_post.title.lower(): sort = 'new'
|
if 'megathread' in new_post.title.lower(): sort = 'new'
|
||||||
else: sort = v.defaultsortingcomments
|
else: sort = v.defaultsortingcomments
|
||||||
if len(body_html) < 40000: new_post.replies = [c]
|
if len(body_html) < 40000: new_post.replies = [c]
|
||||||
return render_template('submission.html', v=v, p=new_post, sort=sort, render_replies=True, offset=0, success=True, sub=new_post.sub)
|
return render_template('submission.html', v=v, p=new_post, sort=sort, render_replies=True, offset=0, success=True, sub=new_post.subr)
|
||||||
|
|
||||||
|
|
||||||
@app.post("/delete_post/<pid>")
|
@app.post("/delete_post/<pid>")
|
||||||
|
|
|
@ -20,14 +20,14 @@
|
||||||
<div class="col col-md-8">
|
<div class="col col-md-8">
|
||||||
<div class="settings">
|
<div class="settings">
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<h2>Edit sidebar</h2>
|
<h2>Edit {% if sub %}/s/{{sub.name}}{% endif %} sidebar</h2>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
<div class="body d-lg-flex">
|
<div class="body d-lg-flex">
|
||||||
<div class="w-lg-100">
|
<div class="w-lg-100">
|
||||||
<form id="profile-settings" action="/admin/sidebar" method="post">
|
<form id="profile-settings" action="{% if sub %}/s/{{sub.name}}{% else %}/admin{% endif %}/sidebar" method="post">
|
||||||
<input autocomplete="off" type="hidden" name="formkey" value="{{v.formkey}}">
|
<input autocomplete="off" type="hidden" name="formkey" value="{{v.formkey}}">
|
||||||
<textarea autocomplete="off" maxlength="10000" class="form-control rounded" id="bio-text" aria-label="With textarea" placeholder="Site sidebar" rows="50" name="sidebar" form="profile-settings">{% if sidebar %}{{sidebar}}{% endif %}</textarea>
|
<textarea autocomplete="off" maxlength="10000" class="form-control rounded" id="bio-text" aria-label="With textarea" placeholder="Enter sidebar here..." rows="50" name="sidebar" form="profile-settings">{% if sidebar %}{{sidebar}}{% endif %}</textarea>
|
||||||
|
|
||||||
<div class="d-flex mt-2">
|
<div class="d-flex mt-2">
|
||||||
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Save">
|
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Save">
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
{% extends "default.html" %}
|
|
||||||
|
|
||||||
{% block title %}
|
|
||||||
<title>Unable to post comment</title>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block pagetype %}message{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<div class="">
|
|
||||||
|
|
||||||
<p>Please remove the following link(s) from your comment, and then you will be able to post it:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
{% for s in badlinks %}
|
|
||||||
<li>{{s}}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<div class="comment-write collapsed child p-4">
|
|
||||||
<form id="reply" action="{{action}}" method="post" class="input-group">
|
|
||||||
|
|
||||||
<input autocomplete="off" type="hidden" name="formkey" value="{{v.formkey}}">
|
|
||||||
|
|
||||||
{% if parent_fullname %}<input autocomplete="off" type="hidden" name="parent_fullname" value="{{parent_fullname}}">{% endif %}
|
|
||||||
{% if parent_submission %}<input autocomplete="off" type="hidden" name="submission" value="{{parent_submission}}">{% endif %}
|
|
||||||
|
|
||||||
<textarea autocomplete="off" name="body" form="reply" class="comment-box form-control rounded" id="reply-form" aria-label="With textarea" placeholder="Add your comment..." {% if v.longpost %}minlength="280"{% endif %} maxlength="{% if v.bird %}140{% else %}10000{% endif %}" rows="10">{{body}}</textarea>
|
|
||||||
|
|
||||||
<div class="comment-format">
|
|
||||||
<small class="format pl-0"><i class="fas fa-bold" aria-hidden="true" onclick="makeReplyBold()" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Bold"></i></small>
|
|
||||||
<a class="format" role="button"><i class="fas fa-italic" aria-hidden="true" onclick="makeReplyItalics()" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Italicize"></i></a>
|
|
||||||
<a class="format" role="button"><i class="fas fa-quote-right" aria-hidden="true" onclick="makeReplyQuote()" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Quote"></i></a>
|
|
||||||
<a class="format" role="button"><i class="fas fa-link" aria-hidden="true"></i></small>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<button form="reply" class="btn btn-primary ml-auto fl-r">Comment</a>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
|
@ -272,7 +272,7 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% if request.path in ('/', '/logged_out', '/logged_out/') %}
|
{% if request.path in ('/', '/logged_out', '/logged_out/') or SITE_NAME == '2Much4You' %}
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
{% include "sidebar_" + SITE_NAME + ".html" %}
|
{% include "sidebar_" + SITE_NAME + ".html" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
body {padding-top: 90px !important}
|
body {padding-top: 90px !important}
|
||||||
</style>
|
</style>
|
||||||
<div id="srd" style="width: 100%; background-color: var(--primary); padding: 2px; text-align: left; font-weight: bold;white-space:nowrap">
|
<div id="srd" style="width: 100%; background-color: var(--primary); padding: 2px; text-align: left; font-weight: bold;white-space:nowrap">
|
||||||
{% for s in subs %}
|
{% for s in SUBS %}
|
||||||
<a style="color: white" class="text-small-mobile ml-2" href="/s/{{s}}">/s/{{s}}</a>
|
<a {% if sub and s == sub.name %} style="color: var(--secondary)" {% else %} style="color: white"{% endif %} class="text-small-mobile ml-2 px-2" href="/s/{{s}}">/s/{{s}}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
{% if SITE_NAME == 'Drama' %}
|
{% if SITE_NAME == 'Drama' %}
|
||||||
<img alt="logo" src="/static/assets/images/{{SITE_NAME}}/logo.webp?a=1010" height=20 width=77>
|
<img alt="logo" src="/static/assets/images/{{SITE_NAME}}/logo.webp?a=1010" height=20 width=77>
|
||||||
{% elif sub %}
|
{% elif sub %}
|
||||||
<a href="/s/{{sub}}" class="font-weight-bold ml-4 mt-2" style="font-size:25px;position:absolute">{{sub}}</a>
|
<a href="/s/{{sub.name}}" class="font-weight-bold ml-4 mt-2" style="font-size:25px;position:absolute">/s/{{sub.name}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="/" class="font-weight-bold ml-4 mt-2" style="font-size:25px;position:absolute">{{SITE_NAME}}</a>
|
<a href="/" class="font-weight-bold ml-4 mt-2" style="font-size:25px;position:absolute">{{SITE_NAME}}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<a class="mobile-nav-icon d-md-none" href="/admin"><i class="fas fa-crown align-middle text-gray-500 black"></i></a>
|
<a class="mobile-nav-icon d-md-none" href="/admin"><i class="fas fa-crown align-middle text-gray-500 black"></i></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<a class="mobile-nav-icon d-md-none" href="{% if sub %}/s/{{sub}}{% endif %}/submit"><i class="fas fa-feather-alt align-middle text-gray-500 black"></i></a>
|
<a class="mobile-nav-icon d-md-none" href="{% if sub %}/s/{{sub.name}}{% endif %}/submit"><i class="fas fa-feather-alt align-middle text-gray-500 black"></i></a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="mobile-nav-icon d-md-none" href="/login"><i class="fas fa-feather-alt align-middle text-gray-500 black"></i></a>
|
<a class="mobile-nav-icon d-md-none" href="/login"><i class="fas fa-feather-alt align-middle text-gray-500 black"></i></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
|
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
|
||||||
<a class="nav-link" href="{% if sub %}/s/{{sub}}{% endif %}/submit" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Create post"><i class="fas fa-feather-alt"></i></a>
|
<a class="nav-link" href="{% if sub %}/s/{{sub.name}}{% endif %}/submit" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Create post"><i class="fas fa-feather-alt"></i></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
|
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<a href="{% if sub %}/s/{{sub}}{% endif %}/submit">
|
<a href="{% if sub %}/s/{{sub.name}}{% endif %}/submit">
|
||||||
<input autocomplete="off" type="text" class="form-control"
|
<input autocomplete="off" type="text" class="form-control"
|
||||||
aria-label="Username"
|
aria-label="Username"
|
||||||
aria-describedby="basic-addon1">
|
aria-describedby="basic-addon1">
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<div class="col sidebar text-left d-none d-lg-block pt-3 bg-white" style="max-width:300px">
|
||||||
|
{% if sub %}
|
||||||
|
{% set image='/static/assets/images/subs/' + sub.name + '.webp?a=1008' %}
|
||||||
|
{% else %}
|
||||||
|
{% set image='/static/assets/images/2Much4You/sidebar.webp?a=1008' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<img role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%>
|
||||||
|
|
||||||
|
|
||||||
|
{% if sub %}
|
||||||
|
{{sub.sidebar_html|safe}}
|
||||||
|
<a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a>
|
||||||
|
{% if v and v.mods(sub.name) %}
|
||||||
|
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/sidebar">EDIT SIDEBAR</a>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Thanks.</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
</div>
|
|
@ -553,7 +553,7 @@
|
||||||
</span>
|
</span>
|
||||||
<h2 class="h5">You haven't {% if "saved" in request.full_path %}saved{% else %}made{% endif %} a post yet</h2>
|
<h2 class="h5">You haven't {% if "saved" in request.full_path %}saved{% else %}made{% endif %} a post yet</h2>
|
||||||
<p class="text-muted mb-md-5">Your {% if "saved" in request.full_path %}saved posts{% else %}posting history{% endif %} will show here.</p>
|
<p class="text-muted mb-md-5">Your {% if "saved" in request.full_path %}saved posts{% else %}posting history{% endif %} will show here.</p>
|
||||||
{% if "saved" not in request.full_path %}<a href="{% if sub %}/s/{{sub}}{% endif %}/submit" class="btn btn-primary">Create a post</a>{% endif %}
|
{% if "saved" not in request.full_path %}<a href="{% if sub %}/s/{{sub.name}}{% endif %}/submit" class="btn btn-primary">Create a post</a>{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -84,11 +84,11 @@
|
||||||
|
|
||||||
<div class="input-group mb2">
|
<div class="input-group mb2">
|
||||||
<select autocomplete="off" id='sub' class="form-control" form="submitform" name="sub">
|
<select autocomplete="off" id='sub' class="form-control" form="submitform" name="sub">
|
||||||
<option {% if not sub %} selected {% endif %}>
|
<option {% if not sub %}selected{% endif %}>
|
||||||
general
|
general
|
||||||
</option>
|
</option>
|
||||||
{% for s in subs %}
|
{% for s in SUBS %}
|
||||||
<option value="{{s}}" {% if sub==s %} selected {% endif %}>
|
<option value="{{s}}" {% if sub == s %}selected{% endif %}>
|
||||||
/s/{{s}}
|
/s/{{s}}
|
||||||
</option>
|
</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue