-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
117 lines (107 loc) · 2.84 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
var decodeRef = {
'░█': 'a',
'█░░░': 'b',
'█░█░': 'c',
'█░░': 'd',
'░': 'e',
'░░█░': 'f',
'██░': 'g',
'░░░░': 'h',
'░░': 'i',
'░███': 'j',
'█░█': 'k',
'░█░░': 'l',
'██': 'm',
'█░': 'n',
'███': 'o',
'░██░': 'p',
'██░█': 'q',
'░█░': 'r',
'░░░': 's',
'█': 't',
'░░█': 'u',
'░░░█': 'v',
'░██': 'w',
'█░░█': 'x',
'█░██': 'y',
'██░░': 'z',
'░████': '1',
'░░███': '2',
'░░░██': '3',
'░░░░█': '4',
'░░░░░': '5',
'█░░░░': '6',
'██░░░': '7',
'███░░': '8',
'████░': '9',
'█████': '0',
};
var encodeRef = {
'a': '░█',
'b': '█░░░',
'c': '█░█░',
'd': '█░░',
'e': '░',
'f': '░░█░',
'g': '██░',
'h': '░░░░',
'i': '░░',
'j': '░███',
'k': '█░█',
'l': '░█░░',
'm': '██',
'n': '█░',
'o': '███',
'p': '░██░',
'q': '██░█',
'r': '░█░',
's': '░░░',
't': '█',
'u': '░░█',
'v': '░░░█',
'w': '░██',
'x': '█░░█',
'y': '█░██',
'z': '██░░',
'1': '░████',
'2': '░░███',
'3': '░░░██',
'4': '░░░░█',
'5': '░░░░░',
'6': '█░░░░',
'7': '██░░░',
'8': '███░░',
'9': '████░',
'0': '█████',
};
function encode() {
let humanField = document.getElementById("humanReadable");
let mittyField = document.getElementById("mittyCypher");
let cypher = humanField.value.toLowerCase()
// seperate words
.split(' ')
.map(word =>
// words -> letters
word.split('').map(letter =>
// tranlate each letter
/^[a-z0-9]*$/gi.test(letter) ?
// put in the half blocks ▀
encodeRef[letter].split('').join('▀') : letter
// seperate them with spaces
).join(' ')
).join(' ');
// write it to the mitty box
mittyField.value = cypher;
}
function decode() {
let humanField = document.getElementById("humanReadable");
let mittyField = document.getElementById("mittyCypher");
let clean = mittyField.value.replaceAll('▀', '');
let decyphered = clean.split(' ')
.map(letter =>
!letter.includes('█') && !letter.includes('░') ?
letter : decodeRef[letter]
).join('');
humanField.value = decyphered
}
encode();