This commit is contained in:
Kovid Goyal 2013-02-03 22:39:14 +05:30
commit 9b87ec4b97
5 changed files with 16 additions and 6 deletions

View File

@ -497,6 +497,13 @@ class FieldMetadata(dict):
def is_custom_field(self, key):
return key.startswith(self.custom_field_prefix)
def is_ignorable_field(self, key):
'Custom fields and user categories are ignorable'
return self.is_custom_field(key) or key.startswith('@')
def ignorable_field_keys(self):
return [k for k in self._tb_cats.iterkeys() if self.is_ignorable_field(k)]
def is_series_index(self, key):
m = self[key]
return (m['datatype'] == 'float' and key.endswith('_index') and

View File

@ -51,7 +51,7 @@ def server_config(defaults=None):
return c
def custom_fields_to_display(db):
ckeys = db.custom_field_keys()
ckeys = db.field_metadata.ignorable_field_keys()
yes_fields = set(tweaks['content_server_will_display'])
no_fields = set(tweaks['content_server_wont_display'])
if '*' in yes_fields:

View File

@ -300,7 +300,8 @@ class AjaxServer(object):
meta = category_meta.get(category, None)
if meta is None:
continue
if meta['is_custom'] and category not in displayed_custom_fields:
if category_meta.is_ignorable_field(category) and \
category not in displayed_custom_fields:
continue
display_name = meta['name']
if category.startswith('@'):

View File

@ -269,7 +269,7 @@ class BrowseServer(object):
for x in fm.sortable_field_keys():
if x in ('ondevice', 'formats', 'sort'):
continue
if fm[x]['is_custom'] and x not in displayed_custom_fields:
if fm.is_ignorable_field(x) and x not in displayed_custom_fields:
continue
if x == 'comments' or fm[x]['datatype'] == 'comments':
continue
@ -369,7 +369,8 @@ class BrowseServer(object):
meta = category_meta.get(category, None)
if meta is None:
continue
if meta['is_custom'] and category not in displayed_custom_fields:
if self.db.field_metadata.is_ignorable_field(category) and \
category not in displayed_custom_fields:
continue
# get the icon files
main_cat = (category.partition('.')[0]) if hasattr(category,
@ -836,7 +837,8 @@ class BrowseServer(object):
displayed_custom_fields = custom_fields_to_display(self.db)
for field, m in list(mi.get_all_standard_metadata(False).items()) + \
list(mi.get_all_user_metadata(False).items()):
if m['is_custom'] and field not in displayed_custom_fields:
if self.db.field_metadata.is_ignorable_field(field) and \
field not in displayed_custom_fields:
continue
if m['datatype'] == 'comments' or field == 'comments' or (
m['datatype'] == 'composite' and \

View File

@ -594,7 +594,7 @@ class OPDSServer(object):
meta = category_meta.get(category, None)
if meta is None:
continue
if category_meta.is_custom_field(category) and \
if category_meta.is_ignorable_field(category) and \
category not in custom_fields_to_display(self.db):
continue
cats.append((meta['name'], meta['name'], 'N'+category))