Save a copy of field_metadata into the preferences table for use by non-calibre applications.

This commit is contained in:
Charles Haley 2010-09-08 13:32:48 +01:00
parent 5a4808bb91
commit 8ea09e65cc
2 changed files with 9 additions and 0 deletions

View File

@ -338,6 +338,9 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
setattr(self, 'title_sort', functools.partial(get_property,
loc=self.FIELD_MAP['sort']))
# Save the current field_metadata for applications like calibre2opds
self.prefs['field_metadata'] = self.field_metadata.all_metadata()
def initialize_database(self):
metadata_sqlite = open(P('metadata_sqlite.sql'), 'rb').read()
self.conn.executescript(metadata_sqlite)

View File

@ -371,6 +371,12 @@ class FieldMetadata(dict):
def get_custom_fields(self):
return [l for l in self._tb_cats if self._tb_cats[l]['is_custom']]
def all_metadata(self):
l = {}
for k in self._tb_cats:
l[k] = self._tb_cats[k]
return l
def get_custom_field_metadata(self):
l = {}
for k in self._tb_cats: