mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Dont use pickle to calculate etags for tag browser data dumps
This commit is contained in:
parent
c98cc3383d
commit
69210a7783
@ -4,7 +4,6 @@
|
||||
|
||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||
|
||||
import cPickle
|
||||
import hashlib
|
||||
import random
|
||||
import shutil
|
||||
@ -29,6 +28,7 @@ from calibre.utils.config import prefs, tweaks
|
||||
from calibre.utils.icu import sort_key, numeric_sort_key
|
||||
from calibre.utils.localization import get_lang, lang_map_for_ui, localize_website_link
|
||||
from calibre.utils.search_query_parser import ParseException
|
||||
from calibre.utils.serialize import json_dumps
|
||||
|
||||
POSTABLE = frozenset({'GET', 'POST', 'HEAD'})
|
||||
|
||||
@ -382,9 +382,9 @@ def tag_browser(ctx, rd):
|
||||
&collapse_at=25&dont_collapse=&hide_empty_categories=&vl=''
|
||||
'''
|
||||
db, library_id = get_library_data(ctx, rd)[:2]
|
||||
opts = categories_settings(rd.query, db)
|
||||
opts = categories_settings(rd.query, db, gst_container=tuple)
|
||||
vl = rd.query.get('vl') or ''
|
||||
etag = cPickle.dumps([db.last_modified().isoformat(), rd.username, library_id, vl, list(opts)], -1)
|
||||
etag = json_dumps([db.last_modified().isoformat(), rd.username, library_id, vl, list(opts)])
|
||||
etag = hashlib.sha1(etag).hexdigest()
|
||||
|
||||
def generate():
|
||||
|
@ -192,7 +192,7 @@ def icon_map():
|
||||
return _icon_map
|
||||
|
||||
|
||||
def categories_settings(query, db):
|
||||
def categories_settings(query, db, gst_container=GroupedSearchTerms):
|
||||
dont_collapse = frozenset(query.get('dont_collapse', '').split(','))
|
||||
partition_method = query.get('partition_method', 'first letter')
|
||||
if partition_method not in {'first letter', 'disable', 'partition'}:
|
||||
@ -214,7 +214,7 @@ def categories_settings(query, db):
|
||||
hidden_categories = frozenset(db.pref('tag_browser_hidden_categories', set()))
|
||||
return CategoriesSettings(
|
||||
dont_collapse, collapse_model, collapse_at, sort_by, template,
|
||||
using_hierarchy, GroupedSearchTerms(db.pref('grouped_search_terms', {})),
|
||||
using_hierarchy, gst_container(db.pref('grouped_search_terms', {})),
|
||||
hidden_categories, query.get('hide_empty_categories') == 'yes')
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user