update
This commit is contained in:
94
scripts/post_consume.py
Executable file
94
scripts/post_consume.py
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
from helper import Config
|
||||
from helper import PaperlessAPI
|
||||
|
||||
|
||||
|
||||
|
||||
# need to have this manually as setlocale() won't work in Paperless docker setup
|
||||
MONTH_NAMES = [
|
||||
"0-Index",
|
||||
"Januar",
|
||||
"Februar",
|
||||
"März",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Dezember"
|
||||
]
|
||||
|
||||
#""
|
||||
# expand the string by the provided parts, but only if the input string doesn't contain those parts yet.
|
||||
#
|
||||
def expand_by_non_existing_parts(title, parts=[]) -> str:
|
||||
if len(parts) == 0:
|
||||
return title
|
||||
|
||||
for part in parts:
|
||||
if str(part) not in title:
|
||||
title += " " + str(part)
|
||||
|
||||
return title
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
cfg = Config()
|
||||
|
||||
print("START POST CONSUME")
|
||||
print(cfg)
|
||||
|
||||
api = PaperlessAPI(cfg.get_paperless_api_url(), cfg.get_auth_token())
|
||||
|
||||
document_id = os.environ["DOCUMENT_ID"]
|
||||
document = api.get_document_by_id(document_id)
|
||||
orig_filename = document["original_file_name"]
|
||||
|
||||
title = document["title"]
|
||||
|
||||
pattern = re.compile(r'^(\d{8})(\s\W\s|\s)(.*)')
|
||||
findings = pattern.match(title)
|
||||
if findings:
|
||||
extracted_new_title = findings.group(3)
|
||||
print(f'Extracted title="{extracted_new_title}"')
|
||||
|
||||
# should add Month Year suffix to title?
|
||||
if cfg.expand_title_by_date():
|
||||
print("add suffix")
|
||||
date_string = findings.group(1)
|
||||
print(f"title date string={date_string}")
|
||||
d=datetime.strptime(date_string, "%Y%m%d")
|
||||
|
||||
print(f"parsed date={d}")
|
||||
suffix = f'{MONTH_NAMES[d.month]} {d.year}'
|
||||
print(f"created suffix={suffix}")
|
||||
extracted_new_title = expand_by_non_existing_parts(extracted_new_title, [MONTH_NAMES[d.month], d.year])
|
||||
|
||||
tag_id = api.get_tag_id_by_name(cfg.get_notify_tag())
|
||||
print(tag_id)
|
||||
if tag_id is None:
|
||||
data = {"title": extracted_new_title}
|
||||
else:
|
||||
document["tags"].append(tag_id)
|
||||
data = {"title": extracted_new_title, "tags": document["tags"]}
|
||||
|
||||
response = api.patch_document(document_id, data)
|
||||
|
||||
print(f'Status Code = {response.status_code}')
|
||||
response.raise_for_status()
|
||||
else:
|
||||
print("Nothing changed")
|
||||
|
||||
|
||||
print("END POST CONSUME")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user