diff options
| author | Bobby <[email protected]> | 2024-12-16 18:38:05 +0000 |
|---|---|---|
| committer | Bobby <[email protected]> | 2024-12-16 18:38:05 +0000 |
| commit | ea8f5e8517161c1bd52f61198138dfd2fc72f8e2 (patch) | |
| tree | 19dd955137c8c6bb9c1143bbced320737cd93b09 /chat | |
| parent | 04788ddd83c5e80a09a468d07427f0e365db71d7 (diff) | |
| download | thatcomputerscientist-ea8f5e8517161c1bd52f61198138dfd2fc72f8e2.tar.xz thatcomputerscientist-ea8f5e8517161c1bd52f61198138dfd2fc72f8e2.zip | |
its all in a state of chaos, but it shall be working soon
Diffstat (limited to 'chat')
| -rw-r--r-- | chat/chat_cache.py | 108 | ||||
| -rw-r--r-- | chat/consumers.py | 77 | ||||
| -rw-r--r-- | chat/skippy.py | 18 |
3 files changed, 105 insertions, 98 deletions
diff --git a/chat/chat_cache.py b/chat/chat_cache.py index 8c107a6c..ed08c5dd 100644 --- a/chat/chat_cache.py +++ b/chat/chat_cache.py @@ -1,54 +1,54 @@ -import json - -import redis - -import os -from dotenv import load_dotenv - -load_dotenv() - -r = redis.Redis( - host=os.getenv('REDIS_HOST'), - port=os.getenv('REDIS_PORT'), - password=os.getenv('REDIS_PASSWORD'), - 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 +# import json + +# import redis + +# import os +# from dotenv import load_dotenv + +# load_dotenv() + +# r = redis.Redis( +# host=os.getenv('REDIS_HOST'), +# port=os.getenv('REDIS_PORT'), +# password=os.getenv('REDIS_PASSWORD'), +# 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) diff --git a/chat/consumers.py b/chat/consumers.py index da81449c..f5e89851 100644 --- a/chat/consumers.py +++ b/chat/consumers.py @@ -3,46 +3,50 @@ import json from asgiref.sync import async_to_sync from channels.generic.websocket import WebsocketConsumer -from .chat_cache import (discard_user_messages, handle_alone_user, - handle_connect, handle_disconnect) +# from .chat_cache import (discard_user_messages, handle_alone_user, +# handle_connect, handle_disconnect) from .skippy import invokeMFSkippy class ChatConsumer(WebsocketConsumer): - def connect(self): - self.room_group_name = "chat" - # Join room group - async_to_sync(self.channel_layer.group_add)( - self.room_group_name, self.channel_name - ) - - self.accept() - handle_connect() - - def disconnect(self, close_code): - # Leave room group - async_to_sync(self.channel_layer.group_discard)( - self.room_group_name, self.channel_name - ) - handle_disconnect() - discard_user_messages(user_identifier=self.channel_name) - - def receive(self, text_data): - text_data_json = json.loads(text_data) - message = text_data_json['message'] - username = text_data_json['username'] - - # Send message to room group - async_to_sync(self.channel_layer.group_send)( - self.room_group_name, {"type": "chat", "message": message, "username": username} - ) - is_alone_user = handle_alone_user() - if is_alone_user: - skippy_message = invokeMFSkippy(message=message, identifier=self.channel_name) - if skippy_message: - async_to_sync(self.channel_layer.group_send)( - self.room_group_name, {"type": "chat", "message": skippy_message, "username": "Skippy"} - ) + # def connect(self): + # self.room_group_name = "chat" + # # Join room group + # async_to_sync(self.channel_layer.group_add)( + # self.room_group_name, self.channel_name + # ) + + # self.accept() + # handle_connect() + + # def disconnect(self, close_code): + # # Leave room group + # async_to_sync(self.channel_layer.group_discard)( + # self.room_group_name, self.channel_name + # ) + # handle_disconnect() + # discard_user_messages(user_identifier=self.channel_name) + + # def receive(self, text_data): + # text_data_json = json.loads(text_data) + # message = text_data_json["message"] + # username = text_data_json["username"] + + # # Send message to room group + # async_to_sync(self.channel_layer.group_send)( + # self.room_group_name, + # {"type": "chat", "message": message, "username": username}, + # ) + # is_alone_user = handle_alone_user() + # if is_alone_user: + # skippy_message = invokeMFSkippy( + # message=message, identifier=self.channel_name + # ) + # if skippy_message: + # async_to_sync(self.channel_layer.group_send)( + # self.room_group_name, + # {"type": "chat", "message": skippy_message, "username": "Skippy"}, + # ) # Receive message from room group def chat(self, event): @@ -51,4 +55,3 @@ class ChatConsumer(WebsocketConsumer): # Send message to WebSocket self.send(text_data=json.dumps({"message": message, "username": username})) - diff --git a/chat/skippy.py b/chat/skippy.py index 6fa3aaa1..55b6e593 100644 --- a/chat/skippy.py +++ b/chat/skippy.py @@ -1,10 +1,14 @@ -from .chat_cache import get_user_messages, save_user_messages +# from .chat_cache import get_user_messages, save_user_messages def invokeMFSkippy(message, identifier): - save_user_messages(user_identifier=identifier, message={'content': message, 'role': 'user'}) - user_messages = get_user_messages(user_identifier=identifier) - if len(user_messages) == 1: - return "Skippy here. No one's around, you are free to browse around or keep sending messages like a weirdo. Bye." - else: - return None + # save_user_messages( + # user_identifier=identifier, message={"content": message, "role": "user"} + # ) + # user_messages = get_user_messages(user_identifier=identifier) + # if len(user_messages) == 1: + return "Skippy here. No one's around, you are free to browse around or keep sending messages like a weirdo. Bye." + + +# else: +# return None |
