diff --git a/chat_box/consumers.py b/chat_box/consumers.py deleted file mode 100644 index cb7cd18..0000000 --- a/chat_box/consumers.py +++ /dev/null @@ -1,76 +0,0 @@ -import json -from channels.generic.websocket import AsyncWebsocketConsumer -from .models import Message -from django.urls import reverse -from django.http import HttpResponse, HttpResponseRedirect -from django.core import serializers - -from judge.jinja2.gravatar import gravatar -from judge.models.profile import Profile - - -class ChatConsumer(AsyncWebsocketConsumer): - async def connect(self): - self.room_name = 'room' - self.room_group_name = 'chat_%s' % self.room_name - - # Join room group - await self.channel_layer.group_add( - self.room_group_name, - self.channel_name, - ) - - await self.accept() - - async def disconnect(self, close_code): - # Leave room group - await self.channel_layer.group_discard( - self.room_group_name, - self.channel_name, - ) - - # Receive message from WebSocket - async def receive(self, text_data): - text_data_json = json.loads(text_data) - message = text_data_json['message'] - - author = self.scope['user'] - author = Profile.objects.get(user=author) - - message['author'] = author.username - message['css_class'] = author.css_class - message['image'] = gravatar(author, 32) - - message_saved = save_data_and_return(message, author) - message['time'] = message_saved[0]['fields']['time'] - message['id'] = message_saved[0]['pk'] - - # Send message to room group - await self.channel_layer.group_send( - self.room_group_name, - { - 'type': 'chat_message', - 'message': message, - }, - ) - - # Receive message from room group - async def chat_message(self, event): - message = event['message'] - # Send message to WebSocket - await self.send(text_data=json.dumps({ - 'message': message, - })) - - -# return time -def save_data_and_return(message, author): - new_message = Message(body=message['body'], - author=author, - ) - new_message.save() - json_data = serializers.serialize("json", - Message.objects - .filter(pk=new_message.id) - ) - return json.loads(json_data) \ No newline at end of file diff --git a/templates/chat/chat.html b/templates/chat/chat.html index 620cc5e..291fc17 100644 --- a/templates/chat/chat.html +++ b/templates/chat/chat.html @@ -124,12 +124,14 @@ body: body, }; + $('#chat-input').val(''); + $.post("{{ url('post_chat_message') }}", message) .fail(function(res) { console.log('Fail to send message'); }) .done(function(res, status) { - $('#chat-input').val('').focus(); + $('#chat-input').focus(); }) } }); @@ -196,6 +198,10 @@ }) }) + setInterval(function() { + $('#refresh-button').click(); + }, 5 * 60 * 1000); + $('#chat-box').scrollTop($('#chat-box')[0].scrollHeight); remove_day_if_today(); load_dynamic_update({{last_msg}}); @@ -256,4 +262,4 @@ -{% endblock body %} \ No newline at end of file +{% endblock body %}