[utils] Add generic caesar cipher and rot47

This commit is contained in:
Sergey M․ 2019-11-27 02:26:42 +07:00
parent 6ddd4bf6ac
commit 1ced222120
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
2 changed files with 29 additions and 0 deletions

View file

@ -5383,6 +5383,19 @@ def decode_packed_codes(code):
obfucasted_code)
def caesar(s, alphabet, shift):
if shift == 0:
return s
l = len(alphabet)
return ''.join(
alphabet[(alphabet.index(c) + shift) % l] if c in alphabet else c
for c in s)
def rot47(s):
return caesar(s, r'''!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~''', 47)
def parse_m3u8_attributes(attrib):
info = {}
for (key, val) in re.findall(r'(?P<key>[A-Z0-9-]+)=(?P<val>"[^"]+"|[^",]+)(?:,|$)', attrib):