Requested changes to extra_files API

This commit is contained in:
Charles Haley 2023-04-23 15:22:28 +01:00
parent 310ccfd832
commit b94fcefeba
2 changed files with 3 additions and 30 deletions

View File

@ -69,8 +69,6 @@ class MetadataBackup(Thread):
return return
traceback.print_exc() traceback.print_exc()
self.db.save_extra_files_cache()
try: try:
book_id = self.db.get_a_dirtied_book() book_id = self.db.get_a_dirtied_book()
if book_id is None: if book_id is None:

View File

@ -253,8 +253,6 @@ class Cache:
if self.dirtied_cache: if self.dirtied_cache:
self.dirtied_sequence = max(itervalues(self.dirtied_cache))+1 self.dirtied_sequence = max(itervalues(self.dirtied_cache))+1
self._initialize_dynamic_categories() self._initialize_dynamic_categories()
self.extra_files_cache = self.backend.prefs.get('extra_files_cache', {})
self.extra_files_cache_dirty = False
@write_api @write_api
def initialize_template_cache(self): def initialize_template_cache(self):
@ -279,29 +277,9 @@ class Cache:
@write_api @write_api
def clear_extra_files_cache(self, book_id=None): def clear_extra_files_cache(self, book_id=None):
if book_id is None: if book_id is None:
pref_changed = bool(self.extra_files_cache)
self.extra_files_cache = {} self.extra_files_cache = {}
else: else:
pref_changed = self.extra_files_cache.pop(str(book_id), False) self.extra_files_cache.pop(book_id, None)
if pref_changed:
# self.backend.prefs.set('extra_files_cache', self.extra_files_cache)
self.extra_files_cache_dirty = True
@write_api
def add_to_extra_files_cache(self, book_id, data):
self.extra_files_cache[str(book_id)] = data
# self.backend.prefs.set('extra_files_cache', self.extra_files_cache)
self.extra_files_cache_dirty = True
@write_api
def save_extra_files_cache(self):
if self.extra_files_cache_dirty:
self.backend.prefs.set('extra_files_cache', self.extra_files_cache)
self.extra_files_cache_dirty = False
@read_api
def get_extra_files_from_cache(self, book_id):
return self.extra_files_cache.get(str(book_id), {})
@read_api @read_api
def last_modified(self): def last_modified(self):
@ -2694,8 +2672,6 @@ class Cache:
plugin.run(self) plugin.run(self)
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
# do this last in case a plugin changes the extra files
self.save_extra_files_cache()
self._shutdown_fts(stage=2) self._shutdown_fts(stage=2)
with self.write_lock: with self.write_lock:
self.backend.close() self.backend.close()
@ -3133,7 +3109,7 @@ class Cache:
fsize is the file's size in bytes fsize is the file's size in bytes
''' '''
ans = self.get_extra_files_from_cache(book_id) ans = self.extra_files_cache.get(book_id, {})
if not ans: if not ans:
path = self._field_for('path', book_id) path = self._field_for('path', book_id)
if path: if path:
@ -3142,8 +3118,7 @@ class Cache:
book_id, book_path, None, yield_paths=True): book_id, book_path, None, yield_paths=True):
ans[file_path] = dict(zip(('relpath', 'mtime', 'fsize'), ans[file_path] = dict(zip(('relpath', 'mtime', 'fsize'),
(relpath, mtime, fsize))) (relpath, mtime, fsize)))
if ans: self.extra_files_cache[book_id] = ans
self.add_to_extra_files_cache(book_id, ans)
return ans return ans
@read_api @read_api