0.3.12
chat v3
This commit is contained in:
@@ -97,7 +97,7 @@ def update_chat(data):
|
|||||||
if data['receiver'] == data['cur_user']:
|
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(
|
# receivers_unread_msgs_count = sorted(
|
||||||
# [{'id': item.id, 'unread_msgs_count': item.unread_msgs_count} for item in receivers],
|
# [{'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.unread_msgs_count = 0
|
||||||
msg.receiver.last_msg = msg.text
|
msg.receiver.last_msg = msg.text
|
||||||
receivers_list.append(msg.receiver)
|
receivers_list.append(msg.receiver)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if msg.sender not in receivers_list and msg.sender != user:
|
if msg.sender not in receivers_list and msg.sender != user:
|
||||||
msg.sender.unread_msgs_count = 0
|
msg.sender.unread_msgs_count = 0
|
||||||
receivers_list.append(msg.sender)
|
receivers_list.append(msg.sender)
|
||||||
msg.sender.last_msg = msg.text
|
msg.sender.last_msg = msg.text
|
||||||
|
|
||||||
if msg.receiver == user:# and (not cur_receiver or msg.sender != cur_receiver):
|
|
||||||
if msg.status == 'sended':
|
if msg.status == 'sended':
|
||||||
i = receivers_list.index(msg.sender)
|
i = receivers_list.index(msg.sender)
|
||||||
receivers_list[i].unread_msgs_count += 1
|
receivers_list[i].unread_msgs_count += 1
|
||||||
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
|
return receivers_list, unread_msgs_count
|
||||||
|
|
||||||
# receivers_list.extend((item.sender for item in receivers if item.sender != user))
|
# receivers_list.extend((item.sender for item in receivers if item.sender != user))
|
||||||
|
|||||||
@@ -55,23 +55,25 @@ class ChatConsumer(WebsocketConsumer):
|
|||||||
resDict
|
resDict
|
||||||
)
|
)
|
||||||
|
|
||||||
data.update({
|
|
||||||
'cur_user': receiver,
|
|
||||||
'required_beep': True,
|
|
||||||
})
|
|
||||||
Dict = update_chat(data)
|
|
||||||
group_name = f'user_{receiver}'
|
group_name = f'user_{receiver}'
|
||||||
resDict = {
|
if group_name in self.channel_layer.groups.keys():
|
||||||
'type': 'update_chat',
|
data.update({
|
||||||
'sender': receiver,
|
'cur_user': receiver,
|
||||||
'receiver': sender,
|
'required_beep': True,
|
||||||
'group_name': group_name,
|
})
|
||||||
}
|
Dict = update_chat(data)
|
||||||
resDict.update(Dict)
|
|
||||||
async_to_sync(self.channel_layer.group_send)(
|
resDict = {
|
||||||
group_name,
|
'type': 'update_chat',
|
||||||
resDict
|
'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):
|
def echo(self, data):
|
||||||
print('ws echo')
|
print('ws echo')
|
||||||
|
|||||||
Reference in New Issue
Block a user