- def openload_level2_debase(m):
- radix, num = int(m.group(1)) + 27, int(m.group(2))
- return '"' + encode_base_n(num, radix) + '"'
-
- @classmethod
- def openload_level2(cls, txt):
- # The function name is ǃ \u01c3
- # Using escaped unicode literals does not work in Python 3.2
- return re.sub(r'ǃ\((\d+),(\d+)\)', cls.openload_level2_debase, txt, re.UNICODE).replace('"+"', '')
-
- # Openload uses a variant of aadecode
- # openload_decode and related functions are originally written by
- # vitas@matfyz.cz and released with public domain
- # See https://github.com/rg3/youtube-dl/issues/8489
- @classmethod
- def openload_decode(cls, txt):
- symbol_table = [
- ('_', '(゚Д゚) [゚Θ゚]'),
- ('a', '(゚Д゚) [゚ω゚ノ]'),
- ('b', '(゚Д゚) [゚Θ゚ノ]'),
- ('c', '(゚Д゚) [\'c\']'),
- ('d', '(゚Д゚) [゚ー゚ノ]'),
- ('e', '(゚Д゚) [゚Д゚ノ]'),
- ('f', '(゚Д゚) [1]'),
-
- ('o', '(゚Д゚) [\'o\']'),
- ('u', '(o゚ー゚o)'),
- ('c', '(゚Д゚) [\'c\']'),
-
- ('7', '((゚ー゚) + (o^_^o))'),
- ('6', '((o^_^o) +(o^_^o) +(c^_^o))'),
- ('5', '((゚ー゚) + (゚Θ゚))'),
- ('4', '(-~3)'),
- ('3', '(-~-~1)'),
- ('2', '(-~1)'),
- ('1', '(-~0)'),
- ('0', '((c^_^o)-(c^_^o))'),
- ]
- delim = '(゚Д゚)[゚ε゚]+'
- ret = ''
- for aachar in txt.split(delim):
- for val, pat in symbol_table:
- aachar = aachar.replace(pat, val)
- aachar = aachar.replace('+ ', '')
- m = re.match(r'^\d+', aachar)
- if m:
- ret += compat_chr(int(m.group(0), 8))
- else:
- m = re.match(r'^u([\da-f]+)', aachar)
- if m:
- ret += compat_chr(int(m.group(1), 16))
- return cls.openload_level2(ret)