125 lines
3.6 KiB
JavaScript
125 lines
3.6 KiB
JavaScript
(() => {
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
|
|
// plugins/uwuifier/index.jsx
|
|
var uwuifier_exports = {};
|
|
__export(uwuifier_exports, {
|
|
onUnload: () => onUnload
|
|
});
|
|
var {
|
|
http: {
|
|
intercept
|
|
},
|
|
util: {
|
|
log
|
|
}
|
|
} = shelter;
|
|
var endings = [
|
|
"rawr x3",
|
|
"OwO",
|
|
"UwU",
|
|
"o.O",
|
|
"-.-",
|
|
">w<",
|
|
"(\u2445\u02D8\uA4B3\u02D8)",
|
|
"(\uA20D\u1D17\uA20D)",
|
|
"(\u02D8\u03C9\u02D8)",
|
|
"(U \u1D55 U\u2741)",
|
|
"\u03C3\u03C9\u03C3",
|
|
"\xF2\u03C9\xF3",
|
|
"(///\u02EC///\u273F)",
|
|
"(U \uFE4F U)",
|
|
"( \u0361o \u03C9 \u0361o )",
|
|
"\u0298w\u0298",
|
|
":3",
|
|
":3",
|
|
// important enough to have twice
|
|
":3",
|
|
// important enough to have thrice
|
|
"XD",
|
|
"nyaa~~",
|
|
"mya",
|
|
">_<",
|
|
"\u{1F633}",
|
|
"\u{1F97A}",
|
|
"\u{1F633}\u{1F633}\u{1F633}",
|
|
"rawr",
|
|
"^^",
|
|
"^^;;",
|
|
"(\u02C6 \uFECC \u02C6)\u2661",
|
|
"^\u2022\uFECC\u2022^",
|
|
"/(^\u2022\u03C9\u2022^)",
|
|
"(\u273Fo\u03C9o)"
|
|
];
|
|
var replacements = [["small", "smol"], ["cute", "kawaii"], ["fluff", "floof"], ["love", "luv"], ["stupid", "baka"], ["what", "nani"], ["meow", "nya"], ["hello", "hewwo"]];
|
|
function selectRandomElement(arr) {
|
|
const randomIndex = Math.floor(Math.random() * arr.length);
|
|
return arr[randomIndex];
|
|
}
|
|
var isOneCharacterString = (str) => {
|
|
return str.split("").every((char) => char === str[0]);
|
|
};
|
|
function replaceString(inputString) {
|
|
let replaced = false;
|
|
for (const replacement of replacements) {
|
|
const regex = new RegExp(`\\b${replacement[0]}\\b`, "gi");
|
|
if (regex.test(inputString)) {
|
|
inputString = inputString.replace(regex, replacement[1]);
|
|
replaced = true;
|
|
}
|
|
}
|
|
return replaced ? inputString : false;
|
|
}
|
|
function uwuify(message) {
|
|
const rule = /\S+|\s+/g;
|
|
const words = message.match(rule);
|
|
let answer = "";
|
|
if (words === null)
|
|
return "";
|
|
for (let i = 0; i < words.length; i++) {
|
|
if (isOneCharacterString(words[i]) || words[i].startsWith("https://")) {
|
|
answer += words[i];
|
|
continue;
|
|
}
|
|
if (!replaceString(words[i])) {
|
|
answer += words[i].replace(/n(?=[aeo])/g, "ny").replace(/l|r/g, "w");
|
|
} else
|
|
answer += replaceString(words[i]);
|
|
}
|
|
answer += " " + selectRandomElement(endings);
|
|
return answer;
|
|
}
|
|
var unintercept = intercept("post", /\/channels\/\d+\/messages/, (req, send) => {
|
|
let newContent = req?.body?.content;
|
|
log(newContent);
|
|
if (!newContent) {
|
|
return send(req);
|
|
}
|
|
if (newContent.startsWith("!u ")) {
|
|
newContent = newContent.replace("!u ", "", 1);
|
|
req.body.content = uwuify(newContent.toLowerCase());
|
|
}
|
|
return send(req);
|
|
});
|
|
function onUnload() {
|
|
log("Goodbye, Wowwd fwom shewtew! ^^;;");
|
|
unintercept();
|
|
}
|
|
return __toCommonJS(uwuifier_exports);
|
|
})();
|