From 8ea09e65cc130750c58c81d60eef95d4eae2bd1a Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 8 Sep 2010 13:32:48 +0100 Subject: [PATCH] Save a copy of field_metadata into the preferences table for use by non-calibre applications. --- src/calibre/library/database2.py | 3 +++ src/calibre/library/field_metadata.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 52b5f2d4e6..05bab95ffe 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -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) diff --git a/src/calibre/library/field_metadata.py b/src/calibre/library/field_metadata.py index 09dd024b66..449cb289ce 100644 --- a/src/calibre/library/field_metadata.py +++ b/src/calibre/library/field_metadata.py @@ -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: