mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[drtv] Allow fractional timestamps (Fixes #4059)
This commit is contained in:
		| @@ -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() | ||||||
| @@ -938,7 +938,7 @@ def parse_iso8601(date_str, delimiter='T'): | |||||||
|             timezone = datetime.timedelta( |             timezone = datetime.timedelta( | ||||||
|                 hours=sign * int(m.group('hours')), |                 hours=sign * int(m.group('hours')), | ||||||
|                 minutes=sign * int(m.group('minutes'))) |                 minutes=sign * int(m.group('minutes'))) | ||||||
|     date_format =  '%Y-%m-%d{0}%H:%M:%S'.format(delimiter) |     date_format = '%Y-%m-%d{0}%H:%M:%S'.format(delimiter) | ||||||
|     dt = datetime.datetime.strptime(date_str, date_format) - timezone |     dt = datetime.datetime.strptime(date_str, date_format) - timezone | ||||||
|     return calendar.timegm(dt.timetuple()) |     return calendar.timegm(dt.timetuple()) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister