aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2016-06-26 15:16:49 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2016-06-26 15:16:49 +0800
commit1143535d762fc4260aacc108f2c41079867f9f00 (patch)
tree2cb797f25191ad658652d5d963505462e6ec6833
parent7d52c052efe7accf098bca84aef0ea70caa64889 (diff)
[utils] Add urshift()
Used in IqiyiIE and LeIE
-rw-r--r--test/test_utils.py5
-rw-r--r--youtube_dl/utils.py4
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