diff --git a/ocr-watcher b/ocr-watcher index efe71d7..d9a17df 100755 --- a/ocr-watcher +++ b/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)