fsdsf
This commit is contained in:
parent
7a567de4a9
commit
447ae44a4f
6 changed files with 89 additions and 67 deletions
|
@ -39,7 +39,7 @@ class OauthApp(Base):
|
||||||
@lazy
|
@lazy
|
||||||
def idlist(self, page=1, **kwargs):
|
def idlist(self, page=1, **kwargs):
|
||||||
|
|
||||||
posts = g.db.query(Submission.id).options(lazyload('*')).options(lazyload('*')).filter_by(app_id=self.id)
|
posts = g.db.query(Submission.id).options(lazyload('*')).filter_by(app_id=self.id)
|
||||||
|
|
||||||
posts=posts.order_by(Submission.created_utc.desc())
|
posts=posts.order_by(Submission.created_utc.desc())
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class OauthApp(Base):
|
||||||
@lazy
|
@lazy
|
||||||
def comments_idlist(self, page=1, **kwargs):
|
def comments_idlist(self, page=1, **kwargs):
|
||||||
|
|
||||||
posts = g.db.query(Comment.id).options(lazyload('*')).options(lazyload('*')).filter_by(app_id=self.id)
|
posts = g.db.query(Comment.id).options(lazyload('*')).filter_by(app_id=self.id)
|
||||||
|
|
||||||
posts=posts.order_by(Comment.created_utc.desc())
|
posts=posts.order_by(Comment.created_utc.desc())
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,7 @@ class User(Base):
|
||||||
if self.shadowbanned and not (v and (v.admin_level >= 3 or v.id == self.id)):
|
if self.shadowbanned and not (v and (v.admin_level >= 3 or v.id == self.id)):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
submissions = g.db.query(Submission).options(lazyload('*')).options(lazyload('*')).filter_by(author_id=self.id, is_pinned=False)
|
submissions = g.db.query(Submission).options(lazyload('*')).filter_by(author_id=self.id, is_pinned=False)
|
||||||
|
|
||||||
if not (v and (v.admin_level >= 3 or v.id == self.id)):
|
if not (v and (v.admin_level >= 3 or v.id == self.id)):
|
||||||
submissions = submissions.filter_by(deleted_utc=0, is_banned=False, private=False)
|
submissions = submissions.filter_by(deleted_utc=0, is_banned=False, private=False)
|
||||||
|
@ -547,7 +547,7 @@ class User(Base):
|
||||||
@lazy
|
@lazy
|
||||||
def saved_idlist(self, page=1):
|
def saved_idlist(self, page=1):
|
||||||
|
|
||||||
posts = g.db.query(Submission.id).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=False, deleted_utc=0)
|
posts = g.db.query(Submission.id).options(lazyload('*')).filter_by(is_banned=False, deleted_utc=0)
|
||||||
|
|
||||||
saved = [x[0] for x in g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all()]
|
saved = [x[0] for x in g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all()]
|
||||||
posts = posts.filter(Submission.id.in_(saved))
|
posts = posts.filter(Submission.id.in_(saved))
|
||||||
|
@ -572,7 +572,7 @@ class User(Base):
|
||||||
@lazy
|
@lazy
|
||||||
def saved_comment_idlist(self, page=1):
|
def saved_comment_idlist(self, page=1):
|
||||||
|
|
||||||
comments = g.db.query(Comment.id).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=False, deleted_utc=0)
|
comments = g.db.query(Comment.id).options(lazyload('*')).filter_by(is_banned=False, deleted_utc=0)
|
||||||
|
|
||||||
saved = [x[0] for x in g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all()]
|
saved = [x[0] for x in g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all()]
|
||||||
comments = comments.filter(Comment.id.in_(saved))
|
comments = comments.filter(Comment.id.in_(saved))
|
||||||
|
|
|
@ -38,14 +38,14 @@ def revert_actions(v, username):
|
||||||
user = get_user(username)
|
user = get_user(username)
|
||||||
if not user: abort(404)
|
if not user: abort(404)
|
||||||
|
|
||||||
items = g.db.query(Submission).options(lazyload('*')).options(lazyload('*')).filter_by(removed_by=user.id).all() + g.db.query(Comment).options(lazyload('*')).options(lazyload('*')).filter_by(removed_by=user.id).all()
|
items = g.db.query(Submission).options(lazyload('*')).filter_by(removed_by=user.id).all() + g.db.query(Comment).options(lazyload('*')).filter_by(removed_by=user.id).all()
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
item.is_banned = False
|
item.is_banned = False
|
||||||
item.removed_by = None
|
item.removed_by = None
|
||||||
g.db.add(item)
|
g.db.add(item)
|
||||||
|
|
||||||
users = g.db.query(User).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=user.id).all()
|
users = g.db.query(User).options(lazyload('*')).filter_by(is_banned=user.id).all()
|
||||||
for user in users:
|
for user in users:
|
||||||
user.is_banned = 0
|
user.is_banned = 0
|
||||||
user.unban_utc = 0
|
user.unban_utc = 0
|
||||||
|
@ -620,7 +620,7 @@ def admin_removed(v):
|
||||||
|
|
||||||
page = int(request.values.get("page", 1))
|
page = int(request.values.get("page", 1))
|
||||||
|
|
||||||
ids = g.db.query(Submission.id).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=True).order_by(
|
ids = g.db.query(Submission.id).options(lazyload('*')).filter_by(is_banned=True).order_by(
|
||||||
Submission.id.desc()).offset(25 * (page - 1)).limit(26).all()
|
Submission.id.desc()).offset(25 * (page - 1)).limit(26).all()
|
||||||
|
|
||||||
ids=[x[0] for x in ids]
|
ids=[x[0] for x in ids]
|
||||||
|
@ -831,7 +831,7 @@ def admin_title_change(user_id, v):
|
||||||
user.customtitleplain=new_name
|
user.customtitleplain=new_name
|
||||||
new_name = sanitize(new_name)
|
new_name = sanitize(new_name)
|
||||||
|
|
||||||
user=g.db.query(User).with_for_update().options(lazyload('*')).options(lazyload('*')).filter_by(id=user.id).first()
|
user=g.db.query(User).with_for_update().options(lazyload('*')).filter_by(id=user.id).first()
|
||||||
user.customtitle=new_name
|
user.customtitle=new_name
|
||||||
user.flairchanged = bool(request.values.get("locked"))
|
user.flairchanged = bool(request.values.get("locked"))
|
||||||
g.db.add(user)
|
g.db.add(user)
|
||||||
|
|
|
@ -249,7 +249,7 @@ def front_all(v):
|
||||||
@cache.memoize(timeout=86400)
|
@cache.memoize(timeout=86400)
|
||||||
def changeloglist(v=None, sort="new", page=1 ,t="all", **kwargs):
|
def changeloglist(v=None, sort="new", page=1 ,t="all", **kwargs):
|
||||||
|
|
||||||
posts = g.db.query(Submission).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=False, private=False,).filter(Submission.deleted_utc == 0)
|
posts = g.db.query(Submission).options(lazyload('*')).filter_by(is_banned=False, private=False,).filter(Submission.deleted_utc == 0)
|
||||||
|
|
||||||
if v and v.admin_level == 0:
|
if v and v.admin_level == 0:
|
||||||
blocking = [x[0] for x in g.db.query(
|
blocking = [x[0] for x in g.db.query(
|
||||||
|
@ -366,7 +366,7 @@ def comment_idlist(page=1, v=None, nsfw=False, sort="new", t="all", **kwargs):
|
||||||
|
|
||||||
posts = posts.subquery()
|
posts = posts.subquery()
|
||||||
|
|
||||||
comments = g.db.query(Comment).options(lazyload('*')).options(lazyload('*')).filter(Comment.parent_submission.notin_(cc_idlist))
|
comments = g.db.query(Comment).options(lazyload('*')).filter(Comment.parent_submission.notin_(cc_idlist))
|
||||||
|
|
||||||
if v and v.admin_level <= 3:
|
if v and v.admin_level <= 3:
|
||||||
blocking = [x[0] for x in g.db.query(
|
blocking = [x[0] for x in g.db.query(
|
||||||
|
|
|
@ -31,7 +31,33 @@ def searchparse(text):
|
||||||
return criteria
|
return criteria
|
||||||
|
|
||||||
|
|
||||||
def searchlisting(criteria, v=None, page=1, t="None", sort="top", b=None):
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/search/posts")
|
||||||
|
@auth_desired
|
||||||
|
def searchposts(v):
|
||||||
|
|
||||||
|
|
||||||
|
query = request.values.get("q", '').strip()
|
||||||
|
|
||||||
|
page = max(1, int(request.values.get("page", 1)))
|
||||||
|
|
||||||
|
sort = request.values.get("sort", "top").lower()
|
||||||
|
t = request.values.get('t', 'all').lower()
|
||||||
|
|
||||||
|
criteria=searchparse(query)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
posts = g.db.query(Submission).options(
|
posts = g.db.query(Submission).options(
|
||||||
lazyload('*')
|
lazyload('*')
|
||||||
|
@ -146,12 +172,58 @@ def searchlisting(criteria, v=None, page=1, t="None", sort="top", b=None):
|
||||||
secondrange = firstrange+26
|
secondrange = firstrange+26
|
||||||
posts = posts[firstrange:secondrange]
|
posts = posts[firstrange:secondrange]
|
||||||
|
|
||||||
return total, [x.id for x in posts]
|
ids = [x.id for x in posts]
|
||||||
|
|
||||||
|
|
||||||
def searchcommentlisting(criteria, v=None, page=1, t="None", sort="top"):
|
|
||||||
|
|
||||||
comments = g.db.query(Comment).options(lazyload('*')).options(lazyload('*')).filter(Comment.parent_submission != None).join(Comment.comment_aux)
|
|
||||||
|
next_exists = (len(ids) > 25)
|
||||||
|
ids = ids[:25]
|
||||||
|
|
||||||
|
posts = get_posts(ids, v=v)
|
||||||
|
|
||||||
|
if v and v.admin_level>3 and "domain" in criteria:
|
||||||
|
domain=criteria['domain']
|
||||||
|
domain_obj=get_domain(domain)
|
||||||
|
else:
|
||||||
|
domain=None
|
||||||
|
domain_obj=None
|
||||||
|
|
||||||
|
if request.headers.get("Authorization"): return {"data":[x.json for x in posts]}
|
||||||
|
else: return render_template("search.html",
|
||||||
|
v=v,
|
||||||
|
query=query,
|
||||||
|
total=total,
|
||||||
|
page=page,
|
||||||
|
listing=posts,
|
||||||
|
sort=sort,
|
||||||
|
t=t,
|
||||||
|
next_exists=next_exists,
|
||||||
|
domain=domain,
|
||||||
|
domain_obj=domain_obj
|
||||||
|
)
|
||||||
|
|
||||||
|
@app.get("/search/comments")
|
||||||
|
@auth_desired
|
||||||
|
def searchcomments(v):
|
||||||
|
|
||||||
|
|
||||||
|
query = request.values.get("q", '').strip()
|
||||||
|
|
||||||
|
try: page = max(1, int(request.values.get("page", 1)))
|
||||||
|
except: page = 1
|
||||||
|
|
||||||
|
sort = request.values.get("sort", "top").lower()
|
||||||
|
t = request.values.get('t', 'all').lower()
|
||||||
|
|
||||||
|
criteria=searchparse(query)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
comments = g.db.query(Comment).filter(Comment.parent_submission != None).join(Comment.comment_aux)
|
||||||
|
|
||||||
if 'q' in criteria:
|
if 'q' in criteria:
|
||||||
words=criteria['q'].split()
|
words=criteria['q'].split()
|
||||||
|
@ -197,64 +269,14 @@ def searchcommentlisting(criteria, v=None, page=1, t="None", sort="top"):
|
||||||
firstrange = 25 * (page - 1)
|
firstrange = 25 * (page - 1)
|
||||||
secondrange = firstrange+26
|
secondrange = firstrange+26
|
||||||
comments = comments[firstrange:secondrange]
|
comments = comments[firstrange:secondrange]
|
||||||
return total, [x.id for x in comments]
|
ids = [x.id for x in comments]
|
||||||
|
|
||||||
@app.get("/search/posts")
|
|
||||||
@auth_desired
|
|
||||||
def searchposts(v):
|
|
||||||
|
|
||||||
|
|
||||||
query = request.values.get("q", '').strip()
|
|
||||||
|
|
||||||
page = max(1, int(request.values.get("page", 1)))
|
|
||||||
|
|
||||||
sort = request.values.get("sort", "top").lower()
|
|
||||||
t = request.values.get('t', 'all').lower()
|
|
||||||
|
|
||||||
criteria=searchparse(query)
|
|
||||||
total, ids = searchlisting(criteria, v=v, page=page, t=t, sort=sort)
|
|
||||||
|
|
||||||
next_exists = (len(ids) > 25)
|
|
||||||
ids = ids[:25]
|
|
||||||
|
|
||||||
posts = get_posts(ids, v=v)
|
|
||||||
|
|
||||||
if v and v.admin_level>3 and "domain" in criteria:
|
|
||||||
domain=criteria['domain']
|
|
||||||
domain_obj=get_domain(domain)
|
|
||||||
else:
|
|
||||||
domain=None
|
|
||||||
domain_obj=None
|
|
||||||
|
|
||||||
if request.headers.get("Authorization"): return {"data":[x.json for x in posts]}
|
|
||||||
else: return render_template("search.html",
|
|
||||||
v=v,
|
|
||||||
query=query,
|
|
||||||
total=total,
|
|
||||||
page=page,
|
|
||||||
listing=posts,
|
|
||||||
sort=sort,
|
|
||||||
t=t,
|
|
||||||
next_exists=next_exists,
|
|
||||||
domain=domain,
|
|
||||||
domain_obj=domain_obj
|
|
||||||
)
|
|
||||||
|
|
||||||
@app.get("/search/comments")
|
|
||||||
@auth_desired
|
|
||||||
def searchcomments(v):
|
|
||||||
|
|
||||||
|
|
||||||
query = request.values.get("q", '').strip()
|
|
||||||
|
|
||||||
try: page = max(1, int(request.values.get("page", 1)))
|
|
||||||
except: page = 1
|
|
||||||
|
|
||||||
sort = request.values.get("sort", "top").lower()
|
|
||||||
t = request.values.get('t', 'all').lower()
|
|
||||||
|
|
||||||
criteria=searchparse(query)
|
|
||||||
total, ids = searchcommentlisting(criteria, v=v, page=page, t=t, sort=sort)
|
|
||||||
|
|
||||||
next_exists = (len(ids) > 25)
|
next_exists = (len(ids) > 25)
|
||||||
ids = ids[:25]
|
ids = ids[:25]
|
||||||
|
|
|
@ -743,7 +743,7 @@ def settings_name_change(v):
|
||||||
v=v,
|
v=v,
|
||||||
error=f"Username `{new_name}` is already in use.")
|
error=f"Username `{new_name}` is already in use.")
|
||||||
|
|
||||||
v=g.db.query(User).with_for_update().options(lazyload('*')).options(lazyload('*')).filter_by(id=v.id).first()
|
v=g.db.query(User).with_for_update().options(lazyload('*')).filter_by(id=v.id).first()
|
||||||
|
|
||||||
v.username=new_name
|
v.username=new_name
|
||||||
v.name_changed_utc=int(time.time())
|
v.name_changed_utc=int(time.time())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue