forked from rDrama/rDrama
fix user counts being 0 in error pages
parent
ff67e30949
commit
1d726ebd77
|
@ -32,39 +32,40 @@ 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())
|
|
||||||
|
|
||||||
if not session.get("session_id"):
|
loggedin = cache.get(LOGGED_IN_CACHE_KEY) or {}
|
||||||
session.permanent = True
|
loggedout = cache.get(LOGGED_OUT_CACHE_KEY) or {}
|
||||||
session["session_id"] = str(uuid.uuid4())
|
g.loggedin_chat = cache.get(CHAT_ONLINE_CACHE_KEY) or 0
|
||||||
|
timestamp = int(time.time())
|
||||||
|
|
||||||
if v:
|
if not session.get("session_id"):
|
||||||
if session["session_id"] in loggedout: del loggedout[session["session_id"]]
|
session.permanent = True
|
||||||
loggedin[v.id] = timestamp
|
session["session_id"] = str(uuid.uuid4())
|
||||||
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)
|
|
||||||
|
|
||||||
loggedin = {k: v for k, v in loggedin.items() if (timestamp - v) < LOGGEDIN_ACTIVE_TIME}
|
if v:
|
||||||
loggedout = {k: v for k, v in loggedout.items() if (timestamp - v[0]) < LOGGEDIN_ACTIVE_TIME}
|
if session["session_id"] in loggedout: del loggedout[session["session_id"]]
|
||||||
cache.set(LOGGED_IN_CACHE_KEY, loggedin)
|
loggedin[v.id] = timestamp
|
||||||
cache.set(LOGGED_OUT_CACHE_KEY, loggedout)
|
else:
|
||||||
g.loggedin_counter = len(loggedin)
|
ua = str(user_agents.parse(g.agent))
|
||||||
g.loggedout_counter = len(loggedout)
|
if 'spider' not in ua.lower() and 'bot' not in ua.lower():
|
||||||
|
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():
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<div class="srd">
|
<div class="srd">
|
||||||
{{calc_users()}}
|
{{calc_users()}}
|
||||||
{% if SITE_NAME == 'rDrama' %}
|
{% if SITE_NAME == 'rDrama' %}
|
||||||
{% if not hasattr(g, "loggedin_counter") or (range(1,5) | random == 1 and not (v and v.truescore > 1000)) %}
|
{% if (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,8 +69,6 @@
|
||||||
{% 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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue