Beta
parent
f5e1e11d50
commit
0e79d13f02
66
ocr-watcher
66
ocr-watcher
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue