diff --git a/scripts/python/vomit.py b/scripts/python/vomit.py new file mode 100644 index 0000000..dee77e7 --- /dev/null +++ b/scripts/python/vomit.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# do some fake n fancy encryption shit - developed by wrk + +import weechat +import random +import string +import time + +def get_random_unicode(): + try: + get_char = unichr + except NameError: + get_char = chr + include_ranges = [ + ( 0x0021, 0x0021 ), + ( 0x0023, 0x0026 ), + ( 0x0028, 0x007E ), + ( 0x00A1, 0x00AC ), + ( 0x00AE, 0x00FF ), + ( 0x0100, 0x017F ), + ( 0x0180, 0x024F ), + ( 0x2C60, 0x2C7F ), + ( 0x16A0, 0x16F0 ), + ( 0x0370, 0x0377 ), + ( 0x037A, 0x037E ), + ( 0x0384, 0x038A ), + ( 0x038C, 0x038C ), + ] + alphabet = [ + get_char(code_point) for current_range in include_ranges + for code_point in range(current_range[0], current_range[1] + 1) + ] + return random.choice(alphabet) + +def cmd_vomit(data, buf, msg): + dec_bools = [False for _ in range(len(msg))] + indices = list(range(len(msg))) + random.shuffle(indices) + while len(indices) > 0: + idx = indices.pop() + ret_str = "" + is_dec = True + for i in range(len(dec_bools)): + if dec_bools[i]: + if not is_dec: + is_dec=True + ret_str += "\x0f" + ret_str += msg[i] + else: + if is_dec: + is_dec=False + ret_str += f"\x03{random.choice([3, 9]):02d}" + ret_str += get_random_unicode() + dec_bools[idx] = True + weechat.command(buf, f'/input send {ret_str}') + enc_str = ret_str + time.sleep(0.1) + weechat.command(buf, f'/input send {msg}') + return weechat.WEECHAT_RC_OK + +if weechat.register('vomit', 'wrk', '1.0', 'ISC', 'vomit text', '', ''): + weechat.hook_command('vomit', 'vomit text', '', '', '', 'cmd_vomit', '') \ No newline at end of file