forked from MarseyWorld/MarseyWorld
Merge branch 'master' of https://github.com/Aevann1/Drama into snow
commit
6a970e2a39
|
@ -32,7 +32,6 @@ class Submission(Base):
|
||||||
views = Column(Integer, default=0)
|
views = Column(Integer, default=0)
|
||||||
deleted_utc = Column(Integer, default=0)
|
deleted_utc = Column(Integer, default=0)
|
||||||
distinguish_level = Column(Integer, default=0)
|
distinguish_level = Column(Integer, default=0)
|
||||||
created_str = Column(String)
|
|
||||||
stickied = Column(String)
|
stickied = Column(String)
|
||||||
is_pinned = Column(Boolean, default=False)
|
is_pinned = Column(Boolean, default=False)
|
||||||
private = Column(Boolean, default=False)
|
private = Column(Boolean, default=False)
|
||||||
|
@ -60,14 +59,6 @@ class Submission(Base):
|
||||||
awards = relationship("AwardRelationship", viewonly=True)
|
awards = relationship("AwardRelationship", viewonly=True)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
||||||
if "created_utc" not in kwargs:
|
|
||||||
kwargs["created_utc"] = int(time.time())
|
|
||||||
kwargs["created_str"] = time.strftime(
|
|
||||||
"%I:%M %p on %d %b %Y", time.gmtime(
|
|
||||||
kwargs["created_utc"]))
|
|
||||||
|
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -46,6 +46,9 @@ def auth_desired(f):
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs):
|
||||||
|
|
||||||
v = get_logged_in_user()
|
v = get_logged_in_user()
|
||||||
|
|
||||||
|
if request.host == 'old.rdrama.net' and not (v and v.admin_level): abort(403)
|
||||||
|
|
||||||
check_ban_evade(v)
|
check_ban_evade(v)
|
||||||
|
|
||||||
resp = make_response(f(*args, v=v, **kwargs))
|
resp = make_response(f(*args, v=v, **kwargs))
|
||||||
|
@ -63,6 +66,8 @@ def auth_required(f):
|
||||||
|
|
||||||
if not v: abort(401)
|
if not v: abort(401)
|
||||||
|
|
||||||
|
if request.host == 'old.rdrama.net' and not v.admin_level: abort(403)
|
||||||
|
|
||||||
check_ban_evade(v)
|
check_ban_evade(v)
|
||||||
|
|
||||||
g.v = v
|
g.v = v
|
||||||
|
@ -82,6 +87,8 @@ def is_not_banned(f):
|
||||||
|
|
||||||
if not v: abort(401)
|
if not v: abort(401)
|
||||||
|
|
||||||
|
if request.host == 'old.rdrama.net' and not v.admin_level: abort(403)
|
||||||
|
|
||||||
check_ban_evade(v)
|
check_ban_evade(v)
|
||||||
|
|
||||||
if v.is_suspended: return {"error": "You can't perform this action while being banned."}, 403
|
if v.is_suspended: return {"error": "You can't perform this action while being banned."}, 403
|
||||||
|
|
|
@ -987,7 +987,7 @@ def api_sticky_post(post_id, v):
|
||||||
|
|
||||||
@app.post("/ban_comment/<c_id>")
|
@app.post("/ban_comment/<c_id>")
|
||||||
@limiter.limit("1/second")
|
@limiter.limit("1/second")
|
||||||
@admin_level_required(1)
|
@admin_level_required(2)
|
||||||
@validate_formkey
|
@validate_formkey
|
||||||
def api_ban_comment(c_id, v):
|
def api_ban_comment(c_id, v):
|
||||||
|
|
||||||
|
@ -1012,7 +1012,7 @@ def api_ban_comment(c_id, v):
|
||||||
|
|
||||||
@app.post("/unban_comment/<c_id>")
|
@app.post("/unban_comment/<c_id>")
|
||||||
@limiter.limit("1/second")
|
@limiter.limit("1/second")
|
||||||
@admin_level_required(1)
|
@admin_level_required(2)
|
||||||
@validate_formkey
|
@validate_formkey
|
||||||
def api_unban_comment(c_id, v):
|
def api_unban_comment(c_id, v):
|
||||||
|
|
||||||
|
|
|
@ -194,7 +194,7 @@ def api_comment(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
body += f"\n\n![]({url})"
|
body += f"\n\n![]({url})"
|
||||||
|
|
||||||
|
@ -724,7 +724,7 @@ def edit_comment(cid, v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
body += f"\n\n![]({url})"
|
body += f"\n\n![]({url})"
|
||||||
body_md = CustomRenderer().render(mistletoe.Document(body))
|
body_md = CustomRenderer().render(mistletoe.Document(body))
|
||||||
|
|
|
@ -53,6 +53,7 @@ def publish(pid, v):
|
||||||
post = get_post(pid)
|
post = get_post(pid)
|
||||||
if not post.author_id == v.id: abort(403)
|
if not post.author_id == v.id: abort(403)
|
||||||
post.private = False
|
post.private = False
|
||||||
|
post.created_utc = int(time.time())
|
||||||
g.db.add(post)
|
g.db.add(post)
|
||||||
|
|
||||||
notify_users = NOTIFY_USERS(f'{post.body_html}{post.title}', v.id)
|
notify_users = NOTIFY_USERS(f'{post.body_html}{post.title}', v.id)
|
||||||
|
@ -97,7 +98,7 @@ def post_id(pid, anything=None, v=None):
|
||||||
try: pid = int(pid)
|
try: pid = int(pid)
|
||||||
except Exception as e: pass
|
except Exception as e: pass
|
||||||
|
|
||||||
if request.host == 'rdrama.net' and pid in [BUG_THREAD, EMOJI_THREAD]: defaultsortingcomments = 'new'
|
if 'rdrama.net' in request.host and pid in [BUG_THREAD, EMOJI_THREAD]: defaultsortingcomments = 'new'
|
||||||
elif v: defaultsortingcomments = v.defaultsortingcomments
|
elif v: defaultsortingcomments = v.defaultsortingcomments
|
||||||
else: defaultsortingcomments = "top"
|
else: defaultsortingcomments = "top"
|
||||||
|
|
||||||
|
@ -424,7 +425,7 @@ def edit_post(pid, v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
body += f"\n\n![]({url})"
|
body += f"\n\n![]({url})"
|
||||||
|
|
||||||
|
@ -918,7 +919,7 @@ def submit_post(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
body += f"\n\n![]({url})"
|
body += f"\n\n![]({url})"
|
||||||
|
|
||||||
|
@ -958,7 +959,8 @@ def submit_post(v):
|
||||||
body_html=body_html,
|
body_html=body_html,
|
||||||
embed_url=embed,
|
embed_url=embed,
|
||||||
title=title[:500],
|
title=title[:500],
|
||||||
title_html=title_html
|
title_html=title_html,
|
||||||
|
created_utc=int(time.time())
|
||||||
)
|
)
|
||||||
|
|
||||||
g.db.add(new_post)
|
g.db.add(new_post)
|
||||||
|
@ -1017,7 +1019,7 @@ def submit_post(v):
|
||||||
if file.content_type.startswith('image/'):
|
if file.content_type.startswith('image/'):
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
new_post.url = request.host_url + process_image(name)
|
new_post.url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
elif file.content_type.startswith('video/'):
|
elif file.content_type.startswith('video/'):
|
||||||
file.save("video.mp4")
|
file.save("video.mp4")
|
||||||
|
|
|
@ -130,7 +130,7 @@ def settings_profile_post(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
bio += f"\n\n![]({url})"
|
bio += f"\n\n![]({url})"
|
||||||
|
|
||||||
|
@ -320,7 +320,7 @@ def settings_profile_post(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
url = request.host_url + process_image(name)
|
url = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
bio += f"\n\n![]({url})"
|
bio += f"\n\n![]({url})"
|
||||||
|
|
||||||
|
@ -726,7 +726,7 @@ def settings_images_profile(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
highres = request.host_url + process_image(name)
|
highres = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
if not highres: abort(400)
|
if not highres: abort(400)
|
||||||
|
|
||||||
|
@ -762,7 +762,7 @@ def settings_images_banner(v):
|
||||||
|
|
||||||
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
name = f'/images/{time.time()}'.replace('.','')[:-5] + '.webp'
|
||||||
file.save(name)
|
file.save(name)
|
||||||
bannerurl = request.host_url + process_image(name)
|
bannerurl = request.host_url[:-1] + process_image(name)
|
||||||
|
|
||||||
if bannerurl:
|
if bannerurl:
|
||||||
if v.bannerurl and '/images/' in v.bannerurl : os.remove('/images/' + v.bannerurl.split('/images/')[1])
|
if v.bannerurl and '/images/' in v.bannerurl : os.remove('/images/' + v.bannerurl.split('/images/')[1])
|
||||||
|
|
|
@ -209,13 +209,13 @@ def transfer_coins(v, username):
|
||||||
if not v.patron and not receiver.patron:
|
if not v.patron and not receiver.patron:
|
||||||
tax = math.ceil(amount*0.03)
|
tax = math.ceil(amount*0.03)
|
||||||
tax_receiver = g.db.query(User).filter_by(id=TAX_RECEIVER_ID).first()
|
tax_receiver = g.db.query(User).filter_by(id=TAX_RECEIVER_ID).first()
|
||||||
if request.host == 'rdrama.net': tax_receiver.coins += tax/3
|
if 'rdrama.net' in request.host: tax_receiver.coins += tax/3
|
||||||
else: tax_receiver.coins += tax
|
else: tax_receiver.coins += tax
|
||||||
log_message = f"[@{v.username}]({v.url}) has transferred {amount} {app.config['COINS_NAME']} to [@{receiver.username}]({receiver.url})"
|
log_message = f"[@{v.username}]({v.url}) has transferred {amount} {app.config['COINS_NAME']} to [@{receiver.username}]({receiver.url})"
|
||||||
send_notification(TAX_RECEIVER_ID, log_message)
|
send_notification(TAX_RECEIVER_ID, log_message)
|
||||||
g.db.add(tax_receiver)
|
g.db.add(tax_receiver)
|
||||||
|
|
||||||
if request.host == 'rdrama.net':
|
if 'rdrama.net' in request.host:
|
||||||
carp = g.db.query(User).filter_by(id=CARP_ID).first()
|
carp = g.db.query(User).filter_by(id=CARP_ID).first()
|
||||||
carp.coins += tax/3
|
carp.coins += tax/3
|
||||||
log_message = f"[@{v.username}]({v.url}) has transferred {amount} {app.config['COINS_NAME']} to [@{receiver.username}]({receiver.url})"
|
log_message = f"[@{v.username}]({v.url}) has transferred {amount} {app.config['COINS_NAME']} to [@{receiver.username}]({receiver.url})"
|
||||||
|
@ -493,7 +493,7 @@ def redditor_moment_redirect(username):
|
||||||
@auth_required
|
@auth_required
|
||||||
def followers(username, v):
|
def followers(username, v):
|
||||||
u = get_user(username, v=v)
|
u = get_user(username, v=v)
|
||||||
# if request.host == 'rdrama.net' and u.id == 147: abort(404)
|
# if 'rdrama.net' in request.host and u.id == 147: abort(404)
|
||||||
ids = [x[0] for x in g.db.query(Follow.user_id).filter_by(target_id=u.id).all()]
|
ids = [x[0] for x in g.db.query(Follow.user_id).filter_by(target_id=u.id).all()]
|
||||||
users = g.db.query(User).filter(User.id.in_(ids)).all()
|
users = g.db.query(User).filter(User.id.in_(ids)).all()
|
||||||
return render_template("followers.html", v=v, u=u, users=users)
|
return render_template("followers.html", v=v, u=u, users=users)
|
||||||
|
@ -502,7 +502,7 @@ def followers(username, v):
|
||||||
@auth_required
|
@auth_required
|
||||||
def following(username, v):
|
def following(username, v):
|
||||||
u = get_user(username, v=v)
|
u = get_user(username, v=v)
|
||||||
# if request.host == 'rdrama.net' and u.id == 147: abort(404)
|
# if 'rdrama.net' in request.host and u.id == 147: abort(404)
|
||||||
ids = [x[0] for x in g.db.query(Follow.target_id).filter_by(user_id=u.id).all()]
|
ids = [x[0] for x in g.db.query(Follow.target_id).filter_by(user_id=u.id).all()]
|
||||||
users = g.db.query(User).filter(User.id.in_(ids)).all()
|
users = g.db.query(User).filter(User.id.in_(ids)).all()
|
||||||
return render_template("following.html", v=v, u=u, users=users)
|
return render_template("following.html", v=v, u=u, users=users)
|
||||||
|
@ -510,7 +510,7 @@ def following(username, v):
|
||||||
@app.get("/views")
|
@app.get("/views")
|
||||||
@auth_required
|
@auth_required
|
||||||
def visitors(v):
|
def visitors(v):
|
||||||
if request.host == 'rdrama.net' and v.admin_level < 1 and not v.patron: return render_template("errors/patron.html", v=v)
|
if 'rdrama.net' in request.host and v.admin_level < 1 and not v.patron: return render_template("errors/patron.html", v=v)
|
||||||
viewers=sorted(v.viewers, key = lambda x: x.last_view_utc, reverse=True)
|
viewers=sorted(v.viewers, key = lambda x: x.last_view_utc, reverse=True)
|
||||||
return render_template("viewers.html", v=v, viewers=viewers)
|
return render_template("viewers.html", v=v, viewers=viewers)
|
||||||
|
|
||||||
|
|
|
@ -558,4 +558,4 @@
|
||||||
.comment.collapsed .invisible-on-collapse {
|
.comment.collapsed .invisible-on-collapse {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -81,4 +81,4 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -37,4 +37,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -396,4 +396,4 @@
|
||||||
background: -webkit-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet );
|
background: -webkit-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet );
|
||||||
text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black;
|
text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -560,7 +560,6 @@ CREATE TABLE public.submissions (
|
||||||
is_banned boolean,
|
is_banned boolean,
|
||||||
over_18 boolean,
|
over_18 boolean,
|
||||||
distinguish_level integer,
|
distinguish_level integer,
|
||||||
created_str character varying(255),
|
|
||||||
deleted_utc integer NOT NULL,
|
deleted_utc integer NOT NULL,
|
||||||
domain_ref integer,
|
domain_ref integer,
|
||||||
is_approved integer NOT NULL,
|
is_approved integer NOT NULL,
|
||||||
|
|
Loading…
Reference in New Issue