[utils] Fix unified_timestamp for formats parsed by parsedate_tz()
This commit is contained in:
parent
b02b960c6b
commit
7dc2a74e0a
2 changed files with 4 additions and 3 deletions
|
@ -308,6 +308,7 @@ class TestUtil(unittest.TestCase):
|
||||||
self.assertEqual(unified_timestamp('25-09-2014'), 1411603200)
|
self.assertEqual(unified_timestamp('25-09-2014'), 1411603200)
|
||||||
self.assertEqual(unified_timestamp('27.02.2016 17:30'), 1456594200)
|
self.assertEqual(unified_timestamp('27.02.2016 17:30'), 1456594200)
|
||||||
self.assertEqual(unified_timestamp('UNKNOWN DATE FORMAT'), None)
|
self.assertEqual(unified_timestamp('UNKNOWN DATE FORMAT'), None)
|
||||||
|
self.assertEqual(unified_timestamp('May 16, 2016 11:15 PM'), 1463440500)
|
||||||
|
|
||||||
def test_determine_ext(self):
|
def test_determine_ext(self):
|
||||||
self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4')
|
self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4')
|
||||||
|
|
|
@ -1101,7 +1101,7 @@ def unified_timestamp(date_str, day_first=True):
|
||||||
|
|
||||||
date_str = date_str.replace(',', ' ')
|
date_str = date_str.replace(',', ' ')
|
||||||
|
|
||||||
pm_delta = datetime.timedelta(hours=12 if re.search(r'(?i)PM', date_str) else 0)
|
pm_delta = 12 if re.search(r'(?i)PM', date_str) else 0
|
||||||
timezone, date_str = extract_timezone(date_str)
|
timezone, date_str = extract_timezone(date_str)
|
||||||
|
|
||||||
# Remove AM/PM + timezone
|
# Remove AM/PM + timezone
|
||||||
|
@ -1109,13 +1109,13 @@ def unified_timestamp(date_str, day_first=True):
|
||||||
|
|
||||||
for expression in date_formats(day_first):
|
for expression in date_formats(day_first):
|
||||||
try:
|
try:
|
||||||
dt = datetime.datetime.strptime(date_str, expression) - timezone + pm_delta
|
dt = datetime.datetime.strptime(date_str, expression) - timezone + datetime.timedelta(hours=pm_delta)
|
||||||
return calendar.timegm(dt.timetuple())
|
return calendar.timegm(dt.timetuple())
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
timetuple = email.utils.parsedate_tz(date_str)
|
timetuple = email.utils.parsedate_tz(date_str)
|
||||||
if timetuple:
|
if timetuple:
|
||||||
return calendar.timegm(timetuple.timetuple())
|
return calendar.timegm(timetuple) + pm_delta * 3600
|
||||||
|
|
||||||
|
|
||||||
def determine_ext(url, default_ext='unknown_video'):
|
def determine_ext(url, default_ext='unknown_video'):
|
||||||
|
|
Loading…
Reference in a new issue