Commit 219b8e8d by Vasyl Nakvasiuk Committed by Valera Rozuvan

add support `sub` attribute for <video> tag

parent c0d024df
...@@ -42,10 +42,13 @@ class VideoAlphaModule(XModule): ...@@ -42,10 +42,13 @@ class VideoAlphaModule(XModule):
self.youtube = xmltree.get('youtube') self.youtube = xmltree.get('youtube')
self.position = 0 self.position = 0
self.show_captions = xmltree.get('show_captions', 'true') self.show_captions = xmltree.get('show_captions', 'true')
self.source = self._get_source(xmltree) self.source, _ = self._get_source(xmltree)
self.mp4_source = self._get_source(xmltree, ['mp4']) self.mp4_source, self.mp4_element = self._get_source(xmltree, ['mp4'])
self.webm_source = self._get_source(xmltree, ['webm']) self.webm_source, self.webm_element = self._get_source(xmltree, ['webm'])
self.ogv_source = self._get_source(xmltree, ['ogv']) self.ogv_source, self.ogv_element = self._get_source(xmltree, ['ogv'])
self.mp4_sub = self.mp4_element.get('sub') if self.mp4_element else None
self.webm_sub = self.webm_element.get('sub') if self.webm_element else None
self.ogv_sub = self.ogv_element.get('sub') if self.ogv_element else None
self.track = self._get_track(xmltree) self.track = self._get_track(xmltree)
self.start_time, self.end_time = self._get_timeframe(xmltree) self.start_time, self.end_time = self._get_timeframe(xmltree)
...@@ -58,21 +61,23 @@ class VideoAlphaModule(XModule): ...@@ -58,21 +61,23 @@ class VideoAlphaModule(XModule):
"""Find the first valid source, which ends with one of """Find the first valid source, which ends with one of
`extensions`.""" `extensions`."""
condition = lambda src: any([src.endswith(ext) for ext in extensions]) condition = lambda src: any([src.endswith(ext) for ext in extensions])
return self._get_first_external(xmltree, 'source', condition) return self._get_first_external(xmltree, 'source', condition, True)
def _get_track(self, xmltree): def _get_track(self, xmltree):
# find the first valid track # find the first valid track
return self._get_first_external(xmltree, 'track') return self._get_first_external(xmltree, 'track')
def _get_first_external(self, xmltree, tag, condition=bool): def _get_first_external(self, xmltree, tag, condition=bool,
return_element=False):
"""Will return the first 'valid' element of the given tag. """Will return the first 'valid' element of the given tag.
'valid' means that `condition('src' attribute) == True` 'valid' means that `condition('src' attribute) == True`
""" """
result = None result = (None, None) if return_element else None
for element in xmltree.findall(tag): for element in xmltree.findall(tag):
src = element.get('src') src = element.get('src')
if condition(src): if condition(src):
result = src result = (src, element) if return_element else src
break break
return result return result
...@@ -139,6 +144,9 @@ class VideoAlphaModule(XModule): ...@@ -139,6 +144,9 @@ class VideoAlphaModule(XModule):
'mp4_source': self.mp4_source, 'mp4_source': self.mp4_source,
'webm_source': self.webm_source, 'webm_source': self.webm_source,
'ogv_source': self.ogv_source, 'ogv_source': self.ogv_source,
'mp4_sub': self.mp4_sub,
'webm_sub': self.webm_sub,
'ogv_sub': self.ogv_sub,
'source': self.source, 'source': self.source,
'track': self.track, 'track': self.track,
'display_name': self.display_name, 'display_name': self.display_name,
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
${'data-mp4-source="{}"'.format(mp4_source) if mp4_source else ''} ${'data-mp4-source="{}"'.format(mp4_source) if mp4_source else ''}
${'data-webm-source="{}"'.format(webm_source) if webm_source else ''} ${'data-webm-source="{}"'.format(webm_source) if webm_source else ''}
${'data-ogg-source="{}"'.format(ogv_source) if ogv_source else ''} ${'data-ogg-source="{}"'.format(ogv_source) if ogv_source else ''}
${'data-mp4-sub="{}"'.format(mp4_sub) if mp4_sub else ''}
${'data-webm-sub="{}"'.format(webm_sub) if webm_sub else ''}
${'data-ogg-sub="{}"'.format(ogv_sub) if ogv_sub else ''}
data-caption-data-dir="${data_dir}" data-caption-data-dir="${data_dir}"
data-show-captions="${show_captions}" data-show-captions="${show_captions}"
data-start="${start}" data-start="${start}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment