forked from rDrama/rDrama
1
0
Fork 0
master
Aevann1 2022-02-16 04:15:17 +02:00
parent bc22354358
commit b46978d537
14 changed files with 296 additions and 273 deletions

View File

@ -370,21 +370,21 @@ AWARDS = {
"price": 300 "price": 300
}, },
"wholesome": { "wholesome": {
"kind": "wholesome", "kind": "wholesome",
"title": "Wholesome", "title": "Wholesome",
"description": "Summons a wholesome marsey on the post.", "description": "Summons a wholesome marsey on the post.",
"icon": "fas fa-smile-beam", "icon": "fas fa-smile-beam",
"color": "text-yellow", "color": "text-yellow",
"price": 300 "price": 300
}, },
"tilt": { "tilt": {
"kind": "tilt", "kind": "tilt",
"title": "Tilt", "title": "Tilt",
"description": "Tilts the post or comment", "description": "Tilts the post or comment",
"icon": "fas fa-car-tilt", "icon": "fas fa-car-tilt",
"color": "text-blue", "color": "text-blue",
"price": 300 "price": 300
}, },
"ghosts": { "ghosts": {
"kind": "ghosts", "kind": "ghosts",
"title": "Ghosts", "title": "Ghosts",
@ -394,21 +394,21 @@ AWARDS = {
"price": 500 "price": 500
}, },
"rehab": { "rehab": {
"kind": "rehab", "kind": "rehab",
"title": "Rehab", "title": "Rehab",
"description": "Prevents the user from gambling for 24 hours in a last ditch effort to save them from themself.", "description": "Prevents the user from gambling for 24 hours in a last ditch effort to save them from themself.",
"icon": "fas fa-dice-six", "icon": "fas fa-dice-six",
"color": "text-black", "color": "text-black",
"price": 777 "price": 777
}, },
"progressivestack": { "progressivestack": {
"kind": "progressivestack", "kind": "progressivestack",
"title": "Progressive Stack", "title": "Progressive Stack",
"description": "Makes votes on the recipient's posts and comments weigh double in the ranking algorithm for 6 hours.", "description": "Makes votes on the recipient's posts and comments weigh double in the ranking algorithm for 6 hours.",
"icon": "fas fa-bullhorn", "icon": "fas fa-bullhorn",
"color": "text-red", "color": "text-red",
"price": 1000 "price": 1000
}, },
"pin": { "pin": {
"kind": "pin", "kind": "pin",
"title": "1-Hour Pin", "title": "1-Hour Pin",
@ -482,13 +482,13 @@ AWARDS = {
"price": 3500 "price": 3500
}, },
"benefactor": { "benefactor": {
"kind": "benefactor", "kind": "benefactor",
"title": "Benefactor", "title": "Benefactor",
"description": "Grants one month of paypig status and 2500 marseybux to the recipient. Cannot be used on yourself.", "description": "Grants one month of paypig status and 2500 marseybux to the recipient. Cannot be used on yourself.",
"icon": "fas fa-gift", "icon": "fas fa-gift",
"color": "text-blue", "color": "text-blue",
"price": 4000 "price": 4000
}, },
"grass": { "grass": {
"kind": "grass", "kind": "grass",
"title": "Grass", "title": "Grass",

View File

@ -194,9 +194,10 @@ def get_comment(i, v=None, graceful=False):
UserBlock.user_id == v.id, UserBlock.user_id == v.id,
UserBlock.target_id == comment.author_id UserBlock.target_id == comment.author_id
), ),
and_(UserBlock.user_id == comment.author_id, and_(
UserBlock.target_id == v.id UserBlock.user_id == comment.author_id,
) UserBlock.target_id == v.id
)
) )
).one_or_none() ).one_or_none()

View File

