Introduction
Introduction Statistics Contact Development Disclaimer Help
ghost - annna - Annna the nice friendly bot.
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6…
Log
Files
Refs
Tags
README
---
ghost (1385B)
---
1 #!/usr/bin/env python
2 # coding=utf-8
3 #
4 # Copy me if you can.
5 # by 20h
6 #
7 # Idea from: https://github.com/xdpirate/ghost-translator/blob/main/ghos…
8
9 import os
10 import sys
11 import getopt
12
13 def human2ghost(s):
14 r = ""
15 for c in s:
16 binc = bin(ord(c)^96)[2:]
17 for j in binc:
18 if j == "1":
19 r += "O"
20 else:
21 r += "o"
22 r += " "
23 return r
24
25 def ghost2human(s):
26 r = ""
27 if len(s) == 0:
28 return r
29
30 for c in s.split(" "):
31 if len(c) == 0:
32 continue
33 b = ""
34 for j in c:
35 if j == "O":
36 b += "1"
37 elif j == "o":
38 b += "0"
39 r += str(chr(int(b, 2)^96))
40 return r
41
42 def usage(app):
43 app = os.path.basename(app)
44 print("usage: %s [-h] [-e|-d]" % (app), file=sys.stderr)
45 sys.exit(1)
46
47 def main(args):
48 try:
49 opts, largs = getopt.getopt(args[1:], "hed")
50 except getopt.GetoptError as err:
51 print(str(err))
52 usage(args[0])
53
54 dodecode=0
55 doencode=0
56
57 for o, a in opts:
58 if o == "-h":
59 usage(args[0])
60 elif o == "-d":
61 dodecode=1
62 elif o == "-e":
63 doencode=1
64 else:
65 assert False, "unhandled option"
66
67 ins = sys.stdin.read()
68 rs = None
69 if doencode:
70 words = ins.split(" ")
71 rs = " ".join([human2ghost(w) for w in words])
72 if dodecode:
73 words = ins.split(" ")
74 rs = " ".join([ghost2human(w) for w in words])
75 if rs != None:
76 print("%s" % (rs), end='')
77 else:
78 usage(args[0])
79
80 return 0
81
82 if __name__ == "__main__":
83 sys.exit(main(sys.argv))
84
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.