mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
This commit is contained in:
commit
1eea54d6b5
@ -118,12 +118,14 @@ def clean_user_categories(dbcache):
|
|||||||
numeric_collation = prefs['numeric_collation']
|
numeric_collation = prefs['numeric_collation']
|
||||||
|
|
||||||
|
|
||||||
def first_digit(x):
|
def sort_key_for_name_and_first_letter(x):
|
||||||
c = icu_upper(x.sort or x.name or ' ')[0]
|
v1 = icu_upper(x.sort or x.name)
|
||||||
|
v2 = v1 or ' '
|
||||||
# The idea is that '9999999999' is larger than any digit so all digits
|
# The idea is that '9999999999' is larger than any digit so all digits
|
||||||
# will sort in front. Non-digits will sort according to their ICU first letter
|
# will sort in front. Non-digits will sort according to their ICU first letter
|
||||||
return c if numeric_collation and c.isdigit() else '9999999999'
|
c = v2[0]
|
||||||
|
return (c if numeric_collation and c.isdigit() else '9999999999',
|
||||||
|
collation_order(v2), sort_key(v1))
|
||||||
|
|
||||||
category_sort_keys = {True:{}, False: {}}
|
category_sort_keys = {True:{}, False: {}}
|
||||||
category_sort_keys[True]['popularity'] = category_sort_keys[False]['popularity'] = \
|
category_sort_keys[True]['popularity'] = category_sort_keys[False]['popularity'] = \
|
||||||
@ -131,7 +133,7 @@ category_sort_keys[True]['popularity'] = category_sort_keys[False]['popularity']
|
|||||||
category_sort_keys[True]['rating'] = category_sort_keys[False]['rating'] = \
|
category_sort_keys[True]['rating'] = category_sort_keys[False]['rating'] = \
|
||||||
lambda x:(-getattr(x, 'avg_rating', 0.0), sort_key(x.sort or x.name))
|
lambda x:(-getattr(x, 'avg_rating', 0.0), sort_key(x.sort or x.name))
|
||||||
category_sort_keys[True]['name'] = \
|
category_sort_keys[True]['name'] = \
|
||||||
lambda x:(first_digit(x), collation_order(icu_upper(x.sort or x.name or ' ')), sort_key(x.sort or x.name))
|
sort_key_for_name_and_first_letter
|
||||||
category_sort_keys[False]['name'] = \
|
category_sort_keys[False]['name'] = \
|
||||||
lambda x:sort_key(x.sort or x.name)
|
lambda x:sort_key(x.sort or x.name)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user