mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Improve performance of get_categories.
This commit is contained in:
parent
1e1b530113
commit
d95d6eca67
@ -1379,13 +1379,15 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
for (cat, dex, mult, is_comp) in md:
|
for (cat, dex, mult, is_comp) in md:
|
||||||
if not book[dex]:
|
if not book[dex]:
|
||||||
continue
|
continue
|
||||||
|
tid_cat = tids[cat]
|
||||||
|
tcats_cat = tcategories[cat]
|
||||||
if not mult:
|
if not mult:
|
||||||
val = book[dex]
|
val = book[dex]
|
||||||
if is_comp:
|
if is_comp:
|
||||||
item = tcategories[cat].get(val, None)
|
item = tcats_cat.get(val, None)
|
||||||
if not item:
|
if not item:
|
||||||
item = tag_class(val, val)
|
item = tag_class(val, val)
|
||||||
tcategories[cat][val] = item
|
tcats_cat[val] = item
|
||||||
item.c += 1
|
item.c += 1
|
||||||
item.id = val
|
item.id = val
|
||||||
if rating > 0:
|
if rating > 0:
|
||||||
@ -1393,11 +1395,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
item.rc += 1
|
item.rc += 1
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
(item_id, sort_val) = tids[cat][val] # let exceptions fly
|
(item_id, sort_val) = tid_cat[val] # let exceptions fly
|
||||||
item = tcategories[cat].get(val, None)
|
item = tcats_cat.get(val, None)
|
||||||
if not item:
|
if not item:
|
||||||
item = tag_class(val, sort_val)
|
item = tag_class(val, sort_val)
|
||||||
tcategories[cat][val] = item
|
tcats_cat[val] = item
|
||||||
item.c += 1
|
item.c += 1
|
||||||
item.id_set.add(book[0])
|
item.id_set.add(book[0])
|
||||||
item.id = item_id
|
item.id = item_id
|
||||||
@ -1411,21 +1413,15 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
|
|||||||
if is_comp:
|
if is_comp:
|
||||||
vals = [v.strip() for v in vals if v.strip()]
|
vals = [v.strip() for v in vals if v.strip()]
|
||||||
for val in vals:
|
for val in vals:
|
||||||
if val not in tids:
|
if val not in tid_cat:
|
||||||
tids[cat][val] = (val, val)
|
tid_cat[val] = (val, val)
|
||||||
item = tcategories[cat].get(val, None)
|
|
||||||
if not item:
|
|
||||||
item = tag_class(val, val)
|
|
||||||
tcategories[cat][val] = item
|
|
||||||
item.c += 1
|
|
||||||
item.id = val
|
|
||||||
for val in vals:
|
for val in vals:
|
||||||
try:
|
try:
|
||||||
(item_id, sort_val) = tids[cat][val] # let exceptions fly
|
(item_id, sort_val) = tid_cat[val] # let exceptions fly
|
||||||
item = tcategories[cat].get(val, None)
|
item = tcats_cat.get(val, None)
|
||||||
if not item:
|
if not item:
|
||||||
item = tag_class(val, sort_val)
|
item = tag_class(val, sort_val)
|
||||||
tcategories[cat][val] = item
|
tcats_cat[val] = item
|
||||||
item.c += 1
|
item.c += 1
|
||||||
item.id_set.add(book[0])
|
item.id_set.add(book[0])
|
||||||
item.id = item_id
|
item.id = item_id
|
||||||
|
Loading…
x
Reference in New Issue
Block a user