owospeak
Version:
p-pwease owo my uwu~ UwU
55 lines (54 loc) • 2.41 kB
JavaScript
;
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;