From c728b1dd21d90460987a2da74f12056d60ae4265 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Thu, 23 Jun 2016 21:57:17 +0200 Subject: [PATCH 1/2] add pre-consume hook a script hook can be defined in /etc/paperless.conf as PAPERLESS_PRE_CONSUME_SCRIPT --- src/documents/apps.py | 7 +++++-- src/documents/signals/handlers.py | 12 +++++++++++- src/paperless/settings.py | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/documents/apps.py b/src/documents/apps.py index 699b32865..73d87f4d2 100644 --- a/src/documents/apps.py +++ b/src/documents/apps.py @@ -8,11 +8,14 @@ class DocumentsConfig(AppConfig): def ready(self): from .signals import document_consumption_finished + from .signals import document_consumption_started from .signals.handlers import ( - set_correspondent, set_tags, run_external_script) + set_correspondent, set_tags, run_post_consume_external_script, run_pre_consume_external_script) document_consumption_finished.connect(set_tags) document_consumption_finished.connect(set_correspondent) - document_consumption_finished.connect(run_external_script) + document_consumption_finished.connect(run_post_consume_external_script) + + document_consumption_started.connect(run_pre_consume_external_script) AppConfig.ready(self) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 3c7700170..f860372cb 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -57,7 +57,7 @@ def set_tags(sender, document=None, logging_group=None, **kwargs): document.tags.add(*relevant_tags) -def run_external_script(sender, document, **kwargs): +def run_post_consume_external_script(sender, document, **kwargs): if not settings.POST_CONSUME_SCRIPT: return @@ -73,3 +73,13 @@ def run_external_script(sender, document, **kwargs): str(document.correspondent), str(",".join(document.tags.all().values_list("slug", flat=True))) )).wait() + +def run_pre_consume_external_script(sender, filename, **kwargs): + + if not settings.PRE_CONSUME_SCRIPT: + return + + Popen(( + settings.PRE_CONSUME_SCRIPT, + filename +)).wait() diff --git a/src/paperless/settings.py b/src/paperless/settings.py index ad6084711..877d57504 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -230,6 +230,7 @@ SHARED_SECRET = os.getenv("PAPERLESS_SHARED_SECRET", "") # Trigger a script after every successful document consumption? POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT") +PRE_CONSUME_SCRIPT = os.getenv("PAPERLESS_PRE_CONSUME_SCRIPT") # # TODO: Remove after 0.2 From e7566d2b1c7222e84dd305c5652b3d2757475f63 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Fri, 24 Jun 2016 16:49:32 +0200 Subject: [PATCH 2/2] style changes, variable renames * PEP8 conformity * rename run_post_consume_external_script to run_post_consume_script * rename run_pre_consume_external_script to run_pre_consume_script * change order of declaration and use from post...pre to pre...post --- src/documents/apps.py | 11 ++++++----- src/documents/signals/handlers.py | 23 ++++++++++++----------- src/paperless/settings.py | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/documents/apps.py b/src/documents/apps.py index 73d87f4d2..363f29a07 100644 --- a/src/documents/apps.py +++ b/src/documents/apps.py @@ -7,15 +7,16 @@ class DocumentsConfig(AppConfig): def ready(self): - from .signals import document_consumption_finished from .signals import document_consumption_started + from .signals import document_consumption_finished from .signals.handlers import ( - set_correspondent, set_tags, run_post_consume_external_script, run_pre_consume_external_script) + set_correspondent, set_tags, run_pre_consume_script, + run_post_consume_script) + + document_consumption_started.connect(run_pre_consume_script) document_consumption_finished.connect(set_tags) document_consumption_finished.connect(set_correspondent) - document_consumption_finished.connect(run_post_consume_external_script) - - document_consumption_started.connect(run_pre_consume_external_script) + document_consumption_finished.connect(run_post_consume_script) AppConfig.ready(self) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index f860372cb..d9ed9090f 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -57,7 +57,18 @@ def set_tags(sender, document=None, logging_group=None, **kwargs): document.tags.add(*relevant_tags) -def run_post_consume_external_script(sender, document, **kwargs): +def run_pre_consume_script(sender, filename, **kwargs): + + if not settings.PRE_CONSUME_SCRIPT: + return + + Popen(( + settings.PRE_CONSUME_SCRIPT, + filename + )).wait() + + +def run_post_consume_script(sender, document, **kwargs): if not settings.POST_CONSUME_SCRIPT: return @@ -73,13 +84,3 @@ def run_post_consume_external_script(sender, document, **kwargs): str(document.correspondent), str(",".join(document.tags.all().values_list("slug", flat=True))) )).wait() - -def run_pre_consume_external_script(sender, filename, **kwargs): - - if not settings.PRE_CONSUME_SCRIPT: - return - - Popen(( - settings.PRE_CONSUME_SCRIPT, - filename -)).wait() diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 877d57504..faf532d52 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -229,8 +229,8 @@ PASSPHRASE = os.getenv("PAPERLESS_PASSPHRASE") SHARED_SECRET = os.getenv("PAPERLESS_SHARED_SECRET", "") # Trigger a script after every successful document consumption? -POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT") PRE_CONSUME_SCRIPT = os.getenv("PAPERLESS_PRE_CONSUME_SCRIPT") +POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT") # # TODO: Remove after 0.2