add pre-consume hook

a script hook can be defined in /etc/paperless.conf as
PAPERLESS_PRE_CONSUME_SCRIPT
This commit is contained in:
Lenz Weber 2016-06-23 21:57:17 +02:00
parent 7b88cea07b
commit c728b1dd21
3 changed files with 17 additions and 3 deletions

View File

@ -8,11 +8,14 @@ class DocumentsConfig(AppConfig):
def ready(self): def ready(self):
from .signals import document_consumption_finished from .signals import document_consumption_finished
from .signals import document_consumption_started
from .signals.handlers import ( 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_tags)
document_consumption_finished.connect(set_correspondent) 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) AppConfig.ready(self)

View File

@ -57,7 +57,7 @@ def set_tags(sender, document=None, logging_group=None, **kwargs):
document.tags.add(*relevant_tags) 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: if not settings.POST_CONSUME_SCRIPT:
return return
@ -73,3 +73,13 @@ def run_external_script(sender, document, **kwargs):
str(document.correspondent), str(document.correspondent),
str(",".join(document.tags.all().values_list("slug", flat=True))) str(",".join(document.tags.all().values_list("slug", flat=True)))
)).wait() )).wait()
def run_pre_consume_external_script(sender, filename, **kwargs):
if not settings.PRE_CONSUME_SCRIPT:
return
Popen((
settings.PRE_CONSUME_SCRIPT,
filename
)).wait()

View File

@ -230,6 +230,7 @@ SHARED_SECRET = os.getenv("PAPERLESS_SHARED_SECRET", "")
# Trigger a script after every successful document consumption? # Trigger a script after every successful document consumption?
POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT") POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT")
PRE_CONSUME_SCRIPT = os.getenv("PAPERLESS_PRE_CONSUME_SCRIPT")
# #
# TODO: Remove after 0.2 # TODO: Remove after 0.2