From 7990d1e6308c875e6d8e1940b957be5d7171be92 Mon Sep 17 00:00:00 2001 From: df Date: Mon, 13 Sep 2021 01:00:04 +0100 Subject: [PATCH] [utils] Disambiguate 4-digit year and time-zone suffix Restore check omitted from extract_timezone(); adjust DATE_FORMATS_DAY/MONTH_FIRST; add tests. --- test/test_utils.py | 6 ++++++ youtube_dl/utils.py | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/test/test_utils.py b/test/test_utils.py index 3928173c8..58a79c8a8 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -405,6 +405,12 @@ class TestUtil(unittest.TestCase): self.assertEqual(unified_timestamp('December 31 1969 20:00:01 EDT'), 1) self.assertEqual(unified_timestamp('Wednesday 31 December 1969 18:01:26 MDT'), 86) self.assertEqual(unified_timestamp('12/31/1969 20:01:18 EDT', False), 78) + self.assertEqual(unified_timestamp('11:31 17-Jun-2021'), 1623929460) + self.assertEqual(unified_timestamp('11:31 17-Jun-2021-0000'), 1623929460) + from youtube_dl.utils import DATE_FORMATS_DAY_FIRST + DATE_FORMATS_DAY_FIRST.append('%H:%M %d-%m-%Y') + self.assertEqual(unified_timestamp('17:30 27-02-2016'), 1456594200) + self.assertEqual(unified_timestamp('17:30 27-02-2016-0000'), 1456594200) def test_determine_ext(self): self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4') diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index f35c71601..ff3479fbd 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python # coding: utf-8 from __future__ import unicode_literals @@ -1734,8 +1733,6 @@ ACCENT_CHARS = dict(zip('ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖŐ،٠'aaaaaa', ['ae'], 'ceeeeiiiionooooooo', ['oe'], 'uuuuuy', ['th'], 'y'))) DATE_FORMATS = ( - '%d %B %Y', - '%d %b %Y', '%B %d %Y', '%B %dst %Y', '%B %dnd %Y', @@ -1787,6 +1784,11 @@ DATE_FORMATS_DAY_FIRST.extend([ '%d/%m/%y', '%d/%m/%Y %H:%M:%S', '%d-%m-%Y %H:%M', + '%d %B %Y', + '%d %b %Y', + '%d-%b-%Y', + '%H:%M %d-%b-%Y', + '%H:%M:%S %d-%b-%Y', ]) DATE_FORMATS_MONTH_FIRST = list(DATE_FORMATS) @@ -1796,6 +1798,11 @@ DATE_FORMATS_MONTH_FIRST.extend([ '%m/%d/%Y', '%m/%d/%y', '%m/%d/%Y %H:%M:%S', + '%B %d %Y', + '%b %d %Y', + '%b-%d-%Y', + '%H:%M %b-%d-%Y', + '%H:%M:%S %b-%d-%Y', ]) PACKED_CODES_RE = r"}\('(.+)',(\d+),(\d+),'([^']+)'\.split\('\|'\)"