Skip to content

Commit

Permalink
Make Notification For ChatRooms
Browse files Browse the repository at this point in the history
  • Loading branch information
ProdByGodfather committed Dec 27, 2023
1 parent ce88556 commit 3ef170b
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 25 deletions.
59 changes: 35 additions & 24 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 23 additions & 1 deletion chat/consumers.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,36 @@ def new_message(self, data):
message = data['message']
author = data['username']
roomname = data['roomname']

self.notif(data)
chat_model = models.Chat.objects.get(roomname=roomname)

user_model = user.objects.filter(username=author).first()
message_model = Message.objects.create(author=user_model, content=message, related_chat=chat_model)
result = eval(self.message_serializer(message_model))
self.send_to_chat_message(result)


def notif(self, data):
message_room_name = data['roomname']
chat_room_qs = models.Chat.objects.filter(roomname=message_room_name)


members_list = []

for i in chat_room_qs[0].members.all():
members_list.append(i.username)

async_to_sync(self.channel_layer.group_send)(
'chat_listener',
{
'__str__': data['username'],
"type": "chat.message",
"content": data['message'],
'roomname': message_room_name,
'members_list': members_list,
})


def fetch_message(self, data):
roomname = data['roomname']
qs = Message.last_messages(self,roomname)
Expand Down
Binary file modified db.sqlite3
Binary file not shown.
46 changes: 46 additions & 0 deletions templates/chat/room.html
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,48 @@ <h4 class="name friend-name">
+ '/'
);

const chatSocket2 = new WebSocket(
'ws://'
+ window.location.host
+ '/ws/chat/'
+ 'listener'
+ '/'
);

chatSocket2.onmessage = function(e){
var data = JSON.parse(e.data)


for (let i = data['members_list'].length-1; i>=0;i--){
if (data['members_list'][i] == username){
if (data['__str__'] != username){
if (data['roomname'] != roomName){

if(!("Notification" in window)){
alert("This browser does not Support Desktop notification");
}

else if (Notification.permission === "granted"){
var notification = new Notification(data['__str__'] + " : " + data['content'] + "\n" + "Room : " + roomName);
}

else if (Notification.permission !== "denied"){
Notification.requestPermission().then(function (permission){
if(permission === "granted"){
var notification = new Notification("Hi there!")
}
});
}

}
}
}
}

}



chatSocket.onopen = function (e){
chatSocket.send(JSON.stringify({
'command': "fetch_message",
Expand Down Expand Up @@ -201,6 +243,10 @@ <h4 class="name friend-name">
'timestamp': datetime
}));





});
FR.readAsDataURL(this.files[0]);
}
Expand Down

0 comments on commit 3ef170b

Please sign in to comment.