summaryrefslogtreecommitdiff
path: root/poezio/roster_sorting.py
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2017-11-12 15:03:09 +0100
committermathieui <mathieui@mathieui.net>2017-11-12 15:03:09 +0100
commitd55cc5872503567775f0d7a7731d6f489bf2299b (patch)
tree725f9e7b8144d36054447b3c82edfb45bda8df1d /poezio/roster_sorting.py
parent92496db823db34f7f7fb1ab31eaef093a707c3e8 (diff)
downloadpoezio-d55cc5872503567775f0d7a7731d6f489bf2299b.tar.gz
poezio-d55cc5872503567775f0d7a7731d6f489bf2299b.tar.bz2
poezio-d55cc5872503567775f0d7a7731d6f489bf2299b.tar.xz
poezio-d55cc5872503567775f0d7a7731d6f489bf2299b.zip
yapf -ir
Diffstat (limited to 'poezio/roster_sorting.py')
-rw-r--r--poezio/roster_sorting.py48
1 files changed, 31 insertions, 17 deletions
diff --git a/poezio/roster_sorting.py b/poezio/roster_sorting.py
index c57f0dce..9f156e0f 100644
--- a/poezio/roster_sorting.py
+++ b/poezio/roster_sorting.py
@@ -5,17 +5,21 @@ Defines the roster sorting methods used in roster.py
########################### Contacts sorting ############################
-PRESENCE_PRIORITY = {'unavailable': 5,
- 'xa': 4,
- 'away': 3,
- 'dnd': 2,
- '': 1,
- 'available': 1}
+PRESENCE_PRIORITY = {
+ 'unavailable': 5,
+ 'xa': 4,
+ 'away': 3,
+ 'dnd': 2,
+ '': 1,
+ 'available': 1
+}
+
def sort_jid(contact):
"""Sort by contact JID"""
return contact.bare_jid
+
def sort_show(contact):
"""Sort by show (from high availability to low)"""
res = contact.get_highest_priority_resource()
@@ -26,23 +30,28 @@ def sort_show(contact):
return 0
return PRESENCE_PRIORITY[show]
+
def sort_resource_nb(contact):
"""Sort by number of connected resources"""
- return - len(contact)
+ return -len(contact)
+
def sort_name(contact):
"""Sort by name (case insensitive)"""
return contact.name.lower() or contact.bare_jid
+
def sort_sname(contact):
"""Sort by name (case sensitive)"""
return contact.name or contact.bare_jid
+
def sort_online(contact):
"""Sort by connected/disconnected"""
result = sort_show(contact)
return 0 if result < 5 else 1
+
SORTING_METHODS = {
'jid': sort_jid,
'sname': sort_sname,
@@ -52,39 +61,44 @@ SORTING_METHODS = {
'online': sort_online,
}
-
######################## Roster Groups sorting ##########################
+
def sort_group_name(group):
"""Sort by name (case insensitive)"""
return group.name.lower()
+
def sort_group_sname(group):
"""Sort by name (case-sensitive)"""
return group.name
+
def sort_group_folded(group):
"""Sort by folded/unfolded"""
return group.folded
+
def sort_group_connected(group):
"""Sort by number of connected contacts"""
- return - group.get_nb_connected_contacts()
+ return -group.get_nb_connected_contacts()
+
def sort_group_size(group):
"""Sort by group size"""
- return - len(group)
+ return -len(group)
+
def sort_group_none(group):
"""Put the none group at the end, if any"""
return 0 if group.name != 'none' else 1
+
GROUP_SORTING_METHODS = {
- 'name': sort_group_name,
- 'fold': sort_group_folded,
- 'connected': sort_group_connected,
- 'size': sort_group_size,
- 'none': sort_group_none,
- 'sname': sort_group_sname,
+ 'name': sort_group_name,
+ 'fold': sort_group_folded,
+ 'connected': sort_group_connected,
+ 'size': sort_group_size,
+ 'none': sort_group_none,
+ 'sname': sort_group_sname,
}
-