Beispiel #1
0
def get_messages(room, user = None, fields = None, pagination = 20):
	user = get_user_doc(user)

	room = frappe.get_doc('Chat Room', room)
	mess = frappe.get_all('Chat Message',
		filters = [
			('Chat Message', 'room', '=', room.name),
			('Chat Message', 'type', '=', room.type)
		],
		fields  = fields if fields else [
			'name', 'type',
			'room', 'content',
			'user', 'mentions', 'urls',
			'creation'
		]
	)

	return mess
Beispiel #2
0
def get_new_chat_message_doc(user, room, content, link=True):
    user = get_user_doc(user)
    room = frappe.get_doc('Chat Room', room)

    meta = get_message_meta(content)
    mess = frappe.new_doc('Chat Message')
    mess.type = room.type
    mess.room = room.name
    mess.content = sanitize_message_content(content)
    mess.user = user.name

    mess.mentions = json.dumps(meta.mentions)
    mess.urls = ','.join(meta.urls)
    mess.save(ignore_permissions=True)

    if link:
        room.update(dict(last_message=mess.name))
        room.save(ignore_permissions=True)

    return mess
Beispiel #3
0
def get_new_chat_message_doc(user, room, content, type = "Content", link = True):
	user = get_user_doc(user)
	room = frappe.get_doc('Chat Room', room)

	meta = get_message_meta(content)
	mess = frappe.new_doc('Chat Message')
	mess.room 	   = room.name
	mess.room_type = room.type
	mess.content   = sanitize_message_content(content)
	mess.type      = type
	mess.user	   = user.name

	mess.mentions  = json.dumps(meta.mentions)
	mess.urls      = ','.join(meta.urls)
	mess.save(ignore_permissions = True)

	if link:
		room.update(dict(
			last_message = mess.name
		))
		room.save(ignore_permissions = True)

	return mess
Beispiel #4
0
 def test_get_user_doc(self):
     # Needs more test cases.
     user = get_user_doc()
     self.assertEqual(user.name, frappe.session.user)