X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/1428a9d8f91b754fe7f9fb96cbdd0d6a2536ffc1..ea9a4eea8ee61954c9ae52e8662139c8933ea95d:/librarian/formats/epub/__init__.py?ds=sidebyside diff --git a/librarian/formats/epub/__init__.py b/librarian/formats/epub/__init__.py index 4787a74..4e2e6e5 100644 --- a/librarian/formats/epub/__init__.py +++ b/librarian/formats/epub/__init__.py @@ -13,7 +13,7 @@ import zipfile from urllib2 import urlopen from lxml import etree -from librarian import OPFNS, NCXNS, XHTMLNS, DCNS, BuildError +from librarian import OPFNS, NCXNS, XHTMLNS, DCNS, BuildError, VIDEO_PROVIDERS from librarian import core from librarian.formats import Format from librarian.formats.cover.evens import EvensCover @@ -35,8 +35,11 @@ class EpubFormat(Format): if cover is not None: self.cover = cover - def dc(self, tag): - return self.doc.meta.get_one(DCNS(tag)) + def dc(self, tag, multiple=False): + if multiple: + return ', '.join(self.doc.meta.get(DCNS(tag))) + else: + return self.doc.meta.get_one(DCNS(tag)) def build(self, ctx=None): @@ -158,7 +161,7 @@ class EpubFormat(Format): 'Information about the resource', 'Publisher: %s' % self.dc('publisher'), 'Rights: %s' % self.dc('rights'), - 'Intended audience: %s' % self.dc('audience'), + 'Intended audience: %s' % self.dc('audience', multiple=True), self.dc('description'), 'Resource prepared using MIL/PEER editing platform.', 'Source available at %s' % ctx.source_url, @@ -334,6 +337,7 @@ EpubFormat.renderers.register(core.Div, 'p', NaturalText('p')) EpubFormat.renderers.register(core.Div, 'list', NaturalText('ul')) EpubFormat.renderers.register(core.Div, 'list.enum', NaturalText('ol')) EpubFormat.renderers.register(core.Div, 'item', NaturalText('li')) +EpubFormat.renderers.register(core.Span, 'item', NaturalText('li')) class DivImageR(EpubRenderer): @@ -356,7 +360,7 @@ EpubFormat.renderers.register(core.Div, 'img', DivImageR('img')) class DivVideoR(Silent): def render(self, element, ctx): - src = 'https://www.youtube.com/watch?v=%s' % element.attrib.get('videoid', '') + src = VIDEO_PROVIDERS[element.attrib.get('provider')]['url'] % element.attrib.get('videoid', '') return super(DivVideoR, self).render(element, Context(ctx, src=src)) def container(self, ctx):