aboutsummaryrefslogtreecommitdiff
path: root/chat/chat_cache.py
diff options
context:
space:
mode:
Diffstat (limited to 'chat/chat_cache.py')
-rw-r--r--chat/chat_cache.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/chat/chat_cache.py b/chat/chat_cache.py
new file mode 100644
index 00000000..08cbf178
--- /dev/null
+++ b/chat/chat_cache.py
@@ -0,0 +1,43 @@
+import redis
+import json
+
+r = redis.Redis(host='localhost', port=6379, db=0)
+
+def handle_connect():
+ # increase number of connected users
+ r.set('n_connected_lc_users', max(1, int(r.get('n_connected_lc_users')) + 1))
+ print('There are now {} connected users.'.format(r.get('n_connected_lc_users')))
+
+def handle_disconnect():
+ # decrease number of connected users
+ r.set('n_connected_lc_users', max(0, int(r.get('n_connected_lc_users')) - 1))
+ print('There are now {} connected users.'.format(r.get('n_connected_lc_users')))
+
+def handle_alone_user():
+ if int(r.get('n_connected_lc_users')) == 1:
+ return True
+ else:
+ return False
+
+def save_user_messages(user_identifier, message):
+ # get user_messages from redis
+ user_messages = r.get(user_identifier)
+ if user_messages:
+ user_messages = json.loads(user_messages)
+ else:
+ user_messages = []
+ # append new message
+ user_messages.append(message)
+ # save user_messages to redis
+ r.set(user_identifier, json.dumps(user_messages))
+
+def get_user_messages(user_identifier):
+ # get user_messages from redis
+ user_messages = r.get(user_identifier)
+ if user_messages:
+ return json.loads(user_messages)
+ else:
+ return []
+
+def discard_user_messages(user_identifier):
+ r.delete(user_identifier) \ No newline at end of file