keanu-weblite/src/plugins/stickers.js
2021-09-25 14:35:38 +02:00

51 lines
1.6 KiB
JavaScript

const stickerPacks = {};
stickerPacks.ordering = [];
const stickerCodeMap = {};
class Stickers {
constructor() {
}
loadStickersFromConfig(config) {
const stickerConfig = config.shortCodeStickers;
for (const pack of stickerConfig.packs) {
stickerPacks[pack.name] = [];
stickerPacks.ordering.push(pack.name);
for (const sticker of pack.stickers) {
const stickerName = sticker.split(".")[0];
const stickerUrl = stickerConfig.baseUrl + pack.name + "/" + sticker;
stickerPacks[pack.name].push({ image: stickerUrl, name: stickerName });
stickerCodeMap[":" + pack.name + "-" + stickerName + ":"] = stickerUrl;
}
}
}
isStickerShortcode(messageBody) {
if (messageBody && messageBody.startsWith(":") && messageBody.startsWith(":") && messageBody.length >= 5) {
const image = this.getStickerImage(messageBody);
return image != undefined && image != null;
}
return false;
}
getStickerShortcode(pack, sticker) {
return ":" + pack + "-" + sticker.name + ":";
}
getPacks() {
return stickerPacks.ordering;
}
getStickerImage(messageBody) {
if (!messageBody) return null;
if (messageBody.length < 5 || !messageBody.startsWith(":") || !messageBody.endsWith(":")) return null;
return stickerCodeMap[messageBody];
}
stickersInPack(pack) {
return stickerPacks[pack];
}
}
var gStickers = new Stickers();
export default gStickers;