From 8757d4e775b2e677d6f643f661f6191aef473663 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 7 Oct 2020 20:11:19 +0530 Subject: [PATCH] Fallback to default pattern if even version0 fails to compile --- src/calibre/ebooks/metadata/meta.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 077257e36f..00fe08f404 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -136,7 +136,11 @@ def metadata_from_filename(name, pat=None, fallback_pat=None): try: pat = regex.compile(prefs.get('filename_pattern'), flags=regex.UNICODE | regex.VERSION1 | regex.FULLCASE) except Exception: - pat = regex.compile(prefs.get('filename_pattern'), flags=regex.UNICODE | regex.VERSION0 | regex.FULLCASE) + try: + pat = regex.compile(prefs.get('filename_pattern'), flags=regex.UNICODE | regex.VERSION0 | regex.FULLCASE) + except Exception: + pat = regex.compile('(?P.+) - (?P<author>[^_]+)', flags=regex.UNICODE | regex.VERSION0 | regex.FULLCASE) + name = name.replace('_', ' ') match = pat.search(name) if match is None and fallback_pat is not None: