Пример #1
0
def send_message(sid, event_data):
    with controlled_execution():
        user_id = connected_sid_user_id[sid]
        print('send_message', user_id)
        contact = Contact.get(event_data['chatroom_id'])

        message = Message(contact_id=contact.id, content=event_data['content'], from_user_id=user_id)
        message.save()
        message = Message.get(message.id)
        message_tosend = message.client_message()

        for sid_for_author in connected_user_id_sids[user_id]:
            sio.emit('general_notification', {
                'new_message': message_tosend
            }, sid_for_author)

        another_user_to_notify_unread = contact.user1_id if contact.user2_id == user_id else contact.user2_id
        unread = get_unread(another_user_to_notify_unread, [contact.id])
        for sid_for_receiver in connected_user_id_sids[another_user_to_notify_unread]:
            sio.emit('general_notification', {
                'new_message': message_tosend,
                'unread': unread
            }, sid_for_receiver)

        return {'ok': True, 'message_id': message.id}
Пример #2
0
def send_message(sid, event_data):
    log('send_message', sid, event_data)
    with controlled_execution():
        user_id = connected_sid_user_id[sid]
        log('send_message', user_id)
        contact = Contact.get(event_data['chatroom_id'])

        message = Message(contact_id=contact.id,
                          content=event_data['content'],
                          from_user_id=user_id)
        message.save()
        message = Message.get(message.id)
        message_tosend = message.client_message()

        for sid_for_author in connected_user_id_sids[user_id]:
            sio.emit('general_notification', {'new_message': message_tosend},
                     sid_for_author)

        another_user_to_notify_unread = contact.user1_id if contact.user2_id == user_id else contact.user2_id
        unread = get_unread(another_user_to_notify_unread, [contact.id])
        for sid_for_receiver in connected_user_id_sids[
                another_user_to_notify_unread]:
            sio.emit('general_notification', {
                'new_message': message_tosend,
                'unread': unread
            }, sid_for_receiver)

        return {'ok': True, 'message_id': message.id}
Пример #3
0
def read_message(sid, message_id):
    with controlled_execution():
        message = Message.get(message_id)
        contact = Contact.get(message.contact_id)
        if message.read_tm is None:
            another_user_to_notify_unread = contact.user1_id if contact.user2_id == message.from_user_id else contact.user2_id
            print("SELECT message_set_read('%s', ARRAY ['%s']);" % (message.contact_id, message.id))
            g.db().execute("SELECT message_set_read('%s', ARRAY ['%s']);" % (message.contact_id, message.id))
            unread = get_unread(another_user_to_notify_unread, [contact.id])
            for sid_for_receiver in connected_user_id_sids[another_user_to_notify_unread]:
                sio.emit('general_notification', {
                    'unread': unread
                }, sid_for_receiver)
Пример #4
0
def read_message(sid, message_id):
    log('read_message', sid, message_id)
    with controlled_execution():
        message = Message.get(message_id)
        contact = Contact.get(message.contact_id)
        if message.read_tm is None:
            another_user_to_notify_unread = contact.user1_id if contact.user2_id == message.from_user_id else contact.user2_id
            log("SELECT message_set_read('%s', ARRAY ['%s']);" %
                (message.contact_id, message.id))
            g.db().execute("SELECT message_set_read('%s', ARRAY ['%s']);" %
                           (message.contact_id, message.id))
            unread = get_unread(another_user_to_notify_unread, [contact.id])
            for sid_for_receiver in connected_user_id_sids[
                    another_user_to_notify_unread]:
                sio.emit('general_notification', {'unread': unread},
                         sid_for_receiver)