UNPKG

replace-word

Version:

Several tools for changing a word into something.

401 lines (383 loc) 11.3 kB
module.exports = { toEmoji: function toEmoji(n) { if (!n) throw new Error("[replace-word] word required!"); return n .toString() .toLowerCase() .replace(/0/g, "0️⃣") .replace(/1/g, "1️⃣") .replace(/2/g, "2️⃣") .replace(/3/g, "3️⃣") .replace(/4/g, "4️⃣") .replace(/5/g, "5️⃣") .replace(/6/g, "6️⃣") .replace(/7/g, "7️⃣") .replace(/8/g, "8️⃣") .replace(/9/g, "9️⃣") .replace(/a/g, "🇦 ") .replace(/b/g, "🇧 ") .replace(/c/g, "🇨 ") .replace(/d/g, "🇩 ") .replace(/e/g, "🇪 ") .replace(/f/g, "🇫 ") .replace(/g/g, "🇬 ") .replace(/h/g, "🇭 ") .replace(/i/g, "🇮 ") .replace(/j/g, "🇯 ") .replace(/k/g, "🇰 ") .replace(/l/g, "🇱 ") .replace(/m/g, "🇲 ") .replace(/n/g, "🇳 ") .replace(/o/g, "🇴 ") .replace(/p/g, "🇵 ") .replace(/q/g, "🇶 ") .replace(/r/g, "🇷 ") .replace(/s/g, "🇸 ") .replace(/t/g, "🇹 ") .replace(/u/g, "🇺 ") .replace(/v/g, "🇻 ") .replace(/w/g, "🇼 ") .replace(/x/g, "🇽 ") .replace(/y/g, "🇾 ") .replace(/z/g, "🇿 ") .replace(/#/g, "#️⃣") .replace(/!/g, "❗") .replace(/[*]/g, "*️⃣") .replace(/[?]/g, "❓"); }, hilih: function hilih(n) { if (!n) throw new Error("[replace-word] word required!"); return n .toString() .replace(/[aiueo]/g, "i") .replace(/[AIUEO]/g, "I"); }, alay: function alay(n) { if (!n) throw new Error("[replace-word] word required!"); return n .toString() .toLowerCase() .replace(/a/g, "4") .replace(/s/g, "5") .replace(/e/g, "3") .replace(/o/g, "0") .replace(/b/g, "8") .replace(/g/g, "9") .replace(/i/g, "1"); }, // lettero: function lettero(n) { // for (let i of "aiueo"){ // if (n.endsWith(i)){ // return n // } // } // }, clap: function clap(n) { if (!n) throw new Error("[replace-word] word required!"); return n.toString().replace(/ /g, "👏"); }, space: function space(n, emo) { if (!n) throw new Error("[replace-word] word required!"); if (!emo) throw new Error( "[replace-word] emoji or other something to be replaced required!" ); // const regex = /\p{Extended_Pictographic}/ug // if(regex.test(emo) == false) throw new Error("[replace-word] is not a valid emoji, usage: <>.space('text', 'emoji')") return n.toString().replace(/ /g, emo); }, owoify: function owoify(n) { if (!n) throw new Error("[replace-word] word required!"); const starts = [ "OWO", "OwO", "0w0", "<3", "UwU", "HIIII!", "H-hewwo??", "Huohhhh.", ]; const ends = [ "..", "fwendo", "Huoh.", "._.", ";-;", ";_;", "(;ω;)", "ÙωÙ", "UwU", "(人◕ω◕)", "(●´ω`●)", "(✿ ♡‿♡)", "(◠‿◠✿)", "^-^", "^_^", ">_<", ">_>", ":P", ":3", ";3", "x3", ":D", "xD", "XDDD", "(^v^)", "ㅇㅅㅇ", "(• o •)", "ʕ•̫͡•ʔ", "ʕʘ‿ʘʔ", "( '◟ ')", ]; const rand1 = starts[Math.floor(Math.random() * starts.length)]; const rand2 = ends[Math.floor(Math.random() * ends.length)]; const a = n .toString() .replace(/(l|r)/g, "w") .replace(/(L|R)/g, "W") .replace(/no/g, "nu") .replace(/(have|has)/g, "haz") .replace(/you/g, "uu") .replace(/n([aeiou])/g, "ny$1") .replace(/N([aeiou])|N([AEIOU])/g, "Ny$1") .replace(/ove/g, "uv") .replace(/nd(?= |$)/g, "ndo"); return `${rand1} ${a} ${rand2}`; }, aesthetic: function aesthetic(n) { if (!n) throw new Error("[replace-word] word required!"); return n .toString() .replace(/A/, "A") .replace(/B/, "B") .replace(/C/, "C") .replace(/D/, "D") .replace(/E/, "E") .replace(/F/, "F") .replace(/G/, "G") .replace(/H/, "H") .replace(/I/, "I") .replace(/J/, "J") .replace(/K/, "K") .replace(/L/, "L") .replace(/M/, "M") .replace(/N/, "N") .replace(/O/, "O") .replace(/P/, "P") .replace(/Q/, "Q") .replace(/R/, "R") .replace(/S/, "S") .replace(/T/, "T") .replace(/U/, "U") .replace(/V/, "V") .replace(/W/, "W") .replace(/X/, "X") .replace(/Y/, "Y") .replace(/Z/, "Z") .replace(/a/, "a") .replace(/b/, "b") .replace(/c/, "c") .replace(/d/, "d") .replace(/e/, "e") .replace(/f/, "f") .replace(/g/, "g") .replace(/h/, "h") .replace(/i/, "i") .replace(/j/, "j") .replace(/k/, "k") .replace(/l/, "l") .replace(/m/, "m") .replace(/n/, "n") .replace(/o/, "o") .replace(/p/, "p") .replace(/q/, "q") .replace(/r/, "r") .replace(/s/, "s") .replace(/t/, "t") .replace(/u/, "u") .replace(/v/, "v") .replace(/w/, "w") .replace(/x/, "x") .replace(/y/, "y") .replace(/z/, "z") .replace(/1/, "1") .replace(/2/, "2") .replace(/3/, "3") .replace(/4/, "4") .replace(/5/, "5") .replace(/6/, "6") .replace(/7/, "7") .replace(/8/, "8") .replace(/9/, "9") .replace(/0/, "0") .replace(/!/g, "!") .replace(/@/g, "@") .replace(/#/g, "#") .replace(/%/g, "%") .replace(/&/g, "&") .replace(/[(]/g, "(") .replace(/[)]/g, ")") .replace(/-/g, "-") .replace(/_/g, "_") .replace(/[+]/g, "+") .replace(/[?]/g, "?") .replace(/[*]/g, "*") .replace(/[.]/g, ".") .replace(/=/g, "=") .replace(/ /g, " ") }, emojipasta: function emojipasta(input, d, s) { if (!input) throw new Error("[replace-word] word required!"); var emojiData = require("./tools/emojify/emoji-data.json"); var constants_1 = require("./tools/emojify/constants"); var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var isInappropriate = function (str) { return constants_1.inappropriateEmojis.some(function (emoji) { return str.includes(emoji); }); }; var density = d; var shouldFilterEmojis = s; if (!density) { density = 100; } else { if (isNaN(density)) { throw new Error( "[replace-word] density in emojipasta must be a number!" ); } else if (density > 100) { throw new Error("[replace-word] max density in emojipasta is 100!"); } else if (density < 0) { throw new Error("[replace-word] min density in emojipasta is 0!"); } else { density = d; } } // if(!shouldFilterEmojis) { // shouldFilterEmojis = true; // } else { // if(typeof shouldFilterEmojis == "boolean") { // shouldFilterEmojis = shouldFilterEmojis // } else { // throw new Error("[replace-word] should Filter Emojis param in emojipasta must be boolean (true or false)!"); // } // } if (typeof s == "boolean" || !s) { shouldFilterEmojis = s; } else { throw new Error( "[replace-word] should Filter Emojis param in emojipasta must be boolean (true or false)!" ); } var words = input.replace(/\n/g, " ").split(" "); var result = words .reduce(function (acc, wordRaw) { var word = wordRaw.replace(/[^0-9a-zA-Z]/g, "").toLowerCase(); var accNext = "".concat(acc, " ").concat(wordRaw); var randomChoice = Math.random() * 100 <= density; var isTooCommon = constants_1.commonWords.has(word); var emojiFilter = shouldFilterEmojis ? function (option) { return !isInappropriate(option); } : function () { return true; }; var emojiOptions = Object.entries(emojiData[word] || {}) .filter(function (_a) { var option = _a[0]; return emojiFilter(option); }) .reduce(function (arr, _a) { var option = _a[0], frequency = _a[1]; return __spreadArray( __spreadArray([], arr, true), __spreadArray([], Array(frequency), true).fill(option), true ); }, []); if (isTooCommon || !randomChoice || emojiOptions.length === 0) { return accNext; } var emojis = emojiOptions[Math.floor(Math.random() * emojiOptions.length)]; return "".concat(accNext, " ").concat(emojis); }, "") .trim(); return result; }, toMorse: function toMorse(n) { if (!n) throw new Error("[replace-word] word required!"); return n .toString() .toLowerCase() .replace(/ /g, " ") .replace(/[.]/g, ".-.-.- ") .replace(/a/g, ".- ") .replace(/b/g, "-... ") .replace(/c/g, "-.-. ") .replace(/d/g, "-.. ") .replace(/e/g, ". ") .replace(/f/g, "..-. ") .replace(/g/g, "--. ") .replace(/h/g, ".... ") .replace(/i/g, ".. ") .replace(/j/g, ".--- ") .replace(/k/g, "-.- ") .replace(/l/g, "-.- ") .replace(/m/g, "-- ") .replace(/n/g, "-- ") .replace(/o/g, "--- ") .replace(/p/g, ".--. ") .replace(/q/g, "--.- ") .replace(/r/g, ".-. ") .replace(/s/g, "... ") .replace(/t/g, "- ") .replace(/u/g, "..- ") .replace(/v/g, "...- ") .replace(/w/g, ".-- ") .replace(/x/g, "-..- ") .replace(/y/g, "-.-- ") .replace(/z/g, "--.. ") .replace(/1/g, ".- ") .replace(/2/g, "..- ") .replace(/3/g, "...- ") .replace(/4/g, "....- ") .replace(/5/g, "..... ") .replace(/6/g, "-.... ") .replace(/7/g, "-... ") .replace(/8/g, "-.. ") .replace(/9/g, "-.. ") .replace(/0/g, "- ") .replace(/,/g, "-..- ") .replace(/[?]/g, "..-.. ") .replace(/=/g, "-...- "); }, toBinary: function toBinary(n) { if (!n) throw new Error("[replace-word] word required!"); return unescape(encodeURIComponent(n)) .split("") .map(function (txt) { let binary = txt.charCodeAt(0).toString(2); return "00000000".slice(binary.length) + binary; }) .join(" "); }, aestheticBrackets: function aestheticBrackets(n) { if (!n) throw new Error("[replace-word] word required!"); return `【${module.exports.aesthetic(n)}】` } };