Fix encoding issue with EXIF datetime
This commit is contained in:
@@ -41,7 +41,6 @@ from argh import ArghParser, arg
|
||||
from logging import Formatter
|
||||
|
||||
from .gallery import Gallery
|
||||
from .pkgmeta import __version__
|
||||
from .settings import read_settings
|
||||
|
||||
_DEFAULT_CONFIG_FILE = 'sigal.conf.py'
|
||||
@@ -151,7 +150,6 @@ def serve(path):
|
||||
|
||||
|
||||
def main():
|
||||
parser = ArghParser(description='Simple static gallery generator.',
|
||||
version=__version__)
|
||||
parser = ArghParser(description='Simple static gallery generator.')
|
||||
parser.add_commands([init, build, serve])
|
||||
parser.dispatch()
|
||||
|
||||
@@ -40,6 +40,8 @@ from pilkit.processors import Transpose, Adjust
|
||||
from pilkit.utils import save_image
|
||||
from datetime import datetime
|
||||
|
||||
from . import compat
|
||||
|
||||
|
||||
def _has_exif_tags(img):
|
||||
return hasattr(img, 'info') and 'exif' in img.info
|
||||
@@ -183,7 +185,12 @@ def get_exif_tags(source):
|
||||
# Remove null bytes at the end if necessary
|
||||
date = data['DateTimeOriginal'].rsplit('\x00')[0]
|
||||
dt = datetime.strptime(date, '%Y:%m:%d %H:%M:%S')
|
||||
simple['datetime'] = dt
|
||||
dt = dt.strftime('%A, %d. %B %Y')
|
||||
|
||||
if compat.PY2:
|
||||
simple['datetime'] = dt.decode('utf8')
|
||||
else:
|
||||
simple['datetime'] = dt
|
||||
except (ValueError, TypeError) as e:
|
||||
msg = u'Could not parse DateTimeOriginal of %s: %s' % (source, e)
|
||||
logger.warning(msg)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
{% if media.big %} data-big="{{ media.big }}"{% endif %}
|
||||
{% if media.exif %}
|
||||
{% if media.exif.datetime %}
|
||||
data-date=", {{ media.exif.datetime.strftime('%d %B %Y') }}"
|
||||
data-date=", {{ media.exif.datetime }}"
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
{% if media.exif.exposure %}Exposure: {{ media.exif.exposure }}, {% endif %}
|
||||
{% if media.exif.fstop %}Fstop: {{ media.exif.fstop }}{% endif %}
|
||||
{% if media.exif.datetime %}
|
||||
<br>Date: {{ media.exif.datetime.strftime('%A, %d. %B %Y') }}
|
||||
<br>Date: {{ media.exif.datetime }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
Reference in New Issue
Block a user