瀏覽代碼

[theplatform] Fix for Python 3.2

test_AENetworks{,_1} fails as in Python < 3.3, binascii.a2b_* functions
accepts only bytes-like objects
Yen Chi Hsuan 9 年之前
父節點
當前提交
dcf094d626
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      youtube_dl/extractor/theplatform.py

+ 3 - 3
youtube_dl/extractor/theplatform.py

@@ -159,11 +159,11 @@ class ThePlatformIE(ThePlatformBaseIE):
         def str_to_hex(str):
         def str_to_hex(str):
             return binascii.b2a_hex(str.encode('ascii')).decode('ascii')
             return binascii.b2a_hex(str.encode('ascii')).decode('ascii')
 
 
-        def hex_to_str(hex):
-            return binascii.a2b_hex(hex)
+        def hex_to_bytes(hex):
+            return binascii.a2b_hex(hex.encode('ascii'))
 
 
         relative_path = re.match(r'https?://link.theplatform.com/s/([^?]+)', url).group(1)
         relative_path = re.match(r'https?://link.theplatform.com/s/([^?]+)', url).group(1)
-        clear_text = hex_to_str(flags + expiration_date + str_to_hex(relative_path))
+        clear_text = hex_to_bytes(flags + expiration_date + str_to_hex(relative_path))
         checksum = hmac.new(sig_key.encode('ascii'), clear_text, hashlib.sha1).hexdigest()
         checksum = hmac.new(sig_key.encode('ascii'), clear_text, hashlib.sha1).hexdigest()
         sig = flags + expiration_date + checksum + str_to_hex(sig_secret)
         sig = flags + expiration_date + checksum + str_to_hex(sig_secret)
         return '%s&sig=%s' % (url, sig)
         return '%s&sig=%s' % (url, sig)