make the online listing specific to the type of chat
parent
e044ddde90
commit
70ab540717
|
@ -32,8 +32,11 @@ typing = {
|
||||||
f'{SITE_FULL}/chat': [],
|
f'{SITE_FULL}/chat': [],
|
||||||
f'{SITE_FULL}/admin/chat': []
|
f'{SITE_FULL}/admin/chat': []
|
||||||
}
|
}
|
||||||
online = []
|
online = {
|
||||||
cache.set(CHAT_ONLINE_CACHE_KEY, len(online), timeout=0)
|
f'{SITE_FULL}/chat': [],
|
||||||
|
f'{SITE_FULL}/admin/chat': []
|
||||||
|
}
|
||||||
|
cache.set(CHAT_ONLINE_CACHE_KEY, len(online[f'{SITE_FULL}/chat']), timeout=0)
|
||||||
muted = cache.get(f'muted') or {
|
muted = cache.get(f'muted') or {
|
||||||
f'{SITE_FULL}/chat': {},
|
f'{SITE_FULL}/chat': {},
|
||||||
f'{SITE_FULL}/admin/chat': {}
|
f'{SITE_FULL}/admin/chat': {}
|
||||||
|
@ -129,21 +132,24 @@ def speak(data, v):
|
||||||
|
|
||||||
return '', 204
|
return '', 204
|
||||||
|
|
||||||
|
def refresh_online():
|
||||||
|
emit("online", online[request.referrer], room=request.referrer, broadcast=True)
|
||||||
|
if request.referrer == f'{SITE_FULL}/chat':
|
||||||
|
cache.set(CHAT_ONLINE_CACHE_KEY, len(online[request.referrer]), timeout=0)
|
||||||
|
|
||||||
@socketio.on('connect')
|
@socketio.on('connect')
|
||||||
@admin_level_required(PERMS['CHAT'])
|
@admin_level_required(PERMS['CHAT'])
|
||||||
def connect(v):
|
def connect(v):
|
||||||
join_room(request.referrer)
|
join_room(request.referrer)
|
||||||
|
|
||||||
if v.username not in online:
|
if v.username not in online[request.referrer]:
|
||||||
online.append(v.username)
|
online[request.referrer].append(v.username)
|
||||||
emit("online", online, room=request.referrer, broadcast=True)
|
refresh_online()
|
||||||
cache.set(CHAT_ONLINE_CACHE_KEY, len(online), timeout=0)
|
|
||||||
|
|
||||||
if not socket_ids_to_user_ids.get(request.sid):
|
if not socket_ids_to_user_ids.get(request.sid):
|
||||||
socket_ids_to_user_ids[request.sid] = v.id
|
socket_ids_to_user_ids[request.sid] = v.id
|
||||||
user_ids_to_socket_ids[v.id] = request.sid
|
user_ids_to_socket_ids[v.id] = request.sid
|
||||||
|
|
||||||
emit('online', online, room=request.referrer)
|
|
||||||
emit('catchup', messages[request.referrer], room=request.referrer)
|
emit('catchup', messages[request.referrer], room=request.referrer)
|
||||||
emit('typing', typing[request.referrer], room=request.referrer)
|
emit('typing', typing[request.referrer], room=request.referrer)
|
||||||
return '', 204
|
return '', 204
|
||||||
|
@ -151,10 +157,9 @@ def connect(v):
|
||||||
@socketio.on('disconnect')
|
@socketio.on('disconnect')
|
||||||
@admin_level_required(PERMS['CHAT'])
|
@admin_level_required(PERMS['CHAT'])
|
||||||
def disconnect(v):
|
def disconnect(v):
|
||||||
if v.username in online:
|
if v.username in online[request.referrer]:
|
||||||
online.remove(v.username)
|
online[request.referrer].remove(v.username)
|
||||||
emit("online", online, room=request.referrer, broadcast=True)
|
refresh_online()
|
||||||
cache.set(CHAT_ONLINE_CACHE_KEY, len(online), timeout=0)
|
|
||||||
|
|
||||||
if v.username in typing[request.referrer]:
|
if v.username in typing[request.referrer]:
|
||||||
typing[request.referrer].remove(v.username)
|
typing[request.referrer].remove(v.username)
|
||||||
|
|
Loading…
Reference in New Issue