support LoggedOutUser in get.py

pull/20/head
justcool393 2022-11-18 06:12:02 -06:00
parent 52325cc7c0
commit 92906691e1
1 changed files with 15 additions and 12 deletions

View File

@ -4,7 +4,7 @@ from flask import *
from sqlalchemy import and_, any_, or_
from sqlalchemy.orm import joinedload, selectinload
from files.classes import Comment, CommentVote, Hat, Sub, Submission, User, UserBlock, Vote
from files.classes import Comment, CommentVote, Hat, Sub, Submission, LoggedOutUser, User, UserBlock, Vote
from files.helpers.const import AUTOJANNY_ID
def sanitize_username(username:str) -> str:
@ -31,7 +31,7 @@ def get_id(username:str, graceful=False) -> Optional[int]:
return user[0]
def get_user(username:Optional[str], v:Optional[User]=None, graceful=False, include_blocks=False, include_shadowbanned=True) -> Optional[User]:
def get_user(username:Optional[str], v:Optional[LoggedOutUser]=None, graceful=False, include_blocks=False, include_shadowbanned=True) -> Optional[User]:
if not username:
if graceful: return None
abort(404)
@ -77,7 +77,7 @@ def get_users(usernames:Iterable[str], graceful=False) -> List[User]:
return users
def get_account(id:Union[str, int], v:Optional[User]=None, graceful=False, include_blocks=False, include_shadowbanned=True) -> Optional[User]:
def get_account(id:Union[str, int], v:Optional[LoggedOutUser]=None, graceful=False, include_blocks=False, include_shadowbanned=True) -> Optional[User]:
try:
id = int(id)
except:
@ -95,7 +95,7 @@ def get_account(id:Union[str, int], v:Optional[User]=None, graceful=False, inclu
return user
def get_post(i:Union[str, int], v:Optional[User]=None, graceful=False) -> Optional[Submission]:
def get_post(i:Union[str, int], v:Optional[LoggedOutUser]=None, graceful=False) -> Optional[Submission]:
try: i = int(i)
except:
if graceful: return None
@ -145,7 +145,7 @@ def get_post(i:Union[str, int], v:Optional[User]=None, graceful=False) -> Option
return x
def get_posts(pids:Iterable[int], v:Optional[User]=None, eager:bool=False) -> List[Submission]:
def get_posts(pids:Iterable[int], v:Optional[LoggedOutUser]=None, eager:bool=False) -> List[Submission]:
if not pids: return []
if v:
@ -205,7 +205,7 @@ def get_posts(pids:Iterable[int], v:Optional[User]=None, eager:bool=False) -> Li
return sorted(output, key=lambda x: pids.index(x.id))
def get_comment(i:Union[str, int], v:Optional[User]=None, graceful=False) -> Optional[Comment]:
def get_comment(i:Union[str, int], v:Optional[LoggedOutUser]=None, graceful=False) -> Optional[Comment]:
try: i = int(i)
except:
if graceful: return None
@ -222,7 +222,7 @@ def get_comment(i:Union[str, int], v:Optional[User]=None, graceful=False) -> Opt
return add_vote_and_block_props(comment, v, CommentVote)
def add_block_props(target:Union[Submission, Comment, User], v:Optional[User]):
def add_block_props(target:Union[Submission, Comment, User], v:Optional[LoggedOutUser]):
if not v: return target
id = None
@ -257,8 +257,11 @@ def add_block_props(target:Union[Submission, Comment, User], v:Optional[User]):
target.is_blocked = block and block.target_id == v.id
return target
def add_vote_props(target:Union[Submission, Comment], v:Optional[User], vote_cls):
def add_vote_props(target:Union[Submission, Comment], v:Optional[LoggedOutUser], vote_cls):
if hasattr(target, 'voted'): return target
if not v:
target.voted = 0
return target
vt = g.db.query(vote_cls.vote_type).filter_by(user_id=v.id)
if vote_cls == Vote:
@ -271,14 +274,14 @@ def add_vote_props(target:Union[Submission, Comment], v:Optional[User], vote_cls
target.voted = vt.vote_type if vt else 0
return target
def add_vote_and_block_props(target:Union[Submission, Comment], v:Optional[User], vote_cls):
def add_vote_and_block_props(target:Union[Submission, Comment], v:Optional[LoggedOutUser], vote_cls):
if not v: return target
target = add_block_props(target, v)
return add_vote_props(target, v, vote_cls)
def get_comments(cids:Iterable[int], v:Optional[User]=None) -> List[Comment]:
def get_comments(cids:Iterable[int], v:Optional[LoggedOutUser]=None) -> List[Comment]:
if not cids: return []
if v:
if isinstance(v, User):
output = get_comments_v_properties(v, True, None, Comment.id.in_(cids))[1]
else:
output = g.db.query(Comment).join(Comment.author).filter(User.shadowbanned == None, Comment.id.in_(cids)).all()
@ -326,7 +329,7 @@ def get_comments_v_properties(v:User, include_shadowbanned=True, should_keep_fun
else: dump.append(comment)
return (comments, output)
def get_sub_by_name(sub:str, v:Optional[User]=None, graceful=False) -> Optional[Sub]:
def get_sub_by_name(sub:str, v:Optional[LoggedOutUser]=None, graceful=False) -> Optional[Sub]:
if not sub:
if graceful: return None
else: abort(404)