Fix #3105 (/message completion is slow)

sorting things several times is slow, and our roster wrapper is even
slower. remove the overly slow code until the roster wrapper is
rewritten (do we even need this level of detailed sorting in the first place?)
This commit is contained in:
mathieui 2015-07-31 20:47:01 +02:00
parent d226c60997
commit 3633072b36
No known key found for this signature in database
GPG key ID: C59F84CEEFD616E3

View file

@ -217,12 +217,13 @@ def completion_message(self, the_input):
n = the_input.get_argument_position(quoted=True) n = the_input.get_argument_position(quoted=True)
if n >= 2: if n >= 2:
return return
comp = reduce(lambda x, y: x + [i.jid for i in y], (roster[jid].resources for jid in roster.jids() if len(roster[jid])), []) l = []
comp = sorted(comp) for jid in roster.jids():
bares = sorted(roster[contact].bare_jid for contact in roster.jids() if len(roster[contact])) if len(roster[jid]):
off = sorted(jid for jid in roster.jids() if jid not in bares) l.append(jid)
comp = bares + comp + off for resource in roster[jid].resources:
return the_input.new_completion(comp, 1, '', quotify=True) l.append(resource.jid)
return the_input.new_completion(l, 1, '', quotify=True)
def completion_invite(self, the_input): def completion_invite(self, the_input):