← back to browse
goat command

boxinfo

Group info

0
views
0
likes
0
installs

Aliases: groupinfo

raw source
const fs = require("fs");
const request = require("request");
const path = require("path");

module.exports = {
  config: {
    name: "boxinfo",
    aliases: ["groupinfo"],
    version: "2.2.0",
    author: "Mᴏʜᴀᴍᴍᴀᴅ Aᴋᴀsʜ",
    role: 1,
    shortDescription: "Group info",
    category: "box chat",
    guide: {
      en: "groupinfo"
    }
  },

  onStart: async function ({ api, event }) {
    const cacheDir = path.join(__dirname, "cache");
    const imgPath = path.join(cacheDir, "groupinfo.png");

    if (!fs.existsSync(cacheDir)) fs.mkdirSync(cacheDir);

    const info = await api.getThreadInfo(event.threadID);

    let male = 0, female = 0;
    for (const u of info.userInfo) {
      if (u.gender === "MALE") male++;
      else if (u.gender === "FEMALE") female++;
    }

    const text =
`── Gʀᴏᴜᴘ Iɴғᴏ ──
Nᴀᴍᴇ      : ${info.threadName || "No Name"}
Iᴅ        : ${info.threadID}
Eᴍᴏᴊɪ     : ${info.emoji || "N/A"}
Aᴘᴘʀᴏᴠᴀʟ  : ${info.approvalMode ? "ON" : "OFF"}

Mᴇᴍʙᴇʀs   : ${info.participantIDs.length}
Mᴀʟᴇ      : ${male}
Fᴇᴍᴀʟᴇ    : ${female}
Aᴅᴍɪɴs    : ${info.adminIDs.length}
Mᴇssᴀɢᴇs  : ${info.messageCount}

— Mᴏʜᴀᴍᴍᴀᴅ Aᴋᴀsʜ`;

    const send = () =>
      api.sendMessage(
        {
          body: text,
          attachment: fs.existsSync(imgPath)
            ? fs.createReadStream(imgPath)
            : null
        },
        event.threadID,
        () => {
          if (fs.existsSync(imgPath)) fs.unlinkSync(imgPath);
        },
        event.messageID
      );

    if (!info.imageSrc) return api.sendMessage(text, event.threadID, event.messageID);

    request(encodeURI(info.imageSrc))
      .pipe(fs.createWriteStream(imgPath))
      .on("close", send);
  }
};

View raw file