[drtv] Allow fractional timestamps (Fixes #4059)
parent
50c8266ef0
commit
6ad4013d40
|
@ -289,6 +289,7 @@ class TestUtil(unittest.TestCase):
|
||||||
self.assertEqual(parse_iso8601('2014-03-23T23:04:26+0100'), 1395612266)
|
self.assertEqual(parse_iso8601('2014-03-23T23:04:26+0100'), 1395612266)
|
||||||
self.assertEqual(parse_iso8601('2014-03-23T22:04:26+0000'), 1395612266)
|
self.assertEqual(parse_iso8601('2014-03-23T22:04:26+0000'), 1395612266)
|
||||||
self.assertEqual(parse_iso8601('2014-03-23T22:04:26Z'), 1395612266)
|
self.assertEqual(parse_iso8601('2014-03-23T22:04:26Z'), 1395612266)
|
||||||
|
self.assertEqual(parse_iso8601('2014-03-23T22:04:26.1234Z'), 1395612266)
|
||||||
|
|
||||||
def test_strip_jsonp(self):
|
def test_strip_jsonp(self):
|
||||||
stripped = strip_jsonp('cb ([ {"id":"532cb",\n\n\n"x":\n3}\n]\n);')
|
stripped = strip_jsonp('cb ([ {"id":"532cb",\n\n\n"x":\n3}\n]\n);')
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
from .subtitles import SubtitlesInfoExtractor
|
from .subtitles import SubtitlesInfoExtractor
|
||||||
from .common import ExtractorError
|
from .common import ExtractorError
|
||||||
from ..utils import parse_iso8601
|
from ..utils import parse_iso8601
|
||||||
|
@ -25,8 +23,7 @@ class DRTVIE(SubtitlesInfoExtractor):
|
||||||
}
|
}
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
video_id = self._match_id(url)
|
||||||
video_id = mobj.group('id')
|
|
||||||
|
|
||||||
programcard = self._download_json(
|
programcard = self._download_json(
|
||||||
'http://www.dr.dk/mu/programcard/expanded/%s' % video_id, video_id, 'Downloading video JSON')
|
'http://www.dr.dk/mu/programcard/expanded/%s' % video_id, video_id, 'Downloading video JSON')
|
||||||
|
@ -35,7 +32,7 @@ class DRTVIE(SubtitlesInfoExtractor):
|
||||||
|
|
||||||
title = data['Title']
|
title = data['Title']
|
||||||
description = data['Description']
|
description = data['Description']
|
||||||
timestamp = parse_iso8601(data['CreatedTime'][:-5])
|
timestamp = parse_iso8601(data['CreatedTime'])
|
||||||
|
|
||||||
thumbnail = None
|
thumbnail = None
|
||||||
duration = None
|
duration = None
|
||||||
|
|
|
@ -925,7 +925,7 @@ def parse_iso8601(date_str, delimiter='T'):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
m = re.search(
|
m = re.search(
|
||||||
r'Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$',
|
r'(\.[0-9]+)?(?:Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$)',
|
||||||
date_str)
|
date_str)
|
||||||
if not m:
|
if not m:
|
||||||
timezone = datetime.timedelta()
|
timezone = datetime.timedelta()
|
||||||
|
|
Loading…
Reference in New Issue