revert 2 commits

pull/171/head
Aevann 2023-07-14 12:20:33 +03:00
parent e13472b60c
commit 955aaf48e5
3 changed files with 36 additions and 35 deletions

View File

@ -11,10 +11,6 @@ from files.__main__ import app, limiter, get_CF, redis_instance
def before_request(): def before_request():
g.v = None g.v = None
g.agent = request.headers.get("User-Agent")
if not g.agent and request.path != '/kofi':
abort(403, 'Please use a "User-Agent" header!')
if request.host != SITE: if request.host != SITE:
abort(403, "Unauthorized host provided!") abort(403, "Unauthorized host provided!")
@ -24,6 +20,10 @@ def before_request():
if request.headers.get("CF-Worker"): if request.headers.get("CF-Worker"):
abort(403, "Cloudflare workers are not allowed to access this website!") abort(403, "Cloudflare workers are not allowed to access this website!")
g.agent = request.headers.get("User-Agent", "")
if not g.agent and request.path != '/kofi':
abort(403, 'Please use a "User-Agent" header!')
if not get_setting('bots') and request.headers.get("Authorization"): if not get_setting('bots') and request.headers.get("Authorization"):
abort(403) abort(403)

View File

@ -32,40 +32,39 @@ def calc_users():
g.loggedout_counter = 0 g.loggedout_counter = 0
g.loggedin_chat = 0 g.loggedin_chat = 0
v = getattr(g, 'v', None) if g else None v = getattr(g, 'v', None) if g else None
if has_request_context and g and g.desires_auth and not g.is_api_or_xhr:
loggedin = cache.get(LOGGED_IN_CACHE_KEY) or {}
loggedout = cache.get(LOGGED_OUT_CACHE_KEY) or {}
g.loggedin_chat = cache.get(CHAT_ONLINE_CACHE_KEY) or 0
timestamp = int(time.time())
loggedin = cache.get(LOGGED_IN_CACHE_KEY) or {} if not session.get("session_id"):
loggedout = cache.get(LOGGED_OUT_CACHE_KEY) or {} session.permanent = True
g.loggedin_chat = cache.get(CHAT_ONLINE_CACHE_KEY) or 0 session["session_id"] = str(uuid.uuid4())
timestamp = int(time.time())
if not session.get("session_id"): if v:
session.permanent = True if session["session_id"] in loggedout: del loggedout[session["session_id"]]
session["session_id"] = str(uuid.uuid4()) loggedin[v.id] = timestamp
else:
ua = str(user_agents.parse(g.agent))
if 'spider' not in ua.lower() and 'bot' not in ua.lower():
loggedout[session["session_id"]] = (timestamp, ua)
if v: loggedin = {k: v for k, v in loggedin.items() if (timestamp - v) < LOGGEDIN_ACTIVE_TIME}
if session["session_id"] in loggedout: del loggedout[session["session_id"]] loggedout = {k: v for k, v in loggedout.items() if (timestamp - v[0]) < LOGGEDIN_ACTIVE_TIME}
loggedin[v.id] = timestamp cache.set(LOGGED_IN_CACHE_KEY, loggedin)
elif hasattr(g, 'agent') and g.agent: cache.set(LOGGED_OUT_CACHE_KEY, loggedout)
ua = str(user_agents.parse(g.agent)) g.loggedin_counter = len(loggedin)
if 'spider' not in ua.lower() and 'bot' not in ua.lower(): g.loggedout_counter = len(loggedout)
loggedout[session["session_id"]] = (timestamp, ua)
loggedin = {k: v for k, v in loggedin.items() if (timestamp - v) < LOGGEDIN_ACTIVE_TIME}
loggedout = {k: v for k, v in loggedout.items() if (timestamp - v[0]) < LOGGEDIN_ACTIVE_TIME}
cache.set(LOGGED_IN_CACHE_KEY, loggedin)
cache.set(LOGGED_OUT_CACHE_KEY, loggedout)
g.loggedin_counter = len(loggedin)
g.loggedout_counter = len(loggedout)
if g.loggedout_counter > 3000:
if not get_setting('ddos_detected'):
toggle_setting('ddos_detected')
set_security_level('under_attack')
else:
if get_setting('ddos_detected'):
toggle_setting('ddos_detected')
set_security_level('high')
if g.loggedout_counter > 3000:
if not get_setting('ddos_detected'):
toggle_setting('ddos_detected')
set_security_level('under_attack')
else:
if get_setting('ddos_detected'):
toggle_setting('ddos_detected')
set_security_level('high')
return '' return ''
def get_logged_in_user(): def get_logged_in_user():

View File

@ -7,7 +7,7 @@
<div class="srd"> <div class="srd">
{{calc_users()}} {{calc_users()}}
{% if SITE_NAME == 'rDrama' %} {% if SITE_NAME == 'rDrama' %}
{% if (range(1,5) | random == 1 and not (v and v.truescore > 1000)) %} {% if not hasattr(g, "loggedin_counter") or (range(1,5) | random == 1 and not (v and v.truescore > 1000)) %}
{% include "journoid_banner.html" %} {% include "journoid_banner.html" %}
{% else %} {% else %}
{% if IS_DKD() %} {% if IS_DKD() %}
@ -69,6 +69,8 @@
{% endif %} {% endif %}
{% elif hasattr(g, "loggedin_counter") %} {% elif hasattr(g, "loggedin_counter") %}
{{g.loggedin_counter+g.loggedout_counter}} people here now ({{g.loggedin_counter}} logged in) {{g.loggedin_counter+g.loggedout_counter}} people here now ({{g.loggedin_counter}} logged in)
{% else %}
Don't make the mistakes seen here.
{% endif %} {% endif %}
</div> </div>