master
root 2021-05-01 20:45:24 +00:00
parent f5e1e11d50
commit 0e79d13f02
1 changed files with 41 additions and 25 deletions

View File

@ -7,39 +7,55 @@ import time
import subprocess
OCRBASE="/ocr"
INBOX="{}/inbox".format(OCRBASE)
OUTBOX="{}/outbox".format(OCRBASE)
lock = fasteners.InterProcessLock("/var/lock/ocr-watcher.lock")
if lock.acquire(timeout=2):
while (True):
for e in os.scandir(OCRBASE):
SRCFILE="{}/{}".format(OCRBASE, e.name)
FAILFILE="{}/failed/{}".format(OCRBASE, e.name)
if e.is_file() and e.name.endswith(".pdf"):
SPOOLFILE="{}/spool/{}".format(OCRBASE, e.name)
TEMPFILE="{}/spool/{}.tmp".format(OCRBASE, e.name)
ARCHIVEFILE="{}/archive/{}".format(OCRBASE, e.name)
DSTFILE="{}/ocr/{}".format(OCRBASE, e.name)
LOGFILE="{}/log/{}.out".format(OCRBASE, e.name)
ERRFILE="{}/log/{}.err".format(OCRBASE, e.name)
# os.rename(SRCFILE, SPOOLFILE)
if not os.path.isdir(OUTBOX):
os.mkdir(OUTBOX)
if not os.path.isdir("{}/failed".format(OCRBASE)):
os.mkdir("{}/failed".format(OCRBASE))
if not os.path.isdir("{}/inbox".format(OCRBASE)):
os.mkdir("{}/inbox".format(OCRBASE))
if not os.path.isdir("{}/spool".format(OCRBASE)):
os.mkdir("{}/spool".format(OCRBASE))
if not os.path.isdir("{}/archive".format(OCRBASE)):
os.mkdir("{}/archive".format(OCRBASE))
if not os.path.isdir("{}/log".format(OCRBASE)):
os.mkdir("{}/log".format(OCRBASE))
with open(LOGFILE,"w") as logfile:
with open(ERRFILE,"w") as errfile:
while (True):
for e in os.scandir(INBOX):
SRCFILE="{}/{}".format(INBOX, e.name)
FAILFILE="{}/failed/{}".format(OCRBASE, e.name)
if subprocess.run(["/usr/bin/ocrmypdf","-l","deu","--rotate-pages","--deskew","--jobs","4", SRCFILE, TEMPFILE], stderr=errfile, stdout=logfile).returncode != 0:
if os.path.isfile(TEMPFILE):
os.unlink(TEMPFILE)
os.rename(SRCFILE, FAILFILE)
else:
os.rename(SRCFILE, ARCHIVEFILE)
os.rename(TEMPFILE, DSTFILE)
elif not e.name.startswith(".") and not e.is_dir():
os.rename(SRCFILE, FAILFILE)
time.sleep(5)
if e.is_file() and e.name.endswith(".pdf"):
SPOOLFILE="{}/spool/{}".format(OCRBASE, e.name)
TEMPFILE="{}/spool/{}.tmp".format(OCRBASE, e.name)
ARCHIVEFILE="{}/archive/{}".format(OCRBASE, e.name)
DSTFILE="{}/{}".format(OUTBOX, e.name)
LOGFILE="{}/log/{}.out".format(OCRBASE, e.name)
ERRFILE="{}/log/{}.err".format(OCRBASE, e.name)
# os.rename(SRCFILE, SPOOLFILE)
with open(LOGFILE,"w") as logfile:
with open(ERRFILE,"w") as errfile:
if subprocess.run(["/usr/bin/ocrmypdf","-l","deu","--rotate-pages","--deskew","--jobs","4", SRCFILE, TEMPFILE], stderr=errfile, stdout=logfile).returncode != 0:
if os.path.isfile(TEMPFILE):
os.unlink(TEMPFILE)
os.rename(SRCFILE, FAILFILE)
else:
os.rename(SRCFILE, ARCHIVEFILE)
os.rename(TEMPFILE, DSTFILE)
elif not e.name.startswith(".") and not e.is_dir():
os.rename(SRCFILE, FAILFILE)
time.sleep(5)