X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/db91f942ce46e3af1420f3469a83257ef5aca4c2..e2acc67a478455184e5e714e63a61e78ad37d787:/src/librarian/elements/figures/ilustr.py?ds=sidebyside diff --git a/src/librarian/elements/figures/ilustr.py b/src/librarian/elements/figures/ilustr.py index ab7c2b7..33099f6 100644 --- a/src/librarian/elements/figures/ilustr.py +++ b/src/librarian/elements/figures/ilustr.py @@ -1,20 +1,27 @@ -import six.moves +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. +# +import io +import urllib.parse +import urllib.request from PIL import Image from ..base import WLElement class Ilustr(WLElement): + SHOULD_HAVE_ID = True + EPUB_TAG = HTML_TAG = 'img' def get_html_attr(self, builder): ## TODO: thumbnail. - url = six.moves.urllib.parse.urljoin( + url = urllib.parse.urljoin( builder.base_url, self.get('src') ) - imgfile = six.moves.urllib.request.urlopen(url) + imgfile = urllib.request.urlopen(url) img = Image.open(imgfile) th_format, ext, media_type = { 'GIF': ('GIF', 'gif', 'image/gif'), @@ -27,10 +34,9 @@ class Ilustr(WLElement): else: th = img.resize((width, round(width * img.size[1] / img.size[0]))) - imgfile.close() - buffer = six.BytesIO() + buffer = io.BytesIO() th.save(buffer, format=th_format) - ## TODO: Counter + imgfile.close() file_name = 'image%d.%s' % ( builder.assign_image_number(), ext @@ -44,8 +50,8 @@ class Ilustr(WLElement): return { 'src': file_name, - 'alt': self.attrib['alt'], - 'title': self.attrib['alt'], + 'alt': self.attrib.get('alt', ''), + 'title': self.attrib.get('alt', ''), } get_epub_attr = get_html_attr