45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
const zulip = require("zulip-js");
|
|
|
|
export async function deleteMessagesZulip(streamName, topicName, numOfDay) {
|
|
const config = {
|
|
zuliprc: "./download",
|
|
zulipVersion: "v2",
|
|
};
|
|
const client = await zulip(config);
|
|
try {
|
|
const messages = await client.messages.retrieve({
|
|
anchor: "oldest",
|
|
num_before: 0,
|
|
num_after: 5000,
|
|
narrow: [
|
|
{ operator: "stream", operand: streamName },
|
|
{ operator: "topic", operand: topicName },
|
|
],
|
|
});
|
|
// console.log(messages.messages.map(u=>u.reactions))
|
|
const members = await client.users.retrieve();
|
|
|
|
// console.log(members.members)
|
|
for (const message of messages.messages) {
|
|
if (
|
|
message.reactions.filter(
|
|
(i) =>
|
|
i.emoji_name === "working_on_it" &&
|
|
members.members.filter((u) => u.user_id === i.user_id)[0]
|
|
.is_admin === true
|
|
).length === 0 &&
|
|
message.timestamp <
|
|
Math.floor((Date.now() - 60000 * 60 * 24 * numOfDay) / 1000)
|
|
) {
|
|
const res = await client.messages.deleteById({
|
|
message_id: message.id,
|
|
});
|
|
console.log(`Deleted message ID ${message.id}`);
|
|
// console.log(res)
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error("Error:", error);
|
|
}
|
|
}
|