From b740230cd5a173f9657657f7a5d174d24a7fa05b Mon Sep 17 00:00:00 2001 From: JinZhuXing Date: Thu, 14 Nov 2019 15:56:11 +0800 Subject: [PATCH 1/2] fixed get information errors --- lycheesync/lycheemodel.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lycheesync/lycheemodel.py b/lycheesync/lycheemodel.py index 0a26a9a..882054c 100644 --- a/lycheesync/lycheemodel.py +++ b/lycheesync/lycheemodel.py @@ -211,7 +211,7 @@ def __init__(self, id, conf, photoname, album): if decode == "FocalLength": self.exif.focal = value[0] if decode == "ISOSpeedRatings": - self.exif.iso = value[0] + self.exif.iso = value if decode == "Model": self.exif.model = value if decode == "ExposureTime": @@ -219,20 +219,23 @@ def __init__(self, id, conf, photoname, album): if decode == "ShutterSpeedValue": s = value[0] s = 2 ** s - s = decimal.Decimal(s).quantize(decimal.Decimal('1'), rounding=decimal.ROUND_05UP) - if s <= 1: - s = decimal.Decimal( - 1 / - float(s)).quantize( - decimal.Decimal('0.1'), - rounding=decimal.ROUND_05UP) - else: - s = "1/" + str(s) + try: + s = decimal.Decimal(s).quantize(decimal.Decimal('1'), rounding=decimal.ROUND_05UP) + if s <= 1: + s = decimal.Decimal( + 1 / + float(s)).quantize( + decimal.Decimal('0.1'), + rounding=decimal.ROUND_05UP) + else: + s = "1/" + str(s) + exception (decimal.InvalidOperation, ValueError): + s = 0 self.exif.shutter = str(s) + " s" if decode == "DateTimeOriginal": try: - self.exif.takedate = value[0].split(" ")[0] + self.exif.takedate = value.split(" ")[0] except Exception as e: logger.warn('invalid takedate: ' + str(value) + ' for ' + self.srcfullpath) From a52f614dc9464f63609dd2f83aedddb52757704e Mon Sep 17 00:00:00 2001 From: JinZhuXing Date: Thu, 14 Nov 2019 16:31:28 +0800 Subject: [PATCH 2/2] fixed get taketime error --- lycheesync/lycheemodel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lycheesync/lycheemodel.py b/lycheesync/lycheemodel.py index 882054c..8de34de 100644 --- a/lycheesync/lycheemodel.py +++ b/lycheesync/lycheemodel.py @@ -241,7 +241,7 @@ def __init__(self, id, conf, photoname, album): if decode == "DateTimeOriginal": try: - self.exif.taketime = value[0].split(" ")[1] + self.exif.taketime = value.split(" ")[1] except Exception as e: logger.warn('invalid taketime: ' + str(value) + ' for ' + self.srcfullpath)