[pluralsight] Fix subtitles conversion (closes #10990)

This commit is contained in:
Sergey M․ 2016-10-22 21:15:39 +07:00
parent e034cbc581
commit 425f3fdfcb
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -11,6 +11,7 @@
compat_urlparse, compat_urlparse,
) )
from ..utils import ( from ..utils import (
dict_get,
ExtractorError, ExtractorError,
float_or_none, float_or_none,
int_or_none, int_or_none,
@ -119,14 +120,17 @@ def _get_subtitles(self, author, clip_id, lang, name, duration, video_id):
@staticmethod @staticmethod
def _convert_subtitles(duration, subs): def _convert_subtitles(duration, subs):
srt = '' srt = ''
TIME_OFFSET_KEYS = ('displayTimeOffset', 'DisplayTimeOffset')
TEXT_KEYS = ('text', 'Text')
for num, current in enumerate(subs): for num, current in enumerate(subs):
current = subs[num] current = subs[num]
start, text = float_or_none( start, text = (
current.get('DisplayTimeOffset')), current.get('Text') float_or_none(dict_get(current, TIME_OFFSET_KEYS)),
dict_get(current, TEXT_KEYS))
if start is None or text is None: if start is None or text is None:
continue continue
end = duration if num == len(subs) - 1 else float_or_none( end = duration if num == len(subs) - 1 else float_or_none(
subs[num + 1].get('DisplayTimeOffset')) dict_get(subs[num + 1], TIME_OFFSET_KEYS))
if end is None: if end is None:
continue continue
srt += os.linesep.join( srt += os.linesep.join(