diff --git a/guessfilename/__init__.py b/guessfilename/__init__.py index 3ce53ca..3feee2e 100755 --- a/guessfilename/__init__.py +++ b/guessfilename/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -PROG_VERSION = u"Time-stamp: <2020-03-05 15:12:04 vk>" +PROG_VERSION = u"Time-stamp: <2020-05-29 16:28:30 vk>" # TODO: @@ -168,6 +168,10 @@ class GuessFilename(object): VID_REGEX = re.compile('VID_' + DATESTAMP_REGEX + '_' + TIMESTAMP_REGEX + \ '(?P.+)?\.(?Pmp4)', re.UNICODE) + # Konica Minolta scan file-names: YYMMDDHHmmx + KonicaMinolta_TIME_REGEX = re.compile('(?P\d{2})(?P[01]\d)(?P[0123]\d)(?P[012]\d)(?P[012345]\d)(?P\d).pdf') + + # 2019-12-04: "Die Presse (31.10.2019) - Unknown.pdf" -> "2019-10-31 Die Presse.pdf" NEWSPAPER1_REGEX = re.compile('(?P.+) \((?P\d{2})\.(?P\d{2})\.(?P\d{4})\)(?P.*)\.(?Ppdf)', re.UNICODE) @@ -683,6 +687,14 @@ class GuessFilename(object): if extension.upper() == "PDF" and datetimestr and 'Anwesenheitsbest' in oldfilename: return datetimestr + ' BHAK Anwesenheitsbestaetigung -- scan.' + extension + # 2020-05-29: Konica Minolta scan file-names: YYMMDDHHmmx + # KonicaMinolta_TIME_REGEX = re.compile('(?P\d{2})(?P[01]\d)(?P[0123]\d)(?P[012]\d)(?P[012345]\d)(?P\d).pdf') + regex_match = re.match(self.KonicaMinolta_TIME_REGEX, oldfilename) + if regex_match: + ## re-use index number at the end as first digit of seconds and hope that not more than 5 documents are scanned within a minute: + return '20' + regex_match.group('truncatedyear') + '-' + regex_match.group('month') + '-' + regex_match.group('day') + 'T' + \ + regex_match.group('hour') + '.' + regex_match.group('minute') + '.' + regex_match.group('index') + "0 -- scan.pdf" + # FIXXME: more cases! diff --git a/guessfilename_test.py b/guessfilename_test.py index 34cbaf2..f8f2520 100644 --- a/guessfilename_test.py +++ b/guessfilename_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8; mode: python; -*- -# Time-stamp: <2020-03-05 15:12:07 vk> +# Time-stamp: <2020-05-29 16:28:30 vk> import unittest import logging @@ -989,6 +989,11 @@ class TestGuessFilename(unittest.TestCase): self.assertEqual(self.guess_filename.derive_new_filename_from_old_filename('2020-03-03 Anwesenheitsbestaetigung.pdf'), '2020-03-03 BHAK Anwesenheitsbestaetigung -- scan.pdf') + # 2020-05-29: Konica Minolta scan file-names: YYMMDDHHmmx + self.assertEqual(self.guess_filename.derive_new_filename_from_old_filename('20052915100.pdf'), + '2020-05-29T15.10.00 -- scan.pdf') + + # self.assertEqual(self.guess_filename.derive_new_filename_from_old_filename(''), # '')