← back to browse
goat command

cover

No description

0
views
0
likes
0
installs
raw source
const axios = require("axios");
const fs = require("fs-extra");
const path = require('path');

module.exports = {
  config: {
    name: "cover",
    version: "2.0",
    author: "Arafat",
    countDown: 15,
    role: 0,
    description: {
      en: "Fetches a user's Facebook cover photo"
    },
    category: "info",
    guide: {
      en: "{pn} [uid|mention|reply]"
    }
  },
  
  onStart: async function ({ api, event, args, message }) {
    let targetID;

    if (event.mentions && Object.keys(event.mentions).length > 0) {
      targetID = Object.keys(event.mentions)[0];
    } else if (event.type === "message_reply") {
      targetID = event.messageReply.senderID;
    } else if (args[0] && !isNaN(args[0])) {
      targetID = args[0];
    } else {
      targetID = event.senderID;
    }

    try {
      api.setMessageReaction("๐ŸŒฟ", event.messageID, (err) => {}, true);

      let cookie = "";
      try {
        const accountPath = path.join(process.cwd(), "account.txt");
        const raw = fs.readFileSync(accountPath, 'utf-8');
        const appState = JSON.parse(raw);

        if (Array.isArray(appState)) {
          cookie = appState.map(item => `${item.key}=${item.value}`).join(';');
        } else {
          return;
        }
      } catch (err) {
        return;
      }

      const apiUrl = "https://arafatas.vercel.app/cover/api/cover"; 
      
      const apiResponse = await axios.post(apiUrl, {
        uid: targetID,
        cookie: cookie
      });

      if (!apiResponse.data.status || !apiResponse.data.url) {
        return;
      }

      const coverImageURL = apiResponse.data.url;
      const coverPath = path.join(__dirname, `cover_${targetID}.jpg`);
      
      const imageResponse = await axios.get(coverImageURL, {
        responseType: 'arraybuffer',
        headers: {
          'Referer': 'https://www.facebook.com/',
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        }
      });

      await fs.writeFile(coverPath, Buffer.from(imageResponse.data, 'binary'));

      return message.reply({
        attachment: fs.createReadStream(coverPath)
      }, () => {
        if (fs.existsSync(coverPath)) fs.unlinkSync(coverPath); 
      });

    } catch (error) {
      return;
    }
  }
};

View raw file