← back to browse
goat command

leave

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: "leave",
    version: "2.0.0",
    author: "Asif",
    category: "events"
  },

  onStart: async ({ api, event }) => {
    // শুধু member leave করলে কাজ করবে
    if (event.logMessageType !== "log:unsubscribe") return;

    const { threadID, logMessageData } = event;

    // যে member leave করেছে তার ID
    const leftUserID = logMessageData?.leftParticipantFbId;

    if (!leftUserID) return;

    let userName = "Unknown User";

    // User name বের করা
    try {
      const info = await api.getUserInfo(leftUserID);

      if (info && info[leftUserID] && info[leftUserID].name) {
        userName = info[leftUserID].name;
      }
    } catch (error) {
      console.log("Could not get user name:", error.message);
    }

    // Temporary image file
    const imagePath = path.join(
      __dirname,
      "leave_photo.jpg"
    );

    // তোমার ImgBB image-এর direct URL
    const imageUrl =
      "https://i.ibb.co/SwBrgFgw/images-18.jpg";

    const message = `
╭━━━〔 🚪 MEMBER LEFT 〕━━━╮
┃
┃ 👤 Name: ${userName}
┃ 🆔 ID: ${leftUserID}
┃
┃ 😢 ${userName} গ্রুপ থেকে চলে গেছে।
┃ 👋 ON LEAVE..
┃
╰━━━━━━━━━━━━━━━━━━━━╯
`;

    try {
      // প্রথমে leave message
      await api.sendMessage(message, threadID);

      // Image download
      const response = await axios.get(imageUrl, {
        responseType: "arraybuffer",
        timeout: 20000
      });

      await fs.writeFile(imagePath, response.data);

      // Image send
      await api.sendMessage(
        {
          attachment: fs.createReadStream(imagePath)
        },
        threadID
      );

      // Temporary file delete
      await fs.remove(imagePath);

    } catch (error) {
      console.error("Leave event error:", error);

      // কোনো error হলে temporary file remove
      try {
        await fs.remove(imagePath);
      } catch (_) {}
    }
  }
};

View raw file