UNPKG

owospeak

Version:
55 lines (54 loc) 2.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.face = exports.convert = void 0; const face_1 = __importDefault(require("./face")); exports.face = face_1.default; const util_1 = require("./util"); /** * @param {message} message - The message to convert * @param {Object} options - Options for converting the message */ function convert(message, options = { stutter: true, tilde: true }) { const opts = Object.assign({ stutter: true, tilde: true }, options); const inputArray = message.split(/\s+/); const inputArrayURLRemoved = inputArray.filter((word) => !word.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/)); if (inputArrayURLRemoved.length <= 0) return message; let edited = inputArrayURLRemoved.join(" "); // Put Filters Here edited = edited.replace(/[lr]/g, "w"); edited = edited.replace(/[LR]/g, "W"); edited = util_1.replaceRegexMatchCase(/ock/gi, edited, "awk"); edited = util_1.replaceRegexMatchCase(/uck/gi, edited, "ek"); edited = util_1.replaceRegexMatchCase(/qu/gi, edited, "qw"); edited = util_1.addCharToRegexMatch(/(?<=n)[oaui]/gi, edited, "y"); edited = edited.replace(/o(?=u)/gi, ""); edited = util_1.replaceRegexMatchCase(/qu/gi, edited, "kw"); edited = util_1.replaceRegexMatchCase(/c(?=[eiy])/gi, edited, "s"); edited = util_1.replaceRegexMatchCase(/c(?!h)/gi, edited, "k"); edited = util_1.replaceRegexMatchCase(/(?<=[aeiou])x/gi, edited, "ks"); edited = util_1.replaceRegexMatchCase(/x(?=[aeiou])/gi, edited, "z"); edited = util_1.addCharToRegexMatch(/(?<=ex)[aiu]/gi, edited, "z"); // End Filters if (opts.stutter) { let editedArray = edited.split(" ").map((x) => { if (x.length > 2 && /[a-z]{2,}.*/ && util_1.random(5)) { let charInsert = x[0]; if (x[1] == "h") charInsert += "h"; x = charInsert + "-" + x; } return x; }); edited = editedArray.join(" "); } if (opts.tilde) edited += "~"; if (Math.random() < 0.5) edited += " " + face_1.default(); return edited; } exports.convert = convert;