add vimeo
[librarian.git] / librarian / formats / epub / __init__.py
index 4b6cf13..4e2e6e5 100644 (file)
@@ -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,
@@ -357,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):