@ -43,21 +43,21 @@ AWARDS3 = {
"price": 300 "price": 300
}, },
"wholesome": { "wholesome": {
"kind": "wholesome", "kind": "wholesome",
"title": "Wholesome", "title": "Wholesome",
"description": "Summons a wholesome marsey on the post.", "description": "Summons a wholesome marsey on the post.",
"icon": "fas fa-smile-beam", "icon": "fas fa-smile-beam",
"color": "text-yellow", "color": "text-yellow",
"price": 300 "price": 300
}, },
"tilt": { "tilt": {
"kind": "tilt", "kind": "tilt",
"title": "Tilt", "title": "Tilt",
"description": "Tilts the post by 1 degree (up to 4)", "description": "Tilts the post by 1 degree (up to 4)",
"icon": "fas fa-car-tilt", "icon": "fas fa-car-tilt",
"color": "text-blue", "color": "text-blue",
"price": 300 "price": 300
}, },
} }
@app.get("/shop") @app.get("/shop")
@ -203,12 +203,10 @@ def award_post(pid, v):
return {"error": "That award doesn't exist."}, 404 return {"error": "That award doesn't exist."}, 404
post_award = g.db.query(AwardRelationship).filter( post_award = g.db.query(AwardRelationship).filter(
and_( AwardRelationship.kind == kind,
AwardRelationship.kind == kind, AwardRelationship.user_id == v.id,
AwardRelationship.user_id == v.id, AwardRelationship.submission_id == None,
AwardRelationship.submission_id == None, AwardRelationship.comment_id == None
AwardRelationship.comment_id == None
)
).first() ).first()
if not post_award: if not post_award:
@ -439,12 +437,10 @@ def award_comment(cid, v):
return {"error": "That award doesn't exist."}, 404 return {"error": "That award doesn't exist."}, 404
comment_award = g.db.query(AwardRelationship).filter( comment_award = g.db.query(AwardRelationship).filter(
and_( AwardRelationship.kind == kind,
AwardRelationship.kind == kind, AwardRelationship.user_id == v.id,
AwardRelationship.user_id == v.id, AwardRelationship.submission_id == None,
AwardRelationship.submission_id == None, AwardRelationship.comment_id == None
AwardRelationship.comment_id == None
)
).first() ).first()
if not comment_award: if not comment_award:

View File

