const moment = require("moment-timezone"); module.exports = { config: { name: "accept", aliases: ["acp"], version: "1.0", author: "Xnil6x | Saimx69x", countDown: 8, role: 1, shortDescription: "manage friend requests", longDescription: "Accept or reject friend requests", category: "utility", guide: { en: "{pn} [add|del] [number|all]" } }, onReply: async function ({ message, Reply, event, api, commandName }) { const { author, listRequest, messageID } = Reply; if (author !== event.senderID) return; const args = event.body.trim().toLowerCase().split(/\s+/); clearTimeout(Reply.unsendTimeout); const form = { av: api.getCurrentUserID(), fb_api_caller_class: "RelayModern", variables: { input: { source: "friends_tab", actor_id: api.getCurrentUserID(), client_mutation_id: Math.round(Math.random() * 19).toString() }, scale: 3, refresh_num: 0 } }; let actionType; if (args[0] === "add") { form.fb_api_req_friendly_name = "FriendingCometFriendRequestConfirmMutation"; form.doc_id = "3147613905362928"; actionType = "Accepted"; } else if (args[0] === "del") { form.fb_api_req_friendly_name = "FriendingCometFriendRequestDeleteMutation"; form.doc_id = "4108254489275063"; actionType = "Rejected"; } else { return api.sendMessage("āŒ Invalid command. Usage: ", event.threadID, event.messageID); } let targetIDs = args.slice(1); if (args[1] === "all") { targetIDs = Array.from({ length: listRequest.length }, (_, i) => i + 1); } const newTargetIDs = []; const promiseFriends = []; const success = []; const failed = []; for (const stt of targetIDs) { const user = listRequest[parseInt(stt) - 1]; if (!user) { failed.push(`🚫 Can't find request #${stt}`); continue; } form.variables.input.friend_requester_id = user.node.id; form.variables = JSON.stringify(form.variables); newTargetIDs.push(user); promiseFriends.push(api.httpPost("https://www.facebook.com/api/graphql/", form)); form.variables = JSON.parse(form.variables); } const results = await Promise.allSettled(promiseFriends); results.forEach((result, index) => { const user = newTargetIDs[index]; if (result.status === "fulfilled" && !JSON.parse(result.value).errors) { success.push(`āœ… š’š®šœšœšžš¬š¬šŸš®š„š„š² ${actionType}: ${user.node.name} (${user.node.id})`); } else { failed.push(`āŒ š…ššš¢š„šžš: ${user.node.name} (${user.node.id})`); } }); let replyMsg = ""; if (success.length > 0) replyMsg += success.join("\n") + "\n"; if (failed.length > 0) replyMsg += failed.join("\n"); if (replyMsg) api.sendMessage(replyMsg, event.threadID, event.messageID); else api.sendMessage("āŒ ššØ šÆššš„š¢š š«šžšŖš®šžš¬š­š¬ š°šžš«šž š©š«šØšœšžš¬š¬šžš.", event.threadID); api.unsendMessage(messageID); }, onStart: async function ({ event, api, commandName }) { try { 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 } }) }; const response = await api.httpPost("https://www.facebook.com/api/graphql/", form); const listRequest = JSON.parse(response).data.viewer.friending_possibilities.edges; if (!listRequest || listRequest.length === 0) { return api.sendMessage("🌟 š˜šØš® š”šššÆšž š§šØ š©šžš§šš¢š§š  šŸš«š¢šžš§š š«šžšŖš®šžš¬š­š¬!", event.threadID); } let msg = "╔═══》 š…š«š¢šžš§š š‘šžšŖš®šžš¬š­š¬ 怊 ═══╗\n\n"; listRequest.forEach((user, index) => { msg += `šŸ’  ššØ. ${index + 1}\n`; msg += `šŸ‘¤ šššš¦šž: ${user.node.name}\n`; msg += `šŸ†” šˆšƒ: ${user.node.id}\n`; msg += `šŸ”— šš«šØšŸš¢š„šž: ${user.node.url.replace("www.facebook", "fb")}\n`; msg += "━━━━━━━━━━━━━━━━\n"; }); msg += "\nšŸ’” š‘šžš©š„š² š°š¢š­š”:\n"; msg += "āœ… add — š€šœšœšžš©š­ š«šžšŖš®šžš¬š­\n"; msg += "āŒ del — š‘šžš£šžšœš­ š«šžšŖš®šžš¬š­\n"; msg += "šŸ’« add all — š€šœšœšžš©š­ ššš„š„\n"; msg += "šŸ”„ del all — š‘šžš£šžšœš­ ššš„š„\n\n"; msg += "ā³ š“š”š¢š¬ š¦šžš§š® š°š¢š„š„ ššš®š­šØ-ššžš„šžš­šž š¢š§ 2 š¦š¢š§š®š­šžs.\n"; msg += "ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•"; api.sendMessage(msg, event.threadID, (e, info) => { global.GoatBot.onReply.set(info.messageID, { commandName, messageID: info.messageID, listRequest, author: event.senderID, unsendTimeout: setTimeout(() => { api.unsendMessage(info.messageID); }, 2 * 60 * 1000) }); }, event.messageID); } catch (error) { console.error(error); api.sendMessage("āŒ š„š«š«šØš« šØšœšœš®š«š«šžš š°š”š¢š„šž šŸšžš­šœš”š¢š§š  šŸš«š¢šžš§š š«šžšŖš®šžš¬š­š¬.", event.threadID); } } };