goat
command
accept
Manage friend requests
0
views
0
likes
0
installs
Aliases: acp
raw source
const moment = require("moment-timezone");
module.exports = {
config: {
name: "accept",
aliases: ["acp"],
version: "1.0.0",
author: "๐๐๐๐ฎ๐
",
countDown: 8,
role: 2,
shortDescription: "Manage friend requests",
longDescription: "Accept or delete pending friend requests",
category: "Admin"
},
onReply: async function ({ message, Reply, event, api }) {
const { author, listRequest, messageID } = Reply;
if (author !== event.senderID) return;
clearTimeout(Reply.unsendTimeout);
const args = event.body.trim().toLowerCase().split(/\s+/);
if (!["add", "del"].includes(args[0])) {
return api.sendMessage(
"โ Use: add <number | all>\nโ Use: del <number | all>",
event.threadID,
event.messageID
);
}
if (!args[1]) {
return api.sendMessage(
`โ Please select a number or "all".`,
event.threadID,
event.messageID
);
}
const form = {
av: api.getCurrentUserID(),
fb_api_caller_class: "RelayModern",
variables: {
input: {
source: "friends_tab",
actor_id: api.getCurrentUserID(),
client_mutation_id: Math.random().toString(36).substring(2, 15)
},
scale: 3,
refresh_num: 0
}
};
if (args[0] === "add") {
form.fb_api_req_friendly_name =
"FriendingCometFriendRequestConfirmMutation";
form.doc_id = "3147613905362928";
} else {
form.fb_api_req_friendly_name =
"FriendingCometFriendRequestDeleteMutation";
form.doc_id = "4108254489275063";
}
const targets =
args[1] === "all"
? listRequest.map((_, i) => i + 1)
: args.slice(1);
const success = [];
const failed = [];
const requests = [];
for (const target of targets) {
const index = parseInt(target) - 1;
const user = listRequest[index];
if (!user) {
failed.push(`Unknown #${target}`);
continue;
}
form.variables.input.friend_requester_id = user.node.id;
requests.push({
name: user.node.name,
promise: api.httpPost(
"https://www.facebook.com/api/graphql/",
{
...form,
variables: JSON.stringify(form.variables)
}
)
});
}
for (const item of requests) {
try {
const response = await item.promise;
const data = JSON.parse(response);
if (data.errors) {
failed.push(item.name);
} else {
success.push(item.name);
}
} catch {
failed.push(item.name);
}
}
let result = `โญโโ ๐๐๐ฌ๐ฎ๐ฅ๐ญ\nโ\n`;
if (success.length) {
result += `โโโค ${args[0] === "add" ? "โ
Accepted" : "๐๏ธ Deleted"} : ${success.length}\n`;
result += success.map(name => `โ โโ ${name}`).join("\n");
result += "\nโ\n";
}
if (failed.length) {
result += `โโโค โ Failed : ${failed.length}\n`;
result += failed.map(name => `โ โโ ${name}`).join("\n");
result += "\nโ\n";
}
result += `โฐโโ ๐๐๐ซ๐ฎ๐'๐ฌ ๐๐จ๐ญ`;
api.unsendMessage(messageID);
return api.sendMessage(
result,
event.threadID,
event.messageID
);
},
onStart: async function ({ event, api, commandName }) {
const form = {
av: api.getCurrentUserID(),
fb_api_req_friendly_name:
"FriendingCometFriendRequestsRootQueryRelayPreloader",
fb_api_caller_class: "RelayModern",
doc_id: "4499164963466303",
variables: JSON.stringify({
input: {
scale: 3
}
})
};
try {
const response = await api.httpPost(
"https://www.facebook.com/api/graphql/",
form
);
const listRequest =
JSON.parse(response)?.data?.viewer?.friending_possibilities?.edges || [];
if (!listRequest.length) {
return api.sendMessage(
"โ No pending friend requests found.",
event.threadID,
event.messageID
);
}
const time = moment()
.tz("Asia/Manila")
.format("DD/MM/YYYY โข HH:mm:ss");
let msg = `โญโโ ๐
๐ซ๐ข๐๐ง๐ ๐๐๐ช๐ฎ๐๐ฌ๐ญ๐ฌ\nโ\n`;
listRequest.forEach((user, i) => {
msg +=
`โโโค ${i + 1}. ${user.node.name}\n` +
`โ โโ ID : ${user.node.id}\n` +
`โ โโ URL : ${user.node.url.replace("www.facebook", "fb")}\n` +
`โ โโ Time : ${time}\nโ\n`;
});
msg +=
`โฐโโ ๐๐๐ซ๐ฎ๐'๐ฌ ๐๐จ๐ญ\n\n` +
`โ Reply: add <number | all>\n` +
`โ Reply: del <number | all>`;
api.sendMessage(
msg,
event.threadID,
(err, info) => {
if (err) return;
global.GoatBot.onReply.set(info.messageID, {
commandName,
messageID: info.messageID,
listRequest,
author: event.senderID,
unsendTimeout: setTimeout(() => {
api.unsendMessage(info.messageID);
}, this.config.countDown * 1000)
});
},
event.messageID
);
} catch (error) {
console.error(error);
return api.sendMessage(
"โ Failed to retrieve friend requests.",
event.threadID,
event.messageID
);
}
}
};