diff options
author | Yen Chi Hsuan <yan12125@gmail.com> | 2016-06-26 15:16:49 +0800 |
---|---|---|
committer | Yen Chi Hsuan <yan12125@gmail.com> | 2016-06-26 15:16:49 +0800 |
commit | 1143535d762fc4260aacc108f2c41079867f9f00 (patch) | |
tree | 2cb797f25191ad658652d5d963505462e6ec6833 | |
parent | 7d52c052efe7accf098bca84aef0ea70caa64889 (diff) |
[utils] Add urshift()
Used in IqiyiIE and LeIE
-rw-r--r-- | test/test_utils.py | 5 | ||||
-rw-r--r-- | youtube_dl/utils.py | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index 7f9385deb..ed61e4c27 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -66,6 +66,7 @@ from youtube_dl.utils import ( lowercase_escape, url_basename, urlencode_postdata, + urshift, update_url_query, version_tuple, xpath_with_ns, @@ -980,5 +981,9 @@ The first line self.assertRaises(ValueError, encode_base_n, 0, 70) self.assertRaises(ValueError, encode_base_n, 0, 60, custom_table) + def test_urshift(self): + self.assertEqual(urshift(3, 1), 1) + self.assertEqual(urshift(-3, 1), 2147483646) + if __name__ == '__main__': unittest.main() diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index a375282f2..a2cfb48a6 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -2899,3 +2899,7 @@ def parse_m3u8_attributes(attrib): val = val[1:-1] info[key] = val return info + + +def urshift(val, n): + return val >> n if val >= 0 else (val + 0x100000000) >> n |