3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00
zeppelin/backend/src/plugins/MessageSaver/commands/SavePinsToDB.ts

35 lines
1 KiB
TypeScript

import { messageSaverCmd } from "../types";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { saveMessagesToDB } from "../saveMessagesToDB";
import { sendSuccessMessage } from "../../../pluginUtils";
export const SavePinsToDBCmd = messageSaverCmd({
trigger: "save_pins_to_db",
permission: "can_manage",
source: "guild",
signature: {
channel: ct.textChannel(),
},
async run({ message: msg, args, pluginData }) {
await msg.channel.send(`Saving pins from <#${args.channel.id}>...`);
const pins = await args.channel.messages.fetchPinned();
const { savedCount, failed } = await saveMessagesToDB(
pluginData,
args.channel,
pins.keyArray(),
);
if (failed.length) {
sendSuccessMessage(
pluginData,
msg.channel,
`Saved ${savedCount} messages. The following messages could not be saved: ${failed.join(", ")}`,
);
} else {
sendSuccessMessage(pluginData, msg.channel, `Saved ${savedCount} messages!`);
}
},
});