diff options
| author | Bobby <[email protected]> | 2023-05-18 03:32:33 -0400 |
|---|---|---|
| committer | Bobby <[email protected]> | 2023-05-18 03:32:33 -0400 |
| commit | b532de2f3b0ad75cb3eda787fb49b64e8c4ee032 (patch) | |
| tree | c40cfd657397a8e898c5a2c8e64036cb8287a1ee /chat | |
| parent | 488b7ee1233aefbb7bb70ee5958676f852139025 (diff) | |
| download | thatcomputerscientist-b532de2f3b0ad75cb3eda787fb49b64e8c4ee032.tar.xz thatcomputerscientist-b532de2f3b0ad75cb3eda787fb49b64e8c4ee032.zip | |
Single Skippy Notification on Lonely chat
Diffstat (limited to 'chat')
| -rw-r--r-- | chat/ai.py | 18 | ||||
| -rw-r--r-- | chat/consumers.py | 43 | ||||
| -rw-r--r-- | chat/skippy.py | 9 |
3 files changed, 33 insertions, 37 deletions
diff --git a/chat/ai.py b/chat/ai.py deleted file mode 100644 index 494f6357..00000000 --- a/chat/ai.py +++ /dev/null @@ -1,18 +0,0 @@ - -import redis -from .chat_cache import get_user_messages, save_user_messages - -r = redis.Redis(host='localhost', port=6379, db=0) -subsequent_message = "I told you, no one's around. Stop talking to yourself, you weirdo!" - -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 lonely rat!" - elif len(user_messages) == 2: - return "I told you, no one's around. Stop talking to yourself, you weirdo!" - elif len(user_messages) == 3: - return "I'm not going to respond to you anymore. Not only are you a weirdo, you're also relentlesslly annoying." - else: - return None
\ No newline at end of file diff --git a/chat/consumers.py b/chat/consumers.py index 5b0e7ddf..0b3017c4 100644 --- a/chat/consumers.py +++ b/chat/consumers.py @@ -1,45 +1,50 @@ import json -from channels.generic.websocket import AsyncWebsocketConsumer +from channels.generic.websocket import WebsocketConsumer +from asgiref.sync import async_to_sync from .chat_cache import handle_connect, handle_disconnect, handle_alone_user, discard_user_messages -from .ai import invokeMFSkippy +from .skippy import invokeMFSkippy -class ChatConsumer(AsyncWebsocketConsumer): - async def connect(self): - self.room_group_name = 'chat' - await self.channel_layer.group_add(self.room_group_name, self.channel_name) - await self.accept() +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() - async def disconnect(self, close_code): + def disconnect(self, close_code): # Leave room group - await self.channel_layer.group_discard(self.room_group_name, self.channel_name) + 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) - async def receive(self, text_data): + 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 - await self.channel_layer.group_send( + 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: - bot_response = invokeMFSkippy(message=message, identifier=self.channel_name) - if bot_response: - await self.channel_layer.group_send( - self.room_group_name, {"type": "chat", "message": bot_response, "username": "Skippy"} + 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"} ) - else: - discard_user_messages(user_identifier=self.channel_name) # Receive message from room group - async def chat(self, event): + def chat(self, event): message = event["message"] username = event["username"] # Send message to WebSocket - await self.send(text_data=json.dumps({"message": message, "username": username})) + self.send(text_data=json.dumps({"message": message, "username": username})) diff --git a/chat/skippy.py b/chat/skippy.py new file mode 100644 index 00000000..bf6ab6ac --- /dev/null +++ b/chat/skippy.py @@ -0,0 +1,9 @@ +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 |
