show nsfw emojis to ppl who disabled nsfw warnings
parent
d904559538
commit
1bb8a88b8c
|
@ -283,7 +283,7 @@ class User(Base):
|
|||
@property
|
||||
@lazy
|
||||
def over_18(self):
|
||||
return session.get('over_18', False)
|
||||
return bool(session.get('over_18'))
|
||||
|
||||
@property
|
||||
@lazy
|
||||
|
|
|
@ -188,9 +188,8 @@ def approve_emoji(v, name):
|
|||
badge_grant(badge_id=113, user=author)
|
||||
badge_grant(badge_id=112, user=author)
|
||||
|
||||
if not Emoji.over_18:
|
||||
cache.delete("emojis")
|
||||
cache.delete(f"emoji_list_{emoji.kind}")
|
||||
cache.delete(f"emojis_{emoji.over_18}")
|
||||
cache.delete(f"emoji_list_{emoji.kind}_{emoji.over_18}")
|
||||
|
||||
purge_files_in_cloudflare_cache(f"{SITE_FULL_IMAGES}/e/{emoji.name}/webp")
|
||||
|
||||
|
@ -513,9 +512,8 @@ def update_emoji(v):
|
|||
)
|
||||
g.db.add(ma)
|
||||
|
||||
if not Emoji.over_18:
|
||||
cache.delete("emojis")
|
||||
cache.delete(f"emoji_list_{existing.kind}")
|
||||
cache.delete(f"emojis_{existing.over_18}")
|
||||
cache.delete(f"emoji_list_{existing.kind}_{existing.over_18}")
|
||||
|
||||
return {"message": f"'{name}' updated successfully!"}
|
||||
|
||||
|
|
|
@ -42,10 +42,15 @@ def reddit_post(subreddit, v, path):
|
|||
return redirect(f'https://{reddit}/{post_id}')
|
||||
|
||||
|
||||
@cache.cached(make_cache_key=lambda kind:f"emoji_list_{kind}")
|
||||
def get_emoji_list(kind):
|
||||
@cache.cached(make_cache_key=lambda kind, over_18:f"emoji_list_{kind}_{over_18}")
|
||||
def get_emoji_list(kind, over_18):
|
||||
li = g.db.query(Emoji, User).join(User, Emoji.author_id == User.id).filter(Emoji.submitter_id == None, Emoji.kind == kind)
|
||||
if not over_18:
|
||||
li = li.filter(Emoji.over_18 == False)
|
||||
li = li.order_by(Emoji.count.desc())
|
||||
|
||||
emojis = []
|
||||
for emoji, author in g.db.query(Emoji, User).join(User, Emoji.author_id == User.id).filter(Emoji.submitter_id == None, Emoji.kind == kind, Emoji.over_18 == False).order_by(Emoji.count.desc()):
|
||||
for emoji, author in li:
|
||||
emoji.author = author.username if FEATURES['ASSET_SUBMISSIONS'] else None
|
||||
emojis.append(emoji)
|
||||
return emojis
|
||||
|
@ -60,7 +65,7 @@ def marseys_redirect():
|
|||
@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
|
||||
@auth_required
|
||||
def emoji_list(v, kind):
|
||||
emojis = get_emoji_list(kind)
|
||||
emojis = get_emoji_list(kind, v.over_18)
|
||||
authors = get_accounts_dict([e.author_id for e in emojis], v=v, graceful=True)
|
||||
|
||||
if FEATURES['ASSET_SUBMISSIONS']:
|
||||
|
@ -81,9 +86,13 @@ def emoji_list(v, kind):
|
|||
|
||||
|
||||
|
||||
@cache.cached(make_cache_key=lambda:"emojis")
|
||||
def get_emojis():
|
||||
emojis = g.db.query(Emoji, User).join(User, Emoji.author_id == User.id).filter(Emoji.submitter_id == None, Emoji.over_18 == False)
|
||||
@cache.cached(make_cache_key=lambda over_18:f"emojis_{over_18}")
|
||||
def get_emojis(over_18):
|
||||
emojis = g.db.query(Emoji, User).join(User, Emoji.author_id == User.id).filter(Emoji.submitter_id == None)
|
||||
|
||||
if not over_18:
|
||||
emojis = emojis.filter(Emoji.over_18 == False)
|
||||
|
||||
emojis1 = emojis.filter(Emoji.kind != 'Marsey Alphabet').order_by(Emoji.count.desc()).all()
|
||||
emojis2 = emojis.filter(Emoji.kind == 'Marsey Alphabet').order_by(func.length(Emoji.name), Emoji.name).all()
|
||||
emojis = emojis1 + emojis2
|
||||
|
@ -102,7 +111,7 @@ def get_emojis():
|
|||
@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
|
||||
@auth_required
|
||||
def emojis(v):
|
||||
return get_emojis()
|
||||
return get_emojis(v.over_18)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue