Skip to content

Instantly share code, notes, and snippets.

@QRcode1337
Created April 7, 2021 20:30
Show Gist options
  • Save QRcode1337/11acdd59c5c6379dd6f9d09088787f94 to your computer and use it in GitHub Desktop.
Save QRcode1337/11acdd59c5c6379dd6f9d09088787f94 to your computer and use it in GitHub Desktop.
Gematria Primus conversion as a node module(?)
function swap(json) {
var ret = {};
for (var key in json) {
ret[json[key]] = key;
}
return ret;
}
module.exports.r2l = {
"ᚠ": "F",
"ᚢ": "U",
"ᚦ": "TH",
"ᚩ": "O",
"ᚱ": "R",
"ᚳ": "K",
"ᚷ": "G",
"ᚹ": "W",
"ᚻ": "H",
"ᚾ": "N",
"ᛁ": "I",
"ᛄ": "J",
"ᛇ": "EO",
"ᛈ": "P",
"ᛉ": "X",
"ᛋ": "S",
"ᛏ": "T",
"ᛒ": "B",
"ᛖ": "E",
"ᛗ": "M",
"ᛚ": "L",
"ᛝ": "NG",
"ᛟ": "OE",
"ᛞ": "D",
"ᚪ": "A",
"ᚫ": "AE",
"ᚣ": "Y",
"ᛡ": "IO",
"ᛠ": "EA"
}
module.exports.l2n = {
"F": 2,
"U": 3,
"TH": 5,
"O": 7,
"R": 11,
"K": 13,
"G": 17,
"W": 19,
"H": 23,
"N": 29,
"I": 31,
"J": 37,
"EO": 41,
"P": 43,
"X": 47,
"S": 53,
"T": 59,
"B": 61,
"E": 67,
"M": 71,
"L": 73,
"NG": 79,
"OE": 83,
"D": 89,
"A": 97,
"AE": 101,
"Y": 103,
"IO": 107,
"EA": 109
}
module.exports.r2n = {
"ᚠ": 2,
"ᚢ": 3,
"ᚦ": 5,
"ᚩ": 7,
"ᚱ": 11,
"ᚳ": 13,
"ᚷ": 17,
"ᚹ": 19,
"ᚻ": 23,
"ᚾ": 29,
"ᛁ": 31,
"ᛄ": 37,
"ᛇ": 41,
"ᛈ": 43,
"ᛉ": 47,
"ᛋ": 53,
"ᛏ": 59,
"ᛒ": 61,
"ᛖ": 67,
"ᛗ": 71,
"ᛚ": 73,
"ᛝ": 79,
"ᛟ": 83,
"ᛞ": 89,
"ᚪ": 97,
"ᚫ": 101,
"ᚣ": 103,
"ᛡ": 107,
"ᛠ": 109
}
module.exports.n2l = swap(module.exports.l2n);
module.exports.l2r = swap(module.exports.r2l);
module.exports.n2r = swap(module.exports.r2n);
module.exports.atbash = {
"F": "EA",
"U": "IO",
"TH": "Y",
"O": "AE",
"R": "A",
"K": "D",
"G": "OE",
"W": "NG",
"H": "L",
"N": "M",
"I": "E",
"J": "B",
"EO": "T",
"P": "S",
"X": "X",
"S": "P",
"T": "EO",
"B": "J",
"E": "I",
"M": "N",
"L": "H",
"NG": "W",
"OE": "G",
"D": "K",
"A": "R",
"AE": "O",
"Y": "TH",
"IO": "U",
"EA": "F"
}
// bad code, ignore
module.exports.parseLatin = function(input){
let parsed = [];
let split = input.split("");
for(var i=0;i<split.length;i++){
let char = split.shift().toUpperCase();
if(["E","I","A","O","N","T"].indexOf(char) > -1){
switch(char){
case "E":
if(split[0]=="O"||split[0]=="A"){
char += split.shift().toUpperCase();
break;
}
break;
case "I":
if(split[0]=="O"){
char += split.shift().toUpperCase();
break;
}
break;
case "A":
if(split[0]=="E"){
char += split.shift().toUpperCase();
break;
}
break;
case "O":
if(split[0]=="E"){
char += split.shift().toUpperCase();
break;
}
break;
case "N":
if(split[0]=="G"){
char += split.shift().toUpperCase();
break;
}
break;
case "T":
if(split[0]=="H"){
char += split.shift().toUpperCase();
break;
}
break;
}
}
parsed.push(char);
}
return parsed;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment