From 3b88d6722a32c983062a1fd4c4fed8642e39f809 Mon Sep 17 00:00:00 2001 From: Michael Gmelin Date: Sun, 8 Sep 2019 17:00:02 +0200 Subject: [PATCH] Address review comments by @danielquinn --- src/documents/models.py | 4 ++++ src/paperless/settings.py | 8 ++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/documents/models.py b/src/documents/models.py index 9647fbacd..c6fc8191e 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -484,11 +484,15 @@ class FileInfo: """ filename = os.path.basename(path) + + # Mutate filename in-place before parsing its components + # by applying at most one of the configured transformations. for (pattern, repl) in settings.FILENAME_PARSE_TRANSFORMS: (filename, count) = pattern.subn(repl, filename) if count: break + # Parse filename components. for regex in cls.REGEXES.values(): m = regex.match(filename) if m: diff --git a/src/paperless/settings.py b/src/paperless/settings.py index ad110d7bf..b6bc67ef0 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -321,12 +321,8 @@ FILENAME_DATE_ORDER = os.getenv("PAPERLESS_FILENAME_DATE_ORDER") # Transformations applied before filename parsing FILENAME_PARSE_TRANSFORMS = [] -_filename_parse_transforms = os.getenv("PAPERLESS_FILENAME_PARSE_TRANSFORMS") -if _filename_parse_transforms: - FILENAME_PARSE_TRANSFORMS = [( - re.compile(t["pattern"]), t["repl"]) - for t in json.loads(_filename_parse_transforms) - ] +for t in json.loads(os.getenv("PAPERLESS_FILENAME_PARSE_TRANSFORMS", "[]")): + FILENAME_PARSE_TRANSFORMS.append((re.compile(t["pattern"]), t["repl"])) # Specify for how many years a correspondent is considered recent. Recent # correspondents will be shown in a separate "Recent correspondents" filter as