Beta
parent
f5e1e11d50
commit
0e79d13f02
66
ocr-watcher
66
ocr-watcher
|
@ -7,39 +7,55 @@ import time
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
OCRBASE="/ocr"
|
OCRBASE="/ocr"
|
||||||
|
INBOX="{}/inbox".format(OCRBASE)
|
||||||
|
OUTBOX="{}/outbox".format(OCRBASE)
|
||||||
|
|
||||||
|
|
||||||
lock = fasteners.InterProcessLock("/var/lock/ocr-watcher.lock")
|
lock = fasteners.InterProcessLock("/var/lock/ocr-watcher.lock")
|
||||||
|
|
||||||
if lock.acquire(timeout=2):
|
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"):
|
if not os.path.isdir(OUTBOX):
|
||||||
SPOOLFILE="{}/spool/{}".format(OCRBASE, e.name)
|
os.mkdir(OUTBOX)
|
||||||
TEMPFILE="{}/spool/{}.tmp".format(OCRBASE, e.name)
|
if not os.path.isdir("{}/failed".format(OCRBASE)):
|
||||||
ARCHIVEFILE="{}/archive/{}".format(OCRBASE, e.name)
|
os.mkdir("{}/failed".format(OCRBASE))
|
||||||
DSTFILE="{}/ocr/{}".format(OCRBASE, e.name)
|
if not os.path.isdir("{}/inbox".format(OCRBASE)):
|
||||||
LOGFILE="{}/log/{}.out".format(OCRBASE, e.name)
|
os.mkdir("{}/inbox".format(OCRBASE))
|
||||||
ERRFILE="{}/log/{}.err".format(OCRBASE, e.name)
|
if not os.path.isdir("{}/spool".format(OCRBASE)):
|
||||||
|
os.mkdir("{}/spool".format(OCRBASE))
|
||||||
# os.rename(SRCFILE, SPOOLFILE)
|
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:
|
while (True):
|
||||||
with open(ERRFILE,"w") as errfile:
|
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 e.is_file() and e.name.endswith(".pdf"):
|
||||||
if os.path.isfile(TEMPFILE):
|
SPOOLFILE="{}/spool/{}".format(OCRBASE, e.name)
|
||||||
os.unlink(TEMPFILE)
|
TEMPFILE="{}/spool/{}.tmp".format(OCRBASE, e.name)
|
||||||
os.rename(SRCFILE, FAILFILE)
|
ARCHIVEFILE="{}/archive/{}".format(OCRBASE, e.name)
|
||||||
else:
|
DSTFILE="{}/{}".format(OUTBOX, e.name)
|
||||||
os.rename(SRCFILE, ARCHIVEFILE)
|
LOGFILE="{}/log/{}.out".format(OCRBASE, e.name)
|
||||||
os.rename(TEMPFILE, DSTFILE)
|
ERRFILE="{}/log/{}.err".format(OCRBASE, e.name)
|
||||||
elif not e.name.startswith(".") and not e.is_dir():
|
|
||||||
os.rename(SRCFILE, FAILFILE)
|
# os.rename(SRCFILE, SPOOLFILE)
|
||||||
time.sleep(5)
|
|
||||||
|
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