Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import argparse
- import regex as re
- from bitstring import BitArray
- keys_len = 4
- syms_encode = {
- '0000': 'ПУК',
- '0001': 'СРЕНЬК',
- '0010': 'ХРЮК',
- '0011': 'УИИИ',
- '0100': 'ЛАХТА',
- '0101': 'ЛИБЕРАХА',
- '0110': 'ХОХЛЫ',
- '0111': 'СВИНОСОБАКА',
- '1000': 'ШВАЙНОКАРАСЬ',
- '1001': 'ЛОЛ',
- '1010': 'КЕК',
- '1011': 'АБУ',
- '1100': 'ДВАЧ',
- '1101': 'ПАРАША',
- '1110': 'ПОРИДЖ',
- '1111': 'ХРЮЧЕВО'}
- syms_decode = {v: k for k, v in syms_encode.items()}
- def decode(string):
- return BitArray(''.join(['0b'] + [syms_decode[s]*int(c and c or 1) for (c, s) in re.findall(r'(\d*)(\w+)-?', string)])).bytes.decode()
- def encode(string):
- def join(l):
- result = [l[0]]
- last = None
- for e in l[1:]:
- if last == e:
- result[-1] += e
- else:
- result.append(e)
- last = e
- return result
- return '-'.join([f'{len(g)//keys_len > 1 and len(g)//keys_len or ""}{syms_encode[g[:keys_len]]}' for g in join(re.findall(f'([01]{{{keys_len}}})', BitArray(string.encode()).bin))])
- if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='Encode and decode 2ch.hk fart code.')
- parser.add_argument('string', metavar='string', type=str,
- help='string for process')
- function = parser.add_mutually_exclusive_group(required=True)
- function.add_argument('-d', '--decode', dest='function', action='store_const',
- const=decode, help='decode string')
- function.add_argument('-e', '--encode', dest='function', action='store_const',
- const=encode, help='encode string')
- args = parser.parse_args()
- print(args.function(args.string))
Add Comment
Please, Sign In to add comment