From 58442a478a10733d98374f200f1858ae80a646da Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 4 Feb 2019 19:34:11 +0530 Subject: [PATCH] RPUB/MOBI Catalog generation: Allow matching empty fields in exclusion rules. Fixes #1814458 [catalog builder ignore "any" and "undefined"](https://bugs.launchpad.net/calibre/+bug/1814458) --- src/calibre/library/catalogs/epub_mobi_builder.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/calibre/library/catalogs/epub_mobi_builder.py b/src/calibre/library/catalogs/epub_mobi_builder.py index b0aa19c818..7826d5b898 100644 --- a/src/calibre/library/catalogs/epub_mobi_builder.py +++ b/src/calibre/library/catalogs/epub_mobi_builder.py @@ -4807,6 +4807,8 @@ class CatalogBuilder(object): field_contents = self.db.get_field(record['id'], field, index_is_id=True) + if field_contents == '': + field_contents = None if (self.db.metadata_for_field(field)['datatype'] == 'bool' and field_contents is None): @@ -4839,6 +4841,10 @@ class CatalogBuilder(object): else: if record not in filtered_data_set: filtered_data_set.append(record) + elif field_contents is None and pat == 'None': + exclusion_set.append(record) + if record in filtered_data_set: + filtered_data_set.remove(record) else: if (record not in filtered_data_set and record not in exclusion_set):