Correct typo - bitreich-bitmasquerade - Scripts for bitreich's new years eve bitmasqurade DIR Log DIR Files DIR Refs --- DIR commit 671752e65924e21870aa288dc51f7145dfcab61b DIR parent a3806a5f142f1c09759b77a77a899c05dfa5ec42 HTML Author: Scarlett McAllister <no+reply@roygbyte.com> Date: Sat, 23 Dec 2023 14:08:21 -0400 Correct typo Diffstat: D atellier.dcgi | 129 ------------------------------- M index.gph | 4 ++-- 2 files changed, 2 insertions(+), 131 deletions(-) --- DIR diff --git a/atellier.dcgi b/atellier.dcgi @@ -1,129 +0,0 @@ -#!/usr/bin/env python -# coding=utf-8 - -from functools import reduce -import re -import sys - -geomyidae_host = "server" -geomyidae_port = "port" -bitmask_selection = [ '010101010101', '110001100011', '001110011100', - '101010101010', '100000100001', '011111111110', - '000010010000', '100010001001', '010010001000', - '100110001110', '111111101111', '011000100010'] -bitwise_selection = ['Flip', 'Set', 'Clear'] -bitwise_operations = {'Flip' : lambda a, b: a ^ b, - 'Set' : lambda a, b: a | b, - 'Clear' : lambda a, b: a & b} - -def string_to_binary(s, bits): - return ''.join([format(ord(c), '0{}b'.format(bits)) for c in s]) - -def strip_char_to_ascii_range(s, start, end): - range = [format(ord(a), 'x') for a in [start, end]] - patt = r'[^\x{}-\x{}]+'.format(*range) - return re.sub(patt, '', s) - -def strip_to_max_len(s): - return s[:16] - -def print_nick_fail(): - print("Pardon, but I'll need your name") - -def print_step_1_template(nick): - gph_menu_link = lambda s: \ - '[1|{}|atellier.dcgi?{} {}|{}|{}]'.format(s, nick, s, - geomyidae_host, geomyidae_port) - gph_links = '\n'.join(map(gph_menu_link, bitmask_selection)) - with open('step_1.txt', 'r') as file: - print(file.read().format(nick, gph_links)) - -def print_step_2_template(nick, bitmask): - gph_menu_link = lambda s: \ - '[1|{}|atellier.dcgi?{} {} {}|{}|{}]'.format(s, nick, bitmask, s, - geomyidae_host, geomyidae_port) - gph_links = '\n'.join(map(gph_menu_link, bitwise_selection)) - with open('step_2.txt', 'r') as file: - print(file.read().format(nick, gph_links)) - -def print_completion(nick, bitmask, bitwise, mask): - with open('step_complete.txt', 'r') as file: - print(file.read().format(nick, bitmask, bitwise, mask)) - -def make_mask(nick, bitmask, bitwise): - bits = len(nick) - binary_nick = string_to_binary(nick, bits) - # print(binary_nick) - def bit_picker(remaining, accm=""): - if len(accm) == 0: - # Recursion entry point: accumulate first element of - # the list. - return bit_picker(remaining[1:], remaining[0:1]) - if remaining == "": - # Recursion exit point: return the accumulated elements. - return accm - # Main loop: return the current element that corresponds - # with the current multiple of the remaining chars - multiple = int(len(remaining)/bits) - if (len(remaining) % bits) == multiple: - accm = accm + remaining[0:1] - # print(remaining) - return bit_picker(remaining[1:], accm) - return bit_picker(remaining[1:], accm) - selected_bits = bit_picker(binary_nick) - bitmask = bitmask[:len(selected_bits)] - bin_1 = int(selected_bits, 2) - bin_2 = int(bitmask, 2) - return bin(bitwise_operations[bitwise](bin_2, bin_1))\ - [2:].zfill(len(selected_bits)) - -def print_args_fail(): - print("Pardon, but something's not working.") - -def print_bitmask_fail(): - print("Pardon, but that bitmask isn't available.") - -def main(args): - geomyidae_search = args[1] - geomyidae_args = args[2].split(' ') # tab splitting - if geomyidae_search: - # Get the search result, which will be this - # person's nick, and ask them to pick a bitmask from - # the list printed out in the step 1 template. - nick = strip_char_to_ascii_range(geomyidae_search, '!', '~') - nick = strip_to_max_len(nick) - if nick != '': - print_step_1_template(nick) - else: - print_nick_fail() - sys.exit() - # Validate and clear up the input from the bitmask - # selection. - if len(geomyidae_args) < 2: - print_args_fail() - sys.exit() - nick = strip_char_to_ascii_range(geomyidae_args[0], '!', '~') - nick = strip_to_max_len(nick) - bitmask = geomyidae_args[1] - if nick == '': - print_nick_fail() - sys.exit() - if bitmask not in bitmask_selection: - print_bitmask_fail() - sys.exit() - if len(geomyidae_args) == 2: - # Get the prson to choose their bitwise operation. - print_step_2_template(nick, bitmask) - else: # - bitwise = geomyidae_args[2] - if bitwise not in bitwise_selection: - print_bitmask_fail() - sys.exit() - # Finish up by making combining the nick, bitmask, - # and bitwise operation. - mask = make_mask(nick, bitmask, bitwise) - print_completion(nick, bitmask[:len(nick)], bitwise, mask) - sys.exit() - -if __name__ == "__main__": - sys.exit(main(sys.argv)) DIR diff --git a/index.gph b/index.gph @@ -17,7 +17,7 @@ to reveal WHO YOU REALLY ARE. Don't have a BITMASK? DON'T WORRY! - Bitreich's FINEST ATTELLIER + Bitreich's FINEST ATELIER will make you your very own BEDAZZELED BITMASK! @@ -26,7 +26,7 @@ Don't have a BITMASK? DON'T WORRY! to SET, CLEAR, or FLIP your way into the NEW YEAR! -[7| Your nick, sir?|atellier.dcgi?|server|port] +[7| Your nick, sir?|atelier.dcgi?|server|port] [1|<< back to bitreich.org||server|port]