0.3.12
chat v3
This commit is contained in:
@@ -97,7 +97,7 @@ def update_chat(data):
|
||||
if data['receiver'] == data['cur_user']:
|
||||
# получаем правую панель с получателями
|
||||
# получатели
|
||||
receivers, unread_msgs_count = get_chat_receivers_for_user(sender, receiver)
|
||||
receivers, unread_msgs_count = get_chat_receivers_for_user(receiver)
|
||||
# собираем для сохранения в профиле
|
||||
# receivers_unread_msgs_count = sorted(
|
||||
# [{'id': item.id, 'unread_msgs_count': item.unread_msgs_count} for item in receivers],
|
||||
@@ -287,17 +287,30 @@ def get_chat_receivers_for_user(user, cur_receiver=None):
|
||||
msg.receiver.unread_msgs_count = 0
|
||||
msg.receiver.last_msg = msg.text
|
||||
receivers_list.append(msg.receiver)
|
||||
|
||||
|
||||
|
||||
if msg.sender not in receivers_list and msg.sender != user:
|
||||
msg.sender.unread_msgs_count = 0
|
||||
receivers_list.append(msg.sender)
|
||||
msg.sender.last_msg = msg.text
|
||||
|
||||
if msg.receiver == user:# and (not cur_receiver or msg.sender != cur_receiver):
|
||||
if msg.status == 'sended':
|
||||
i = receivers_list.index(msg.sender)
|
||||
receivers_list[i].unread_msgs_count += 1
|
||||
unread_msgs_count += 1
|
||||
|
||||
# if msg.status == 'sended':
|
||||
# i = receivers_list.index(msg.sender)
|
||||
# receivers_list[i].unread_msgs_count += 1
|
||||
# unread_msgs_count += 1
|
||||
|
||||
# if msg.receiver == user:# and (not cur_receiver or msg.sender != cur_receiver):
|
||||
# if msg.status == 'sended':
|
||||
# i = receivers_list.index(msg.sender)
|
||||
# receivers_list[i].unread_msgs_count += 1
|
||||
# unread_msgs_count += 1
|
||||
|
||||
return receivers_list, unread_msgs_count
|
||||
|
||||
# receivers_list.extend((item.sender for item in receivers if item.sender != user))
|
||||
|
||||
@@ -55,23 +55,25 @@ class ChatConsumer(WebsocketConsumer):
|
||||
resDict
|
||||
)
|
||||
|
||||
data.update({
|
||||
'cur_user': receiver,
|
||||
'required_beep': True,
|
||||
})
|
||||
Dict = update_chat(data)
|
||||
group_name = f'user_{receiver}'
|
||||
resDict = {
|
||||
'type': 'update_chat',
|
||||
'sender': receiver,
|
||||
'receiver': sender,
|
||||
'group_name': group_name,
|
||||
}
|
||||
resDict.update(Dict)
|
||||
async_to_sync(self.channel_layer.group_send)(
|
||||
group_name,
|
||||
resDict
|
||||
)
|
||||
if group_name in self.channel_layer.groups.keys():
|
||||
data.update({
|
||||
'cur_user': receiver,
|
||||
'required_beep': True,
|
||||
})
|
||||
Dict = update_chat(data)
|
||||
|
||||
resDict = {
|
||||
'type': 'update_chat',
|
||||
'sender': receiver,
|
||||
'receiver': sender,
|
||||
'group_name': group_name,
|
||||
}
|
||||
resDict.update(Dict)
|
||||
async_to_sync(self.channel_layer.group_send)(
|
||||
group_name,
|
||||
resDict
|
||||
)
|
||||
|
||||
def echo(self, data):
|
||||
print('ws echo')
|
||||
|
||||
Reference in New Issue
Block a user