Browse Source

[utils] Add support for zero years and months in parse_duration

master-ytdl-org
Sergey M․ 7 years ago
parent
commit
056653bbb1
No known key found for this signature in database GPG Key ID: 2C393E0F18A9236D
2 changed files with 12 additions and 1 deletions
  1. +1
    -0
      test/test_utils.py
  2. +11
    -1
      youtube_dl/utils.py

+ 1
- 0
test/test_utils.py View File

@ -540,6 +540,7 @@ class TestUtil(unittest.TestCase):
self.assertEqual(parse_duration('87 Min.'), 5220)
self.assertEqual(parse_duration('PT1H0.040S'), 3600.04)
self.assertEqual(parse_duration('PT00H03M30SZ'), 210)
self.assertEqual(parse_duration('P0Y0M0DT0H4M20.880S'), 260.88)
def test_fix_xml_ampersands(self):
self.assertEqual(


+ 11
- 1
youtube_dl/utils.py View File

@ -1835,10 +1835,20 @@ def parse_duration(s):
days, hours, mins, secs, ms = m.groups()
else:
m = re.match(
r'''(?ix)(?:P?T)?
r'''(?ix)(?:P?
(?:
[0-9]+\s*y(?:ears?)?\s*
)?
(?:
[0-9]+\s*m(?:onths?)?\s*
)?
(?:
[0-9]+\s*w(?:eeks?)?\s*
)?
(?:
(?P<days>[0-9]+)\s*d(?:ays?)?\s*
)?
T)?
(?:
(?P<hours>[0-9]+)\s*h(?:ours?)?\s*
)?


Loading…
Cancel
Save