diff options
author | Yen Chi Hsuan <yan12125@gmail.com> | 2016-02-26 14:58:29 +0800 |
---|---|---|
committer | Yen Chi Hsuan <yan12125@gmail.com> | 2016-02-26 14:58:29 +0800 |
commit | f52354a88927eb66bcb1f603d2d91162b5bd2b5f (patch) | |
tree | 82c74cfcd7f572e5d70547035fbf62960b8114a0 /youtube_dl/extractor/iqiyi.py | |
parent | 59f898b7a72284efb994a8c6baee7771046226dd (diff) |
[utils] Move codes for handling eval() from iqiyi.py
Diffstat (limited to 'youtube_dl/extractor/iqiyi.py')
-rw-r--r-- | youtube_dl/extractor/iqiyi.py | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/youtube_dl/extractor/iqiyi.py b/youtube_dl/extractor/iqiyi.py index 76ecd55a4..2b3952210 100644 --- a/youtube_dl/extractor/iqiyi.py +++ b/youtube_dl/extractor/iqiyi.py @@ -18,7 +18,7 @@ from ..compat import ( compat_urllib_parse_urlparse, ) from ..utils import ( - base_n, + decode_packed_codes, ExtractorError, ohdave_rsa_encrypt, remove_start, @@ -130,28 +130,8 @@ class IqiyiSDKInterpreter(object): def __init__(self, sdk_code): self.sdk_code = sdk_code - def decode_eval_codes(self): - self.sdk_code = self.sdk_code[5:-3] - - mobj = re.search( - r"'([^']+)',62,(\d+),'([^']+)'\.split\('\|'\),[^,]+,{}", - self.sdk_code) - obfucasted_code, count, symbols = mobj.groups() - count = int(count) - symbols = symbols.split('|') - symbol_table = {} - - while count: - count -= 1 - b62count = base_n(count, 62) - symbol_table[b62count] = symbols[count] or b62count - - self.sdk_code = re.sub( - r'\b(\w+)\b', lambda mobj: symbol_table[mobj.group(0)], - obfucasted_code) - def run(self, target, ip, timestamp): - self.decode_eval_codes() + self.sdk_code = decode_packed_codes(self.sdk_code) functions = re.findall(r'input=([a-zA-Z0-9]+)\(input', self.sdk_code) |