Added manga-py source
This commit is contained in:
38
manga-py-stable_1.x/manga_py/crypt/ac_qq_com.py
Normal file
38
manga-py-stable_1.x/manga_py/crypt/ac_qq_com.py
Normal file
@@ -0,0 +1,38 @@
|
||||
class AcQqComCrypt:
|
||||
_provider = None
|
||||
_site_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||
|
||||
def __init__(self, provider):
|
||||
self._provider = provider
|
||||
|
||||
def decode(self, data):
|
||||
data = self._provider.re.sub('[^A-Za-z0-9%+/=]', '', data)
|
||||
a = ''
|
||||
e = 0
|
||||
while e < len(data) - 4:
|
||||
e += 1
|
||||
b = self._site_key.find(data[e])
|
||||
e += 1
|
||||
d = self._site_key.find(data[e])
|
||||
e += 1
|
||||
f = self._site_key.find(data[e])
|
||||
e += 1
|
||||
g = self._site_key.find(data[e])
|
||||
|
||||
b = b << 2 | d >> 4
|
||||
d = (d & 15) << 4 | f >> 2
|
||||
h = (f & 3) << 6 | g
|
||||
a += chr(b)
|
||||
|
||||
if f != 64:
|
||||
a += chr(d)
|
||||
if g != 64:
|
||||
a += chr(h)
|
||||
return self._protect(a)
|
||||
|
||||
def _protect(self, data):
|
||||
try:
|
||||
data = self._provider.re.search('({.+}})', data).group(1)
|
||||
return self._provider.json.loads(data)
|
||||
except Exception:
|
||||
return {}
|
||||
Reference in New Issue
Block a user