fix(bot): fix error handling while scanning

This commit is contained in:
Masahiko AMANO 2025-07-01 10:48:57 +03:00
parent 844ad5452e
commit 87555c9670

View File

@ -119,7 +119,7 @@ def file_handler(message):
def scan(message): def scan(message):
tfm_tb.reply_to(message, "Scanning...") tfm_tb.reply_to(message, "Scanning...")
log.info("Scanning...") log.info("Scanning...")
scan_dir = "/srv/hfs/misc/tfm_temp/scan" scan_dir = "/srv/share/hfs/misc/tfm_temp/scan"
files = [] files = []
for file in os.listdir(scan_dir): for file in os.listdir(scan_dir):
new_file = {"name": file} new_file = {"name": file}
@ -127,7 +127,11 @@ def scan(message):
if not os.path.isfile(file): if not os.path.isfile(file):
continue continue
new_file["path"] = file new_file["path"] = file
exif = ljson(os.popen(f"exiftool -json \"{file}\"").read())[0] try:
exif = ljson(os.popen(f"exiftool -json \"{file}\"").read())[0]
except Exception as e:
log.error("Error while parsing EXIF for file '%s': %s" % (file, e))
continue
dt = exif["FileModifyDate"] dt = exif["FileModifyDate"]
if "SubSecDateTimeOriginal" in exif.keys(): if "SubSecDateTimeOriginal" in exif.keys():
dt = exif["SubSecDateTimeOriginal"] dt = exif["SubSecDateTimeOriginal"]
@ -140,9 +144,13 @@ def scan(message):
dt = TZ.localize(datetime.strptime(dt, "%Y:%m:%d %H:%M:%S.%f")) dt = TZ.localize(datetime.strptime(dt, "%Y:%m:%d %H:%M:%S.%f"))
else: else:
try: try:
dt = datetime.strptime(dt, "%Y:%m:%d %H:%M:%S%z") try:
dt = datetime.strptime(dt, "%Y:%m:%d %H:%M:%S%z")
except:
dt = TZ.localize(datetime.strptime(dt[:19], "%Y:%m:%d %H:%M:%S"))
except: except:
dt = TZ.localize(datetime.strptime(dt, "%Y:%m:%d %H:%M:%S")) log.error("Broken date: %s\t%s" % (new_file, dt))
continue
new_file["datetime"] = dt new_file["datetime"] = dt
files.append(new_file) files.append(new_file)
tfm_tb.reply_to(message, f"{len(files)} files found.") tfm_tb.reply_to(message, f"{len(files)} files found.")