in this room. If used on an alias, removes the alias. Requires: @ # &`
]
};
const pages = {
roomfaqs(args, user) {
const room = this.requireRoom();
this.title = `[Room FAQs]`;
if (!room.checkModjoin(user)) {
throw new Chat.ErrorMessage(`Access denied.
`);
}
let buf = ``;
if (!roomFaqs[room.roomid]) {
return `${buf}
This room has no FAQs.
`;
}
buf += `FAQs for ${room.title}:
`;
const keys = Object.keys(roomFaqs[room.roomid]);
const sortedKeys = import_lib.Utils.sortBy(keys.filter((val) => !getAlias(room.roomid, val)));
for (const key of sortedKeys) {
const topic = roomFaqs[room.roomid][key];
buf += ``;
buf += `
${key}
`;
buf += `
`;
buf += visualizeFaq(topic);
const aliases = keys.filter((val) => getAlias(room.roomid, val) === key);
if (aliases.length) {
buf += `
Aliases: ${aliases.join(", ")}`;
}
if (user.can("ban", null, room, "addfaq")) {
const src = import_lib.Utils.escapeHTML(topic.source).replace(/\n/g, `
`);
const command = topic.html ? "addhtmlfaq" : "addfaq";
buf += `
Raw text
`;
buf += `/${command} ${key}, ${src}
`;
buf += `
`;
}
buf += ``;
}
buf += ``;
return buf;
}
};
const handlers = {
onRenameRoom(oldID, newID) {
if (roomFaqs[oldID]) {
if (!roomFaqs[newID])
roomFaqs[newID] = {};
Object.assign(roomFaqs[newID], roomFaqs[oldID]);
delete roomFaqs[oldID];
saveRoomFaqs();
}
}
};
process.nextTick(() => {
Chat.multiLinePattern.register("/add(htmlfaq|faq) ");
});
//# sourceMappingURL=room-faqs.js.map