Release Notes ! ! ! ATTENTION ! ! ! This version only supports DSM7 DSM6.x version you can found here: https://git.geimist.eu/geimist/synOCR/src/branch/master/PKG_DSM6/CHANGELOG known issues / limitations: - The check whether a selected folder (OUTPUT, BACKUP) is encrypted and possibly not mounted does not work when running the program without root privileges (due to the known rights restrictions) 1.5.0 [2025-03-28] ⚠️ known issues / limitations: Devices with an ARM64 / aarch64 CPU are not supported with this release due to Python incompatibility❗️ IMPLEMENTATIONS: - [GUI] 🔥 Color adjustments can now be used to configure the contrast, the sharpness and a black and white mode (1-bit). - [GUI] 🔥 Blank page detection and removal has been implemented. - [shell] If logging is activated, the file "file_processing.log" is now kept in the log folder for a quick overview of the target files - [GUI] A slider can be used to set a processing delay of 0-120 seconds (compatibility of folder monitoring with incompatible scanners such as CANON) - [GUI] The source file remains unchanged via the OCR parameter --keep_hash, but can still be classified and renamed (issue #59) IMPROVEMENT: - [GUI] the save dialog in the GUI now runs much faster - [shell] improved protection of the source file in the event of an error - [shell] yaml key dirname_RegEx is implemented in order to be able to generate dynamic paths with path variable §dirname_RegEx - [GUI] an indicator for the profile change has been added - [shell] duplicate detection of the target file is now more robust - [shell] use native DSM permission adjustment - [shell] all non-alphanumeric characters at target file name will be compressed (issue #58) - [GUI] where possible, text fields and radio buttons have been replaced by sliders and switches. - [GUI] splitting pages can be set to each page - [SHELL] bump apprise library to 1.9.2 - [GUI] bump Bootstrap framework to 5.3.3 (thx @Tommes) - [GUI] bump jQuery to 3.7.1 (thx @Tommes) - [GUI] invalid source directories are displayed in the GUI - [shell] changed D-M-Y, D.M.Y and D/M/Y regexes in search_all_numeric_dates to allow search for 2- and 4-digit years. (#56 thx @dklinger) - [shell] update find_dates.py from v0.4 ➜ v0.6 (thx @GThorsten) search_alpha_numeric_dates() -change regex after user hint search_alpha_numeric_dates() - optimize search for short dates (jun., Apr......) - bugfix regex with whitespace after Month - add some logging BUGFIXES: - [shell] issue with the delay in combination with folder monitoring - [shell] the counting of pages was changed from PyPDF to pymupdf to catch an error with EOF - [shell] search prefix and search suffix have been removed from the entire file name - [shell] file names containing double quotation marks resulted in an error - [shell] bugfix for file names with a tilde - [shell] update find_dates.py bugfix for dates like 15.6.2023 add language = de to dateparser (thx @dklinger) - [shell] update find_dates.py from v0.6 ➜ v0.7 (thx @dklinger) fix for dateparser parsing current datetime from invalid string - [SHELL] fix error message "warning: ./synOCR.sh: line 780: command substitution: ignored null byte in input" - [shell] fixing some minor bugs 1.4.5 [2023-09-25] BUGFIXES: - [SHELL] Fixed a bug that could block the start of monitoring - [SHELL] Fixed a bug that could not update the DB @DSM6 1.4.4 [2023-08-31] BUGFIXES: - [SHELL] Search range for the date in the past was not calculated correctly - [SHELL] if an (encrypted) destination folder has not yet been mounted, the program run is now terminated. 1.4.3 [2023-08-08] BUGFIXES: - [SHELL] a missing slash in the source path partly blocked a correct program run IMPROVEMENT: - [GUI] In the update note not only the newest but also the installed version is displayed - [SHELL] apply shellcheck for functions.sh 1.4.2 [2023-07-26] BUGFIXES: - [SHELL] fix build python environment at aarch64 (additionally Python 3.9 required) IMPROVEMENT: - [SHELL] remove trailing spaces and tabs in YAML rules to improve compatibility - [SHELL] improve error handling of python date search - [SHELL] improve logging - [SHELL] improve YAML validation 1.4.1 [2023-07-07] BUGFIXES: - [SHELL] disable python environment backup due to an update error - [SHELL] minor bugfixes IMPROVEMENT: - [SHELL] Bump apprise library to 1.4.5 1.4.0 [2023-07-04] BUGFIXES: - [SHELL] if the path to the log file contained a hash, the date search via Python failed - [SHELL] Renaming parameters used as tag name components in YAML rules were not written as metadata - [SHELL] avoid empty renaming syntax - [SHELL] Error when parsing GUI-defined rules - [GUI] If the log level was set to 0, the log was incorrectly displayed in the GUI during a manual run - [GUI] fixed syntax error that caused a navigation error in the GUI - [SHELL] if two separation pages follow each other, this was result in an empty PDF file (thx @DeeKay1) - [GUI] synOCR starts at DSM7.2 only in a new window (iFrame support - thx @Tommes) IMPROVEMENT: - [SHELL] splitting: change from pypdf to pikepdf because pypdf breaks the PDF/A attribute (thx @Gthorsten) - [SHELL] write metadata: change from pypdf to pikepdf because pypdf breaks the PDF/A attribute (thx @Gthorsten) - [SHELL] write metadata additionally as XMP data (thx @Gthorsten) - [SHELL] Python environment is preserved now during a package update - [GUI] Bump Bootstrap framework to 5.3.0 (thx @Tommes) - [GUI] Bump Bootstrap JavaScript to 5.3.0 (thx @Tommes) - [GUI] Bump jQuery to 3.7.0 (thx @Tommes) - [GUI] Made minor code optimizations in synOCR.js (thx @Tommes) - [GUI] In addition to local DSM users, the app can now be used by Domain and LDAP users (thx @Tommes) - [SHELL] improve DSM notification - [SHELL] most shell code was checked and adjusted to pass shellcheck - [GUI] If the monitoring is started via the task scheduler from root, the GUI now informs about it - [SHELL] incorrect separator page behavior for consecutive documents with separator pages - [GUI] profile changes automatically when another name is selected in the listbox (thx @HolerZ) - [GUI] the warning for an invalid source directory now also contains the name of the affected profile - [SHELL] update find_dates.py to version 1.0.4 (thx @GThorsten) - [SHELL] no temporary data is stored in the destination folder now - improved logging when monitoring cannot be started because a source folder is invalid IMPLEMENTATIONS: - 🔥 inclusion of APPRISE library to support many notification services (native PushBullet support has been removed) apprise_call (apprise service) apprise_attachment (true/false) notify_lang (DSM lang code) can be additionally defined and overwrite in every YAML rule - with value "postscript:" in YAML can be defined post script commands (command or path to script) - [YAML] >multilineregex: true< can be set at subrule and for tagname_RegEx this will set the parameter -z for grep to find results over multi lines - [GUI] support for follow machine translated languages (by DeepL) - Korean - Norwegian 1.3.3 [2023-04-23] BUGFIXES: - Renaming parameters used as tag name components in YAML rules were not written as metadata - fix wrong version in 1.3.2 1.3.1 [2023-02-23] BUGFIXES: - Fixed syntax error that caused a navigation error in the GUI 1.3.0 [2022-11-01] BUGFIXES: - counting of log and backup files to be deleted was not correct under certain situations - catching an error message if there are no docker images to be cleaned up IMPROVEMENT: - YAML rules: if the value for condition not set - fallback to any - Notification in the log when rule-based destination folders are found, but a conflicting setting is set in the GUI - Profiles are now processed in alphabetical order (by profile name) IMPLEMENTATIONS: - 🔥 Input folder monitoring included (need installed inotify-tools from here: https://synocommunity.com/package/inotify-tools) - a pulsing status icon in the gui indicates an active monitoring - 🔥 new Python based date search implemented, which also finds written out months (gthorsten) - a start year for date search can defined in GUI - a year in future can be defined in GUI as latest year for search - 🔥 support separator sheet - dokument split pattern can be configured in GUI - in GUI user can define: splitpage is first page, is last page or discard - 🔥 Pictures in the source folder can be converted automatically - option to reduce multiple spaces to one (helpful with RegEx) - the number of pages is now determined with Python - Exiftool and pdfinfo become obsolete - [YAML] all renaming parameter can be used as tagname components in YAML-rules (experimental) - [YAML] tagname & tagname_RegEx can be combined: - use §tagname_RegEx in tagname and it will be replaced by tagname_RegEx - Metadata will be add with Python - Exiftool become obsolete - set author (get author information from ocr options if set [--author john doe]) - set creation date (depending on which one was defined: OCR, file date, now) - set keywords - the conversion from YAML to JSON is no longer done with the binary yq but by Python - logging deleted backup files in loglevel 2 - [GUI] notify about updates in main page (because cphub.net is not working) - [GUI] support for follow machine translated languages (by DeepL) - Chinese simplified - Czech - Japanese - Danish - French - Italian - Dutch - Polish - Russian - Spanish - Swedish - Hungarian - Turkish - Portuguese European - Portuguese Brazilian 1.2.0 [2022-01-11] BUGFIXES: - Creating the required user group 'docker' was not possible if a similarly named group already existed. - RegEx with lookahead / lookbehind for tag names were not possible - minor bugfixes (thx to tommes) IMPROVEMENT: - handling of special characters improved - cleanup of unused docker images - delete cron job who was generated with synOCR at DSM6 - DSM notifications work again - DSM notifications: list all possible users - indicator about valid directorys in GUI - the order of the tags can now be defined criterion is the alphabetical sorting of the rule names in the YAML file - rewrite GUI (thx to tommes) IMPLEMENTATIONS: - renaming parameter for the year can now be 2 or 4 digits (§yocr2 §yocr4 §ynow2 §ynow4 §ysource2 §ysource4) - added renaming parameter §pagecount (pages of current document) - all renaming parameter can be used as path components in YAML-rules (except document title [§tit]) - target files can moved to folders named by year - target files can moved to folders named by year/month - number of backup files can now be limited (days or number) 1.1.902 BETA [2021-07-26] IMPROVEMENT: - DSM 7 icons (many thanks to TJ. from german synology forum) - minor bugfixes 1.1.901 BETA [2021-07-08] IMPLEMENTATIONS: - DSM 7 compatibility (many thanks to tommes from german synology forum) 1.1.2 [2021-04-21] BUGFIXES: - an error when the page counter could not be calculated. IMPROVEMENT: - counter for processed pages at aarch64 are now possible if Exiftool is installed 1.1.1 [2021-04-05] BUGFIXES: - fixed century check - fixed name of variable 1.1.0 [2021-03-31] IMPLEMENTATIONS: - added the option to define the tag name via RegEx (Parameter tagname_RegEx in YAML file) - added a counter for processed pages and files per profile (x86_64 only) - added additional renaming parameters: §hhsource §mmsource §sssource §hhnow §mmnow §ssnow §pagecounttotal §filecounttotal §pagecountprofile §filecountprofile - support for CPU aarch64 (statistics work only limited, because pdfinfo is missing). - improved date search / data to be ignored can be specified in the GUI (thanks to DeeKay1) BUGFIXES: - tagsymbol with spaces don't work - copy file, if hard links are not createable - it is no longer calculated with expr - 'force quiet' (GUI) now also terminates the Docker container synOCR - minor bugfixes 1.0.2 [2020-08-22] BUGFIXES: - file date could not be set to source - if no destination folder was defined in all fulfilled rules (YAML file), the destination file was lost - file permission of the target file adjusted (664 and ACL-inheritance) 1.0.1 [2020-07-22] BUGFIXES: - >condition: all< was not evaluated correctly (YAML-file) - unnecessary counter supplement of the target file, if no renaming syntax was specified - YAML-Samplefile was not created correctly if there were spaces in the path - file permission of the target file adjusted 1.0.0 [2020-07-13] IMPLEMENTATIONS: - multilingual GUI (currently German, English) - advanced rule management (in combination with an external YAML-file -> write Samplefile with button in GUI) - tags are now independent of the search term (alias - in combination with an external YAML-file) - source files: a search prefix with preceding "!" inverts the search in filename ( !value ) - source files: a final "$" is used as search suffix in filename ( value$ ) - if the Exiftool is installed, found tags and date are written into the meta data BUGFIXES: - if a path refers to an (unmounted) encrypted directory, the program run is aborted 0.17.1 [2020-06-18] BUGFIXES: - Fehler, wenn keine Umbenennungssyntax angegeben wurde 0.17.0 [2020-05-10] IMPLEMENTIERUNGEN: - Tags können über ein externes Textfile geladen werden - Dockerimages mit :latest-Tag können automatisch aktualisiert werden 0.16.3 [2020-03-02] BUGFIXES: - Problem beim Einsortieren in Tagordner 0.16.2 [2020-02-18] BUGFIXES: - Korrektur der Datumserkennung 0.16.1 [2020-02-09] BUGFIXES: - Sonderzeichen in tags führte zu fehlerhafter Umbenennung 0.16.0 [2020-01-28] IMPLEMENTIERUNGEN: - es steht wieder ein aktuelles "polyglot-Image" mit allen Sprachen zur Auswahl - manuell heruntergeladene Images stehen ebenfalls zur Auswahl (sofern "ocrmypdf" im Namen enthalten ist) - eine tag-Kennzeichnung ist nun konfigurierbar (für keinen, einfach leer lassen) - Prüfung auf vorhandene Dockerinstallation - das Dateidatum der Ausgabedatei kann nun auf: Quelldatei, OCR oder JETZT gesetzt werden - das Umbenennungsdatum kann nun auf: Quelldatei, OCR oder JETZT gesetzt werden BUGFIXES: - "beenden erzwingen" war nicht möglich - Dateidatum der Quelldatei wurde teilweise nicht korrekt auf die Ausgabedatei übertragen - Minorbugfixes 0.15.2 [2019-09-03] IMPLEMENTIERUNGEN: - erweiterte Auswahl an Dockerimages 0.15.1 [2019-03-24] BUGFIXES: - die temporäre Zieldatei wurde nicht gelöscht 0.15.0 [2019-03-21] IMPLEMENTIERUNGEN: - Die Konfiguration wurde von einer Textdatei auf eine Datenbank umgestellt. So lassen sich jetzt beliebige Profile verwalten. - Übersichts- und Statusseite zusammengeführt - INFO: Das Textfeld für die Tags ist zwar jetzt mehrzeilig, es dürfen aber derzeit keine Zeilenumbrüche verwendet werden! - Detailverbesserungen in der GUI 0.14.0 [2019-03-10] IMPLEMENTIERUNGEN: - es wird jetzt in einem temporären Ordner gearbeitet, damit unerfahrene User nicht von leeren Dateien irritiert werden - über ein Listfeld lässt sich das Image jbarlow83/ocrmypdf-polyglot (mit allen Sprachen) auswählen BUGFIXES: - das Handling der Dateirechte wurde geändert 0.13.1 [2019-02-24] BUGFIXES: - Fehler bei der Benutzerberechtigung. Die Berechtigung zu synOCR kann in der Systemsteuerung/Berechtigung konfiguriert werden (bitte beachte, dass nur eine gemeinsame Konfiguration verwendet wird!). 0.13.0 [2019-02-17] IMPLEMENTIERUNGEN: - durch Voranstellen eines Paragrafenzeichen kann ein Tag alleinstehend gefunden werden (§tag) - in der Statistik werden jetzt auch einzelne Seiten gezählt - (der Suchpräfix ist als Standard [bei Neueinstallationen] nicht mehr vorbelegt) BUGFIXES: - Fehler bei der LOG-Ausgabe beim Aufruf über den Aufgabenplaner 0.12.1 [2019-02-05] IMPLEMENTIERUNGEN: - zeigen unterschiedliche Tags auf ein und dieselbe Kategorie, so wird die Datei nur einmal in den Kategorieordner verschoben BUGFIXES: - Das Sonderzeichen "&" im Dateinamen führte zu einer falschen Umbenennung (es sollte grundsätzlich auf Sonderzeichen im Dateinamen verzichtet werden!) - ein falscher Exit-Status bei einer leeren Aufgabenliste führte dazu, dass der Aufgabenplaner fälschlicherweise von einem Error ausging und ggf. eine entsprechende Benachrichtigungsmail versendete - Tags mit Leerzeichen wurden nicht erkannt, sofern sie ohne Kategorie gesucht wurden - verbesserte LOG-Ausgabe beim Aufruf über den Aufgabenplaner - der Originaldateiname wurde z.T. bei der Umbenennung nicht korrekt weiter verarbeitet - Verbesserung der Dateizählererweiterung wenn man die erste Datei ohne Zähler verschoben hatte, bzw. die Originaldateien schon einen Zähler in der Form (1) hatten. 0.11.0 [2019-01-29] IMPLEMENTIERUNGEN: - Tags und Kategorien können jetzt Leerzeichen enthalten (eine Suche nach Tag "Rechnung " findet so nicht fälschlicherweise "Rechnungsstellung") - Schalter, um Tags als Kategorie zu verwenden (manche wollen vielleicht für jeden Tag einen eigenen Ordner). Eine separate Kategoriezuweisung erübrigt sich in diesem Fall - Schalter, um im gesamten Dokument zu suchen (nicht nur auf der ersten Seite / Gefahr von false positive Ergebnissen steigt!) - PDFs die einen Error hervorrufen, werden in den Unterordner "ERRORFILES" im Quellverzeichnis verschoben, um deren wiederholte Verarbeitung zu vermeiden BUGFIXES: - eine Installation auf Geräten, die nur inoffiziell Docker unterstützen, war nicht möglich - kleinere Detailverbesserungen 0.10.0 [2019-01-21] IMPLEMENTIERUNGEN: - es kann nach Tags im OCR-Text gesucht werden - es kann nach Datum im OCR-Text gesucht werden - es kann eine eigene Umbenennungssyntax angegeben werden - Tags können einer Kategorie zugeordnet werden (entsprechende Unterordner werden im Zielordner erstellt) BUGFIXES: - ein fehlender Zielordner wurde ggf. nicht erstellt - der Zähler für offene Jobs war z.T. nicht korrekt 0.9.3 [2019-01-16] IMPLEMENTIERUNGEN: - Dateisuche ist jetzt case insensetive (Suchpräfix / .pdf .PDF) - Suchpräfix kann nun automatisch entfernt werden BUGFIXES: - leere LOGs wurden z.T. nicht korrekt gelöscht - bei einem OCRmyPDF Error wurde das Skript z.T. nicht korrekt abgebrochen - kleinere Korrekturen 0.9.2 [2019-01-11] - This is the initial public release of the package