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