remotes/1693045480750635534/spooky-22
Aevann1 2022-02-14 03:22:26 +02:00
parent d0ec7358a3
commit dc696bf473
7 changed files with 82 additions and 26 deletions

View File

@ -14,6 +14,7 @@ from .badges import *
from .clients import *
from .mod_logs import *
from .mod import *
from .sub_block import *
from files.__main__ import Base, cache
from files.helpers.security import *
import random
@ -154,6 +155,15 @@ class User(Base):
def mods(self, sub):
return self.id == AEVANN_ID or g.db.query(Mod.user_id).filter_by(user_id=self.id, sub=sub).one_or_none()
@property
@lazy
def all_blocks(self):
return tuple(x[0] for x in g.db.query(SubBlock.sub).filter_by(user_id=self.id).all())
@lazy
def blocks(self, sub):
return g.db.query(SubBlock).filter_by(user_id=self.id, sub=sub).one_or_none()
@lazy
def mod_date(self, sub):
if self.id == AEVANN_ID: return 1

View File

@ -305,38 +305,38 @@ def monthly(v):
return {"message": "Monthly coins granted"}
@app.get('/admin/sidebar')
@admin_level_required(3)
def get_sidebar(v):
# @app.get('/admin/sidebar')
# @admin_level_required(3)
# def get_sidebar(v):
try:
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
except:
sidebar = None
# try:
# with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
# except:
# sidebar = None
return render_template('admin/sidebar.html', v=v, sidebar=sidebar)
# return render_template('admin/sidebar.html', v=v, sidebar=sidebar)
@app.post('/admin/sidebar')
@limiter.limit("1/second;30/minute;200/hour;1000/day")
@admin_level_required(3)
def post_sidebar(v):
# @app.post('/admin/sidebar')
# @limiter.limit("1/second;30/minute;200/hour;1000/day")
# @admin_level_required(3)
# def post_sidebar(v):
text = request.values.get('sidebar', '').strip()
# text = request.values.get('sidebar', '').strip()
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'w+', encoding="utf-8") as f: f.write(text)
# with open(f'files/templates/sidebar_{SITE_NAME}.html', 'w+', encoding="utf-8") as f: f.write(text)
with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
# with open(f'files/templates/sidebar_{SITE_NAME}.html', 'r', encoding="utf-8") as f: sidebar = f.read()
ma = ModAction(
kind="change_sidebar",
user_id=v.id,
)
g.db.add(ma)
# ma = ModAction(
# kind="change_sidebar",
# user_id=v.id,
# )
# g.db.add(ma)
g.db.commit()
# g.db.commit()
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("/admin/shadowbanned")
@auth_required

View File

@ -269,7 +269,9 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, ccmode="false"
if sub: posts = posts.filter_by(sub=sub.name)
elif SITE_NAME == '2Much4You': posts = posts.filter(Submission.sub.in_(toomuch_subs))
elif SITE_NAME == 'Ruqqus': posts = posts.filter(Submission.sub != None)
elif SITE_NAME == 'Ruqqus':
posts = posts.filter(Submission.sub != None)
if v and v.all_blocks: posts = posts.filter(Submission.sub.notin_(v.all_blocks))
else: posts = posts.filter_by(sub=None)
if gt: posts = posts.filter(Submission.created_utc > gt)

View File

@ -6,6 +6,43 @@ from .front import frontlist
valid_sub_regex = re.compile("^[a-zA-Z0-9_\-]{3,20}$")
@app.post("/s/<sub>/block")
@auth_required
def block_sub(v, sub):
sub = g.db.query(Sub).filter_by(name=sub.strip().lower()).one_or_none()
if not sub: abort(404)
sub = sub.name
# if v.mods(sub): return {"error": "You can't block subs you mod!"}
existing = g.db.query(SubBlock).filter_by(user_id=v.id, sub=sub).one_or_none()
if not existing:
block = SubBlock(user_id=v.id, sub=sub)
g.db.add(block)
g.db.commit()
cache.delete_memoized(frontlist)
return {"message": "Sub blocked successfully!"}
@app.post("/s/<sub>/unblock")
@auth_required
def unblock_sub(v, sub):
sub = g.db.query(Sub).filter_by(name=sub.strip().lower()).one_or_none()
if not sub: abort(404)
sub = sub.name
block = g.db.query(SubBlock).filter_by(user_id=v.id, sub=sub).one_or_none()
if block:
g.db.delete(block)
g.db.commit()
cache.delete_memoized(frontlist)
return {"message": "Sub unblocked successfully!"}
@app.get("/s/<sub>/mods")
@is_not_permabanned
def mods(v, sub):

View File

@ -2,12 +2,11 @@
{% if sub %}
{% set image=sub.sidebar_url %}
{% else %}
{% set image='/static/assets/images/2Much4You/sidebar.webp?a=1040' %}
{% set image='/static/assets/images/{{SITE_NAME}}/sidebar.webp?a=1040' %}
{% endif %}
<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.sidebar_html %}
<div class="mt-4">{{sub.sidebar_html|safe}}</div>
@ -16,6 +15,10 @@
{% if v and v.mods(sub.name) %}
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a>
{% endif %}
{% 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 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 %}
{% else %}
<p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Thanks!</p>
{% endif %}

View File

@ -2,7 +2,7 @@
{% if sub %}
{% set image=sub.sidebar_url %}
{% else %}
{% set image='/static/assets/images/Ruqqus/sidebar.webp?a=1040' %}
{% set image='/static/assets/images/{{SITE_NAME}}/sidebar.webp?a=1040' %}
{% endif %}
<img alt="sidebar image" role="button" data-bs-toggle="modal" data-bs-target="#expandImageModal" onclick="expandDesktopImage('{{image}}')" loading="lazy" src="{{image}}" width=100%>
@ -15,6 +15,10 @@
{% if v and v.mods(sub.name) %}
<a class="btn btn-primary btn-block" href="/s/{{sub.name}}/settings">SUB SETTINGS</a>
{% endif %}
{% 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 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 %}
{% else %}
<p class="mt-4">Rules: No doxxing, No CP or other clearly illegal shit. Also no nazis, go to communities.win. Thanks!</p>
{% endif %}