chore: fix indentation and cleanup annoying spaces

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>
This commit is contained in:
Chinmay D. Pai 2019-12-27 13:24:59 +05:30
parent 4d4388edbf
commit b7ad4a00f7
No known key found for this signature in database
GPG key ID: 75507BE256F40CED

View file

@ -1,17 +1,14 @@
from __future__ import unicode_literals
# imports - standard imports
import json
# imports - module imports
from frappe.model.document import Document
from frappe import _
from frappe.model.document import Document
from frappe import _
import frappe
# imports - frappe module imports
from frappe.chat import authenticate
from frappe.chat import authenticate
from frappe.core.doctype.version.version import get_diff
from frappe.chat.doctype.chat_message import chat_message
from frappe.chat.doctype.chat_message import chat_message
from frappe.chat.util import (
safe_json_loads,
dictify,
@ -22,13 +19,14 @@ from frappe.chat.util import (
session = frappe.session
def is_direct(owner, other, bidirectional = False):
def is_direct(owner, other, bidirectional=False):
def get_room(owner, other):
room = frappe.get_all('Chat Room', filters = [
['Chat Room', 'type' , 'in', ('Direct', 'Visitor')],
['Chat Room', 'owner', '=' , owner],
['Chat Room User', 'user' , '=' , other]
], distinct = True)
room = frappe.get_all('Chat Room', filters=[
['Chat Room', 'type', 'in', ('Direct', 'Visitor')],
['Chat Room', 'owner', '=', owner],
['Chat Room User', 'user', '=', other]
], distinct=True)
return room
@ -38,7 +36,8 @@ def is_direct(owner, other, bidirectional = False):
return exists
def get_chat_room_user_set(users, filter_ = None):
def get_chat_room_user_set(users, filter_=None):
seen, uset = set(), list()
for u in users:
@ -48,12 +47,13 @@ def get_chat_room_user_set(users, filter_ = None):
return uset
class ChatRoom(Document):
def validate(self):
if self.is_new():
users = get_chat_room_user_set(self.users, filter_ = lambda u: u.user != session.user)
users = get_chat_room_user_set(self.users, filter_=lambda u: u.user != session.user)
self.update(dict(
users = users
users=users
))
if self.type == "Direct":
@ -63,7 +63,7 @@ class ChatRoom(Document):
other = squashify(self.users)
if self.is_new():
if is_direct(self.owner, other.user, bidirectional = True):
if is_direct(self.owner, other.user, bidirectional=True):
frappe.throw(_('Direct room with {0} already exists.').format(other.user))
if self.type == "Group" and not self.room_name:
@ -74,29 +74,32 @@ class ChatRoom(Document):
before = self.get_doc_before_save()
if not before: return
after = self
diff = dictify(get_diff(before, after))
after = self
diff = dictify(get_diff(before, after))
if diff:
update = { }
update = {}
for changed in diff.changed:
field, old, new = changed
if field == 'last_message':
new = chat_message.get(new)
update.update({ field: new })
update.update({field: new})
if diff.added or diff.removed:
update.update(dict(users = [u.user for u in self.users]))
update.update(dict(users=[u.user for u in self.users]))
update = dict(room = self.name, data = update)
update = dict(room=self.name, data=update)
frappe.publish_realtime('frappe.chat.room:update', update, room=self.name,
after_commit=True)
frappe.publish_realtime('frappe.chat.room:update', update, room = self.name, after_commit = True)
@frappe.whitelist(allow_guest=True)
def get(user=None, token=None, rooms=None, fields=None, filters=None):
# There is this horrible bug out here.
# Looks like if frappe.call sends optional arguments (not in right order), the argument turns to an empty string.
# Looks like if frappe.call sends optional arguments (not in right order),
# the argument turns to an empty string.
# I'm not even going to think searching for it.
# Hence, the hack was get_if_empty (previous assign_if_none)
# - Achilles Rasquinha achilles@frappe.io
@ -105,10 +108,10 @@ def get(user=None, token=None, rooms=None, fields=None, filters=None):
rooms, fields, filters = safe_json_loads(rooms, fields, filters)
rooms = listify(get_if_empty(rooms, [ ]))
fields = listify(get_if_empty(fields, [ ]))
rooms = listify(get_if_empty(rooms, []))
fields = listify(get_if_empty(fields, []))
const = [ ] # constraints
const = [] # constraints
if rooms:
const.append(['Chat Room', 'name', 'in', rooms])
if filters:
@ -118,24 +121,24 @@ def get(user=None, token=None, rooms=None, fields=None, filters=None):
const.append(filters)
default = ['name', 'type', 'room_name', 'creation', 'owner', 'avatar']
handle = ['users', 'last_message']
handle = ['users', 'last_message']
param = [f for f in fields if f not in handle]
param = [f for f in fields if f not in handle]
rooms = frappe.get_all('Chat Room',
or_filters = [
['Chat Room', 'owner', '=', frappe.session.user],
['Chat Room User', 'user', '=', frappe.session.user]
],
filters = const,
fields = param + ['name'] if param else default,
distinct = True
)
rooms = frappe.get_all('Chat Room',
or_filters=[
['Chat Room', 'owner', '=', frappe.session.user],
['Chat Room User', 'user', '=', frappe.session.user]
],
filters=const,
fields=param + ['name'] if param else default,
distinct=True
)
if not fields or 'users' in fields:
for i, r in enumerate(rooms):
droom = frappe.get_doc('Chat Room', r.name)
rooms[i]['users'] = [ ]
rooms[i]['users'] = []
for duser in droom.users:
rooms[i]['users'].append(duser.user)
@ -152,11 +155,12 @@ def get(user=None, token=None, rooms=None, fields=None, filters=None):
return rooms
@frappe.whitelist(allow_guest=True)
def create(kind, token, users=None, name=None):
authenticate(token)
users = safe_json_loads(users)
users = safe_json_loads(users)
create = True
if kind == 'Visitor':
@ -167,7 +171,7 @@ def create(kind, token, users=None, name=None):
""", (frappe.session.user), as_dict=True))
if room:
room = frappe.get_doc('Chat Room', room.name)
room = frappe.get_doc('Chat Room', room.name)
create = False
if create:
@ -176,11 +180,11 @@ def create(kind, token, users=None, name=None):
room.owner = frappe.session.user
room.room_name = name
dusers = [ ]
dusers = []
if kind != 'Visitor':
if users:
users = listify(users)
users = listify(users)
for user in users:
duser = frappe.new_doc('Chat Room User')
duser.user = user
@ -191,7 +195,7 @@ def create(kind, token, users=None, name=None):
dsettings = frappe.get_single('Website Settings')
room.room_name = dsettings.chat_room_name
users = [user for user in room.users] if hasattr(room, 'users') else [ ]
users = [user for user in room.users] if hasattr(room, 'users') else []
for user in dsettings.chat_operators:
if user.user not in users:
@ -200,9 +204,9 @@ def create(kind, token, users=None, name=None):
chat_room_user = {"doctype": "Chat Room User", "user": user.user}
room.append('users', chat_room_user)
room.save(ignore_permissions = True)
room.save(ignore_permissions=True)
room = get(token=token, rooms=room.name)
room = get(token=token, rooms=room.name)
if room:
users = [room.owner] + [u for u in room.users]
@ -211,14 +215,15 @@ def create(kind, token, users=None, name=None):
return room
@frappe.whitelist(allow_guest = True)
def history(room, user, fields = None, limit = 10, start = None, end = None):
@frappe.whitelist(allow_guest=True)
def history(room, user, fields=None, limit=10, start=None, end=None):
if frappe.get_doc('Chat Room', room).type != 'Visitor':
authenticate(user)
fields = safe_json_loads(fields)
mess = chat_message.history(room, limit = limit, start = start, end = end)
mess = squashify(mess)
mess = chat_message.history(room, limit=limit, start=start, end=end)
mess = squashify(mess)
return dictify(mess)