}
+def get_provider(provider_id):
+ return VIDEO_PROVIDERS.get(provider_id, VIDEO_PROVIDERS['youtube'])
+
+
class UnicodeException(Exception):
def __str__(self):
""" Dirty workaround for Python Unicode handling problems. """
from urllib2 import urlopen
from lxml import etree
-from librarian import OPFNS, NCXNS, XHTMLNS, DCNS, BuildError, VIDEO_PROVIDERS
+from librarian import OPFNS, NCXNS, XHTMLNS, DCNS, BuildError, get_provider
from librarian import core
from librarian.formats import Format
from librarian.formats.cover.evens import EvensCover
class DivVideoR(Silent):
def render(self, element, ctx):
- src = VIDEO_PROVIDERS[element.attrib.get('provider')]['url'] % element.attrib.get('videoid', '')
+ src = get_provider(element.attrib.get('provider'))['url'] % element.attrib.get('videoid', '')
return super(DivVideoR, self).render(element, Context(ctx, src=src))
def container(self, ctx):
from librarian.output import OutputFile
from librarian.renderers import Register, TreeRenderer
from librarian.utils import Context, get_resource
-from librarian import core, VIDEO_PROVIDERS
+from librarian import core, get_provider
class HtmlFormat(Format):
class DivVideo(NaturalText):
def render(self, element, ctx):
output = super(DivVideo, self).render(element, ctx)
- provider = element.attrib.get('provider', '')
+ provider = get_provider(element.attrib.get('provider'))
video_id = element.attrib.get('videoid', '')
attribs = {
'width': '854',
'height': '480',
- 'src': VIDEO_PROVIDERS[provider]['embed'] % video_id,
+ 'src': provider['embed'] % video_id,
'frameborder': '0',
'allowfullscreen': '',
}
from urllib import urlretrieve
from StringIO import StringIO
from Texml.processor import process
-from librarian import DCNS, XMLNamespace, BuildError, VIDEO_PROVIDERS
+from librarian import DCNS, XMLNamespace, BuildError, get_provider
from librarian.formats import Format
from librarian.output import OutputFile
from librarian.renderers import Register, TreeRenderer
class VideoRenderer(CmdRenderer):
def render(self, element, ctx):
root = super(VideoRenderer, self).render(element, ctx)
- url = VIDEO_PROVIDERS[element.attrib.get('provider')]['url'] % element.attrib.get('videoid', '')
+ url = get_provider(element.attrib.get('provider'))['url'] % element.attrib.get('videoid', '')
link = texml_cmd('href', url, url)
root[0][0].text = None
root[0][0].append(link)