Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let allLanguages = ["🦊","🐦","🐉"];
- function gibberify(output, knownlang) {
- if (!state.dictionary) { buildDictionary(); }
- for(let l in allLanguages) {
- let lang = allLanguages[l];
- if(!knownlang.includes(lang)) {
- let regex = new RegExp('"'+lang+'.*?\."','gm');
- if(output.match(regex)) {
- output = output.replace(regex, x => {
- return generateGibberish(x, lang);
- });
- }
- }
- }
- return output;
- }
- function knownlangs() {
- let known = [];//["🐉"];
- for(let e = 0; e < worldInfo.length; e++) {
- if(worldInfo[e].keys.toLowerCase() == "known-languages") {
- let str = worldInfo[e].entry.split("\n");
- for(let l=0;l<str.length;l++) {
- console.log(str[l]);
- if(str[l].includes("#")) continue;
- known.push(str[l]);
- if(!allLanguages.includes(str[l]))
- allLanguages.push(str[l]);
- }
- }
- }
- console.log(known);
- return known;
- }
- function ungibberify(context, knownlang) {
- //console.log("A");
- if (!state.dictionary) { buildDictionary(); }
- for(let l in allLanguages) {
- let lang = allLanguages[l];
- let regex = new RegExp('"'+lang+'.*?\."','gm');
- if(context.match(regex)) {
- context = context.replace(regex, x => {
- let ret2 = degibber(x, lang);
- //console.log("Replacing " + x + " with " + ret2);
- return ret2;
- });
- }
- }
- return context;
- }
- function generateGibberish(input, lang) {
- const pattern = /\w*(?!\w)/g;
- return input.replace(pattern, x => {
- if(state.dictionary[lang][x.toLowerCase()]) return fixCase(x, state.dictionary[lang][x.toLowerCase()]);
- let ret = randomString(x, x.length);
- state.dictionary[lang][x.toLowerCase()] = ret.toLowerCase();
- state.dictionary[lang][ret.toLowerCase()] = x.toLowerCase();
- return ret;
- });
- }
- function degibber(input, lang) {
- const pattern = /\w*(?!\w)/g;
- return input.replace(pattern, x => {
- if(x.length < 1) return x;
- //console.log("B: " + x);
- if(state.dictionary[lang][x.toLowerCase()]+"" == "undefined") return x;
- //console.log("C: " + state.dictionary[lang][x.toLowerCase()]);
- if(state.dictionary[lang][x.toLowerCase()]) return fixCase(x, state.dictionary[lang][x.toLowerCase()]);
- return x;
- });
- }
- const vowels = ["a","a","a","a","e","e","e","e","e","i","i","i","o","o","o","u"];
- const consonnants = ["b","c","d","d","f","g","h","h","h","k","l","l","l","m","n","n","n","p","r","r","r","s","s","s","t","t","t","t","v","w","y"];
- function randomString(str, length) {
- let ret = "";
- for(let l=0;l<length;l++) {
- var r;
- if(l % 3 == 0) {
- r = Math.floor(Math.random()*vowels.length);
- ret += str.charAt(l) == str.charAt(l).toUpperCase() ? vowels[r].toUpperCase() : vowels[r];
- }
- else {
- r = Math.floor(Math.random()*consonnants.length);
- ret += str.charAt(l) == str.charAt(l).toUpperCase() ? consonnants[r].toUpperCase() : consonnants[r];
- }
- }
- return ret;
- }
- function fixCase(a, b) {
- var r = "";
- for(let v = 0; v < a.length; v++) {
- let av = a.charAt(v);
- r += av == av.toLowerCase() ? b.charAt(v) : b.charAt(v).toUpperCase();
- }
- return r;
- }
- function buildDictionary() {
- state.dictionary = {};
- for(let l in allLanguages) {
- let lang = allLanguages[l];
- state.dictionary[lang] = {};
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment