Add an "online" contact sorting method
- put the online contacts at the beginning of the list - allows, e.g. jid_reverse_online_reverse, to put offline contacts at the start of the group, in alphabetical order
This commit is contained in:
parent
47c593ddaf
commit
c890fefbc4
3 changed files with 9 additions and 2 deletions
|
@ -231,6 +231,7 @@ roster_show_offline = false
|
|||
# - show: sort by show (available/away/xa/…)
|
||||
# - name: sort by roster name (if no name, then the bare jid is used)
|
||||
# - resource: sort by resource number
|
||||
# - online: sort by online presence (online or not)
|
||||
# You can arrange them however you like, and you have to separate them with
|
||||
# underscores "_". Keep in mind that if there are more than 3 or 4 your sorting
|
||||
# is most likely inefficient.
|
||||
|
|
|
@ -289,8 +289,9 @@ section of this documentation.
|
|||
* reverse: reverse the current sorting
|
||||
* jid: sort by JID (alphabetical order)
|
||||
* show: sort by show (available/away/xa/…)
|
||||
* name: Sort by roster name (if no name, then the bare jid is used)
|
||||
* resource: Sort by resource number
|
||||
* name: sort by roster name (if no name, then the bare jid is used)
|
||||
* resource: sort by resource number
|
||||
* online: sort by online presence (online or not)
|
||||
|
||||
Those methods can be arranged however you like, and they have to be
|
||||
separated by underscores ("_"). If there are more than 3 or 4 chained
|
||||
|
|
|
@ -255,11 +255,16 @@ def sort_resource_nb(contact):
|
|||
def sort_name(contact):
|
||||
return contact.name.lower() or contact.bare_jid
|
||||
|
||||
def sort_online(contact):
|
||||
result = sort_show(contact)
|
||||
return 0 if result < 5 else 1
|
||||
|
||||
SORTING_METHODS = {
|
||||
'jid': sort_jid,
|
||||
'show': sort_show,
|
||||
'resource': sort_resource_nb,
|
||||
'name': sort_name,
|
||||
'online': sort_online,
|
||||
}
|
||||
|
||||
class RosterGroup(object):
|
||||
|
|
Loading…
Reference in a new issue