This repository has been archived by the owner on Aug 22, 2023. It is now read-only.
/
zws.go
73 lines (61 loc) · 1.92 KB
/
zws.go
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
package main
import (
"strings"
)
// hey yeah if it works and its stupid it aint stupid
const characterIndex = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789."
var (
characterReference = []string{
"\U000E0050", "\U000E0043", "\U000E0034", "\U000E0035",
"\U000E002D", "\U000E002A", "\U000E005D", "\U000E002E",
"\U000E0026", "\U000E0024", "\U000E0058", "\U000E004E",
"\U000E0037", "\U000E0049", "\U000E0051", "\U000E0041",
"\U000E0028", "\U000E0027", "\U000E004B", "\U000E005E",
"\U000E0044", "\U000E0040", "\U000E004D", "\U000E0056",
"\U000E0060", "\U000E0055", "\U000E0030", "\U000E0023",
"\U000E0039", "\U000E004F", "\U000E0052", "\U000E002B",
"\U000E0057", "\U000E003C", "\U000E0053", "\U000E005B",
"\U000E003F", "\U000E0021", "\U000E003B", "\U000E0046",
"\U000E0031", "\U000E0059", "\U000E003E", "\U000E0047",
"\U000E005C", "\U000E003D", "\U000E0054", "\U000E0048",
"\U000E005F", "\U000E0038", "\U000E003A", "\U000E002F",
"\U000E005A", "\U000E0020", "\U000E0042", "\U000E0033",
"\U000E0036", "\U000E004A", "\U000E0022", "\U000E0045",
"\U000E0032", "\U000E002C", "\U000E0029", "\U000E0025",
"\U000E004C",
}
)
func GetCharacterIndex(s string) int {
return strings.Index(characterIndex, s)
}
func StringToZWS(baseStr string) string {
var completedStr string
for i := 0; i < len(baseStr); i++ {
r := characterReference[GetCharacterIndex(string(baseStr[i]))]
if len(r) == 0 {
// means we're trying to create a string without a character in the reference
return ""
}
completedStr += r
}
return completedStr
}
// what else am i supposed to call it dumbass
func ZWSToString(encodedStr string) string {
rL := []rune(encodedStr)
var finalStr string
for _, r := range rL {
match := false
for i, v := range characterReference {
if []rune(v)[0] == r {
match = true
finalStr += string(characterIndex[i])
break
}
}
if !match {
return ""
}
}
return finalStr
}