@ -52,6 +52,20 @@ def ghost_price(v):
return int(500*discount) return int(500*discount)
def submit_ghost(v,db):
ghost = db.query(AwardRelationship.id).filter(
AwardRelationship.kind == 'ghosts',
AwardRelationship.user_id == v.id,
AwardRelationship.submission_id == None,
AwardRelationship.comment_id == None
).first()
if ghost: ghost = 42069
else: ghost = ghost_price(v)
return ghost
@app.post("/toggle_club/<pid>") @app.post("/toggle_club/<pid>")
@auth_required @auth_required
def toggle_club(pid, v): def toggle_club(pid, v):
@ -112,7 +126,7 @@ def submit_get(v, sub=None):
if request.path.startswith('/s/') and not sub: abort(404) if request.path.startswith('/s/') and not sub: abort(404)
return render_template("submit.html", SUBS=() if SITE_NAME == 'Drama' else tuple(x[0] for x in g.db.query(Sub.name).order_by(Sub.name).all()), v=v, sub=sub, price=ghost_price(v)) return render_template("submit.html", SUBS=() if SITE_NAME == 'Drama' else tuple(x[0] for x in g.db.query(Sub.name).order_by(Sub.name).all()), v=v, sub=sub, ghost=submit_ghost(v,g.db))
@app.get("/post/<pid>") @app.get("/post/<pid>")
@app.get("/post/<pid>/<anything>") @app.get("/post/<pid>/<anything>")
@ -847,7 +861,7 @@ def submit_post(v, sub=None):
def error(error): def error(error):
print(sub, flush=True) print(sub, flush=True)
if request.headers.get("Authorization") or request.headers.get("xhr"): error(error) if request.headers.get("Authorization") or request.headers.get("xhr"): error(error)
return render_template("submit.html", SUBS=() if SITE_NAME == 'Drama' else tuple(x[0] for x in g.db.query(Sub.name).order_by(Sub.name).all()), v=v, error=error, title=title, url=url, body=body, price=ghost_price(v)), 400 return render_template("submit.html", SUBS=() if SITE_NAME == 'Drama' else tuple(x[0] for x in g.db.query(Sub.name).order_by(Sub.name).all()), v=v, error=error, title=title, url=url, body=body, price=submit_ghost(v,g.db)), 400
if v.is_suspended: error( "You can't perform this action while banned.") if v.is_suspended: error( "You can't perform this action while banned.")
@ -1079,19 +1093,6 @@ def submit_post(v, sub=None):
if embed and len(embed) > 1500: embed = None if embed and len(embed) > 1500: embed = None
ghost = False
if request.values.get('ghost'):
price = ghost_price(v)
if v.coins >= price:
v.coins -= price
ghost = True
elif v.procoins >= price:
v.procoins -= price
ghost = True
new_post = Submission( new_post = Submission(
private=bool(request.values.get("private","")), private=bool(request.values.get("private","")),
club=club, club=club,
@ -1106,12 +1107,33 @@ def submit_post(v, sub=None):
title=title[:500], title=title[:500],
title_html=title_html, title_html=title_html,
sub=sub, sub=sub,
ghost=ghost ghost=False
) )
g.db.add(new_post) g.db.add(new_post)
g.db.flush() g.db.flush()
if request.values.get('ghost'):
ghost_award = g.db.query(AwardRelationship).filter(
AwardRelationship.kind == 'ghosts',
AwardRelationship.user_id == v.id,
AwardRelationship.submission_id == None,
AwardRelationship.comment_id == None
).first()
if ghost_award:
ghost_award.submission_id = new_post.id
new_post.ghost = True
else:
price = ghost_price(v)
if v.coins >= price:
v.coins -= price
new_post.ghost = True
elif v.procoins >= price:
v.procoins -= price
new_post.ghost = True
if v and v.admin_level > 2: if v and v.admin_level > 2:
for option in bet_options: for option in bet_options:
bet_option = Comment(author_id=AUTOBETTER_ID, bet_option = Comment(author_id=AUTOBETTER_ID,

View File

@ -545,37 +545,37 @@
{% endif %} {% endif %}
{% if v.id != c.author_id and not c.ghost %} {% if v.id != c.author_id and not c.ghost %}
<a id="unblock-{{c.id}}" class="dropdown-item text-success list-inline-item {% if not c.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/unblock?username={{c.author_name}}','block-{{c.id}}','unblock-{{c.id}}')"><i class="fas fa-eye text-success"></i>Unblock user</a> <a id="unblock-{{c.id}}" class="dropdown-item text-success list-inline-item {% if not c.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/unblock?username={{c.author_name}}','block-{{c.id}}','unblock-{{c.id}}')"><i class="fas fa-eye text-success"></i>Unblock user</a>
<a id="block-{{c.id}}" class="dropdown-item list-inline-item text-danger {% if c.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/block?username={{c.author_name}}','block-{{c.id}}','unblock-{{c.id}}')"><i class="fas fa-eye-slash text-danger"></i>Block user</a> <a id="block-{{c.id}}" class="dropdown-item list-inline-item text-danger {% if c.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/block?username={{c.author_name}}','block-{{c.id}}','unblock-{{c.id}}')"><i class="fas fa-eye-slash text-danger"></i>Block user</a>
{% endif %} {% endif %}
{% if c.post %} {% if c.post %}
{% set url = "" %} {% set url = "" %}
{% if v.admin_level > 1%} {% if v.admin_level > 1%}
{% set url = "sticky_comment" %} {% set url = "sticky_comment" %}
{% elif v.id == c.post.author_id %} {% elif v.id == c.post.author_id %}
{% set url = "pin_comment" %} {% set url = "pin_comment" %}
{% elif c.post.sub and v.mods(c.post.sub) %} {% elif c.post.sub and v.mods(c.post.sub) %}
{% set url = "mod_pin" %} {% set url = "mod_pin" %}
{% endif %} {% endif %}
{% if url != "" %} {% if url != "" %}
<button id="unpin-{{c.id}}" class="dropdown-item list-inline-item {% if c.is_pinned %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" onclick="post_toast3(this,'/un{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Unpin</button> <button id="unpin-{{c.id}}" class="dropdown-item list-inline-item {% if c.is_pinned %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" onclick="post_toast3(this,'/un{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Unpin</button>
<button id="pin-{{c.id}}" class="dropdown-item list-inline-item {% if not c.is_pinned %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" onclick="post_toast3(this,'/{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Pin</button> <button id="pin-{{c.id}}" class="dropdown-item list-inline-item {% if not c.is_pinned %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" onclick="post_toast3(this,'/{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Pin</button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if v.admin_level > 1 %} {% if v.admin_level > 1 %}
{% if "/reported/" in request.path %} {% if "/reported/" in request.path %}
<button class="dropdown-item list-inline-item text-muted text-success" onclick="approveComment('{{c.id}}')"><i class="fas fa-check text-success fa-fw"></i>Approve</button> <button class="dropdown-item list-inline-item text-muted text-success" onclick="approveComment('{{c.id}}')"><i class="fas fa-check text-success fa-fw"></i>Approve</button>
<button class="dropdown-item list-inline-item text-muted text-danger" onclick="removeComment('{{c.id}}')"><i class="fas fa-ban text-danger fa-fw"></i>Remove</button> <button class="dropdown-item list-inline-item text-muted text-danger" onclick="removeComment('{{c.id}}')"><i class="fas fa-ban text-danger fa-fw"></i>Remove</button>
{% else %} {% else %}
<button id="approve-{{c.id}}" class="dropdown-item list-inline-item text-success d-none {% if c.is_banned %}d-md-block{% endif %} text-success" onclick="approveComment('{{c.id}}','approve-{{c.id}}','remove-{{c.id}}')"><i class="fas fa-check text-success fa-fw"></i>Approve</button> <button id="approve-{{c.id}}" class="dropdown-item list-inline-item text-success d-none {% if c.is_banned %}d-md-block{% endif %} text-success" onclick="approveComment('{{c.id}}','approve-{{c.id}}','remove-{{c.id}}')"><i class="fas fa-check text-success fa-fw"></i>Approve</button>
<button id="remove-{{c.id}}" class="dropdown-item list-inline-item text-danger d-none {% if not c.is_banned %}d-md-block{% endif %} text-danger" onclick="removeComment('{{c.id}}','approve-{{c.id}}','remove-{{c.id}}')"><i class="fas fa-ban text-danger fa-fw"></i>Remove</button> <button id="remove-{{c.id}}" class="dropdown-item list-inline-item text-danger d-none {% if not c.is_banned %}d-md-block{% endif %} text-danger" onclick="removeComment('{{c.id}}','approve-{{c.id}}','remove-{{c.id}}')"><i class="fas fa-ban text-danger fa-fw"></i>Remove</button>
{% endif %} {% endif %}
{% endif %} {% endif %}

View File

@ -1,23 +1,23 @@
{% extends "search.html" %} {% extends "search.html" %}
{% block listing_template %} {% block listing_template %}
<div class="posts p-3 p-md-0"> <div class="posts p-3 p-md-0">
{% include "comments.html" %} {% include "comments.html" %}
</div> </div>
{% if error %} {% if error %}
<div class="row no-gutters"> <div class="row no-gutters">
<div class="col"> <div class="col">
<div class="text-center px-3 my-3"> <div class="text-center px-3 my-3">
<span class="fa-stack fa-2x text-muted mb-4"> <span class="fa-stack fa-2x text-muted mb-4">
<i class="fas fa-square text-gray-500 opacity-25 fa-stack-2x"></i> <i class="fas fa-square text-gray-500 opacity-25 fa-stack-2x"></i>
<i class="fas text-gray-500 fa-ghost fa-stack-1x text-lg"></i> <i class="fas text-gray-500 fa-ghost fa-stack-1x text-lg"></i>
</span> </span>
<h2 class="h5">{{error}}</h2> <h2 class="h5">{{error}}</h2>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block listinglength %} {% block listinglength %}

View File

@ -1,26 +1,26 @@
<div class="col sidebar text-left d-none d-lg-block pt-3 bg-white" style="max-width:300px"> <div class="col sidebar text-left d-none d-lg-block pt-3 bg-white" style="max-width:300px">
{% if sub %} {% if sub %}
{% set image=sub.sidebar_url %} {% set image=sub.sidebar_url %}
{% else %} {% else %}
{% set image='/static/assets/images/' + SITE_NAME + '/sidebar.webp?a=1041' %} {% set image='/static/assets/images/' + SITE_NAME + '/sidebar.webp?a=1041' %}
{% endif %} {% endif %}
<img alt="sidebar image" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%> <img alt="sidebar image" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%>
{% if sub %} {% if sub %}
{% if sub.sidebar_html %} {% if sub.sidebar_html %}
<div class="mt-4">{{sub.sidebar_html|safe}}</div> <div class="mt-4">{{sub.sidebar_html|safe}}</div>
{% endif %} {% endif %}
<a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a> <a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a>
{% if v and v.mods(sub.name) %} {% if v and v.mods(sub.name) %}
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a> <a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a>
{% endif %} {% endif %}
{% if v %} {% if v %}
<a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a> <a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a>
<a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a> <a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a>
{% endif %} {% endif %}
{% else %} {% else %}
<p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Thanks!</p> <p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Thanks!</p>
{% endif %} {% endif %}
<a class="btn btn-primary btn-block" href="/create_sub">CREATE SUB</a> <a class="btn btn-primary btn-block" href="/create_sub">CREATE SUB</a>
@ -36,9 +36,9 @@
</pre> </pre>
</div> </div>

View File

@ -1,76 +1,76 @@
<div class="col sidebar text-left d-none d-lg-block pt-3 pb-5 bg-white" style="max-width:300px"> <div class="col sidebar text-left d-none d-lg-block pt-3 pb-5 bg-white" style="max-width:300px">
{% if sub %} {% if sub %}
{% set image=sub.sidebar_url %} {% set image=sub.sidebar_url %}
{% else %} {% else %}
{% set path = "assets/images/" + SITE_NAME + "/sidebar" %} {% set path = "assets/images/" + SITE_NAME + "/sidebar" %}
{% set image = "/static/" + path + "/" + listdir('files/' + path)|random() + '?a=33' %} {% set image = "/static/" + path + "/" + listdir('files/' + path)|random() + '?a=33' %}
{% endif %} {% endif %}
<a role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="{{image}}" onclick="expandDesktopImage('{{image}}')"> <a role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="{{image}}" onclick="expandDesktopImage('{{image}}')">
<img loading="lazy" src="{{image}}" width=100%> <img loading="lazy" src="{{image}}" width=100%>
</a> </a>
{% if sub %} {% if sub %}
{% if sub.sidebar_html %} {% if sub.sidebar_html %}
<div class="mt-4">{{sub.sidebar_html|safe}}</div> <div class="mt-4">{{sub.sidebar_html|safe}}</div>
{% endif %} {% endif %}
<a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a> <a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a>
{% if v and v.mods(sub.name) %} {% if v and v.mods(sub.name) %}
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a> <a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a>
{% endif %} {% endif %}
{% if v %} {% if v %}
<a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a> <a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a>
<a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a> <a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a>
{% endif %} {% endif %}
{% else %} {% else %}
<a class="btn btn-primary btn-block mt-4" href="/post/16583">EMOJI MEGATHREAD</a> <a class="btn btn-primary btn-block mt-4" href="/post/16583">EMOJI MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/18459">BUGS/SUGGESTIONS MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/18459">BUGS/SUGGESTIONS MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/32341">SIDEBAR ARTWORK MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/32341">SIDEBAR ARTWORK MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/33652">SNAPPY QUOTES MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/33652">SNAPPY QUOTES MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/35835">BANNER ARTWORK MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/35835">BANNER ARTWORK MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/37677">MARSEY REQUESTS MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/37677">MARSEY REQUESTS MEGATHREAD</a>
<a class="btn btn-primary btn-block" href="/post/39413">GAMBLING MEGATHREAD</a> <a class="btn btn-primary btn-block" href="/post/39413">GAMBLING MEGATHREAD</a>
<div class="rules"> <div class="rules">
<p class="mt-4">Drama: any incident, scene, gaffe, rumor, opinion, or disagreement that is blown entirely out of proportion.</p> <p class="mt-4">Drama: any incident, scene, gaffe, rumor, opinion, or disagreement that is blown entirely out of proportion.</p>
<p>Do your part to keep our community healthy by blowing everything out of proportion and making literally everything as dramatic as possible.</p> <p>Do your part to keep our community healthy by blowing everything out of proportion and making literally everything as dramatic as possible.</p>
<p>{{SITE}} caters to drama in all forms such as: Real life, videos, photos, gossip, rumors, news sites, Reddit, and Beyond™. There isn't drama we won't touch, and we want it all.</p> <p>{{SITE}} caters to drama in all forms such as: Real life, videos, photos, gossip, rumors, news sites, Reddit, and Beyond™. There isn't drama we won't touch, and we want it all.</p>
What we want What we want
<ul> <ul>
<li>Arguments.</li> <li>Arguments.</li>
<li>Gossip.</li> <li>Gossip.</li>
<li>Scandals.</li> <li>Scandals.</li>
<li>Lolcows.</li> <li>Lolcows.</li>
<li>Assholes.</li> <li>Assholes.</li>
<li>Trainwrecks.</li> <li>Trainwrecks.</li>
<li>Meltdowns.</li> <li>Meltdowns.</li>
<li>Dramatic news articles.</li> <li>Dramatic news articles.</li>
<li>Dramatic rumours (with context).</li> <li>Dramatic rumours (with context).</li>
<li>Dramatic everything from anywhere</li> <li>Dramatic everything from anywhere</li>
</ul> </ul>
<h5>Rule 1</h5>Don't post anything illegal.<br><br> <h5>Rule 1</h5>Don't post anything illegal.<br><br>
<h5>RULE 2</h5>No sexualizing minors even as a “joke.”<br><br> <h5>RULE 2</h5>No sexualizing minors even as a “joke.”<br><br>
<h5>RULE 3 </h5>No doxxing.<br><br> <h5>RULE 3 </h5>No doxxing.<br><br>
<h5>RULE 4 </h5>Using alts to game dramacoin will get you banned. <br><br> <h5>RULE 4 </h5>Using alts to game dramacoin will get you banned. <br><br>
<h5>RULE 5 </h5>Supporting free speech is an immediate ban.<br><br> <h5>RULE 5 </h5>Supporting free speech is an immediate ban.<br><br>
<h5>RULE 6 </h5>Absolutely NO anti-CCP sentiment.<br><br> <h5>RULE 6 </h5>Absolutely NO anti-CCP sentiment.<br><br>
All rules can and likely will be ignored at the discretion of the custodial staff. Be funny, or at least compelling, and pretty much anything legal is fine.<br><br> All rules can and likely will be ignored at the discretion of the custodial staff. Be funny, or at least compelling, and pretty much anything legal is fine.<br><br>
<font color="hotpink">𝐜𝐚𝐫𝐩 𝐰𝐨𝐳 𝐞𝐫𝐞</font><BR><BR> <font color="hotpink">𝐜𝐚𝐫𝐩 𝐰𝐨𝐳 𝐞𝐫𝐞</font><BR><BR>
</div> </div>
<pre> <pre>
@ -81,10 +81,10 @@
</pre> </pre>
{% endif %} {% endif %}
</div> </div>

View File

@ -1,5 +1,5 @@
<div class="col sidebar text-left d-none d-lg-block pt-3 pb-5 bg-white" style="max-width:300px"> <div class="col sidebar text-left d-none d-lg-block pt-3 pb-5 bg-white" style="max-width:300px">
<img role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('/static/assets/images/PCM/sidebar.webp?a=1041" loading="lazy" src="/static/assets/images/PCM/sidebar.webp?a=1041" width=100%> <img role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('/static/assets/images/PCM/sidebar.webp?a=1041" loading="lazy" src="/static/assets/images/PCM/sidebar.webp?a=1041" width=100%>
<a class="btn btn-primary btn-block mt-4" href="https://ip2.network">STREAM LIST</a> <a class="btn btn-primary btn-block mt-4" href="https://ip2.network">STREAM LIST</a>
@ -25,9 +25,9 @@
</pre> </pre>
</div> </div>

View File

@ -1,26 +1,26 @@
<div class="col sidebar text-left d-none d-lg-block pt-3 bg-white" style="max-width:300px"> <div class="col sidebar text-left d-none d-lg-block pt-3 bg-white" style="max-width:300px">
{% if sub %} {% if sub %}
{% set image=sub.sidebar_url %} {% set image=sub.sidebar_url %}
{% else %} {% else %}
{% set image='/static/assets/images/' + SITE_NAME + '/sidebar.webp?a=1041' %} {% set image='/static/assets/images/' + SITE_NAME + '/sidebar.webp?a=1041' %}
{% endif %} {% endif %}
<img alt="sidebar image" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%> <img alt="sidebar image" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%>
{% if sub %} {% if sub %}
{% if sub.sidebar_html %} {% if sub.sidebar_html %}
<div class="mt-4">{{sub.sidebar_html|safe}}</div> <div class="mt-4">{{sub.sidebar_html|safe}}</div>
{% endif %} {% endif %}
<a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a> <a class="btn btn-primary btn-block mt-4" href="/s/{{sub.name}}/mods">MODS</a>
{% if v and v.mods(sub.name) %} {% if v and v.mods(sub.name) %}
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a> <a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a>
{% endif %} {% endif %}
{% if v %} {% if v %}
<a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a> <a class="btn btn-primary btn-block {% if v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/block','block-sub','unblock-sub');this.classList.toggle('d-none');nextElementSibling.classList.toggle('d-none')">BLOCK SUB</a>
<a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a> <a class="btn btn-primary btn-block {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick="post_toast(this,'/s/{{sub.name}}/unblock','block-sub','unblock-sub');this.classList.toggle('d-none');previousElementSibling.classList.toggle('d-none')">UNBLOCK SUB</a>
{% endif %} {% endif %}
{% else %} {% else %}
<p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Also no nazis, go to communities.win. Thanks!</p> <p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Also no nazis, go to communities.win. Thanks!</p>
{% endif %} {% endif %}
<a class="btn btn-primary btn-block" href="/create_sub">CREATE SUB</a> <a class="btn btn-primary btn-block" href="/create_sub">CREATE SUB</a>
@ -36,9 +36,9 @@
</pre> </pre>
</div> </div>

View File

@ -9,53 +9,53 @@
<pre> <pre>
</pre> </pre>
<form id="submitform" action="/create_sub" method="post"> <form id="submitform" action="/create_sub" method="post">
<div class="container"> <div class="container">
<div class="row justify-content-center mb-4 pb-7"> <div class="row justify-content-center mb-4 pb-7">
<div class="col col-md-6 p-3 py-md-0"> <div class="col col-md-6 p-3 py-md-0">
<h1 class="d-none d-md-block">Create a sub</h1> <h1 class="d-none d-md-block">Create a sub</h1>
<h2 class="h3 d-md-none">Create a sub</h2> <h2 class="h3 d-md-none">Create a sub</h2>
<div class="body"> <div class="body">
<input type="hidden" name="formkey" value="{{v.formkey}}"> <input type="hidden" name="formkey" value="{{v.formkey}}">
<label for="title">Sub Name</label> <label for="title">Sub Name</label>
<input class="form-control" id="title-register" aria-describedby="titleHelpRegister" type="text" name="name" required> <input class="form-control" id="title-register" aria-describedby="titleHelpRegister" type="text" name="name" required>
<small class="form-text text-muted">Names must be 3-20 characters</small> <small class="form-text text-muted">Names must be 3-20 characters</small>
</div> </div>
<div class="footer"> <div class="footer">
<div class="d-flex"> <div class="d-flex">
{% if error %} {% if error %}
<p class="mb-0"> <p class="mb-0">
<span class="text-danger text-small" style="vertical-align: sub;">{{ error }}</span> <span class="text-danger text-small" style="vertical-align: sub;">{{ error }}</span>
</p> </p>
{% endif %} {% endif %}
<button class="btn btn-primary ml-auto" id="create_button" {% if v.subs_created * 50 > v.coins %}disabled{% endif %}>Create Sub</button> <button class="btn btn-primary ml-auto" id="create_button" {% if v.subs_created * 50 > v.coins %}disabled{% endif %}>Create Sub</button>
</div> </div>
<p class="mt-2 mr-1" style="float: right"><b>Cost</b>: {{v.subs_created * 50}} coins</p> <p class="mt-2 mr-1" style="float: right"><b>Cost</b>: {{v.subs_created * 50}} coins</p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</form> </form>

View File

@ -50,7 +50,7 @@
} }
@keyframes moveY { @keyframes moveY {
from { top: 0; } to { top: 98%; } from { top: 0; } to { top: 98%; }
} }
.seal1 { .seal1 {

View File

@ -183,8 +183,12 @@
{% endif %} {% endif %}
<div class="custom-control custom-checkbox"> <div class="custom-control custom-checkbox">
<input {% if v.coins < price and v.procoins < price %}disabled{% endif %} autocomplete="off" type="checkbox" class="custom-control-input" id="ghostCheck" name="ghost"> <input {% if ghost != 42069 and v.coins < ghost and v.procoins < ghost %}disabled{% endif %} autocomplete="off" type="checkbox" class="custom-control-input" id="ghostCheck" name="ghost">
<label class="custom-control-label" for="ghostCheck">Ghost Thread (cost: {{price}} coins or marseybux)</label> {% if ghost == 42069 %}
<label class="custom-control-label" for="ghostCheck">Ghost Thread (will use a ghost award you own)</label>
{% else %}
<label class="custom-control-label" for="ghostCheck">Ghost Thread (cost: {{ghost}} coins or marseybux)</label>
{% endif %}
</div> </div>
<pre> <pre>

View File

@ -13,37 +13,37 @@
<div class="mx-4 mt-2 mb-6"> <div class="mx-4 mt-2 mb-6">
<h5 class="text-muted text-uppercase">Terms of use</h5> <h5 class="text-muted text-uppercase">Terms of use</h5>
<div id="rules" class="my-3"> <div id="rules" class="my-3">
<p>By using Drama you agree to abstain from posting or submitting to any of the following. Additionally, you warrant that anything posted or submitted by you complies with this code of conduct.</p> <p>By using Drama you agree to abstain from posting or submitting to any of the following. Additionally, you warrant that anything posted or submitted by you complies with this code of conduct.</p>
<hr> <hr>
<h2 class="h3">Legal</h2> <h2 class="h3">Legal</h2>
<p><u>Copyright:</u> You may not post anything copyrighted by another party or material not properly licensed to you.</p> <p><u>Copyright:</u> You may not post anything copyrighted by another party or material not properly licensed to you.</p>
<p><u>United States Law:</u> You may not post anything not legal to publish within or export from the United States of America.</p> <p><u>United States Law:</u> You may not post anything not legal to publish within or export from the United States of America.</p>
<h2 class="h3" id="safety">Safety</h2> <h2 class="h3" id="safety">Safety</h2>
<p><u>Harrasment:</u> You may not post anything that harasses or encourages of others either online or offline.</p> <p><u>Harrasment:</u> You may not post anything that harasses or encourages of others either online or offline.</p>
<p><u>Personal Information:</u> Posting or publishing personal or confidential information is stricly prohibited.</p> <p><u>Personal Information:</u> Posting or publishing personal or confidential information is stricly prohibited.</p>
<p><u>Solicitation:</u> You may not post anything that solicits transactions</p> <p><u>Solicitation:</u> You may not post anything that solicits transactions</p>
<p><u>Malicious material:</u> Anything that is digitally malicious is strictly prohibited from being posted.</p> <p><u>Malicious material:</u> Anything that is digitally malicious is strictly prohibited from being posted.</p>
<p><u>Impersonation:</u> You many not post anything that impersonates other Drama users, moderators, or administrations.</p> <p><u>Impersonation:</u> You many not post anything that impersonates other Drama users, moderators, or administrations.</p>
<p><u>Spam:</u> Spam material is strictly prohibited from being posted on Drama.</p> <p><u>Spam:</u> Spam material is strictly prohibited from being posted on Drama.</p>
<h2 class="h3" id="sensitive-content">Sexuality</h2> <h2 class="h3" id="sensitive-content">Sexuality</h2>
<p><u>Sexual or sexually suggestive material:</u> Any sexual or sexually suggestive material must be marked "+18"</p> <p><u>Sexual or sexually suggestive material:</u> Any sexual or sexually suggestive material must be marked "+18"</p>
<p><u>Content involving minors:</u> Drama has zero tolerance for sexual or sexually suggestive material involving minors. Any material that violates this rule will result in a permanent ban.</p> <p><u>Content involving minors:</u> Drama has zero tolerance for sexual or sexually suggestive material involving minors. Any material that violates this rule will result in a permanent ban.</p>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}