const axios = require("axios");
const path = require("path");

module.exports.config = {
    name: "imgRandom",
    version: "1.0.0",
    hasPermssion: 0,
    credits: "GPT",
    description: "Random ảnh từ link JSON (noprefix)",
    commandCategory: "fun",
    usages: "gai / boy / meme",
    cooldowns: 3,
    usePrefix: false
};

async function checkLink(url) {
    try {
        const res = await axios.head(url, { timeout: 5000 });
        return { ok: true, size: parseInt(res.headers["content-length"] || "0") };
    } catch {
        return { ok: false, size: 0 };
    }
}

module.exports.handleEvent = async ({ api, event }) => {
    const { body, threadID } = event;
    if (!body) return;

    // Các keyword và file JSON
    const keywords = {
        "gai": "gai.json",
        "boy": "boy.json",
        "xloli": "xloli.json"
    };

    const key = body.toLowerCase();
    if (!keywords[key]) return;

    try {
        const filePath = path.join(__dirname, `./../../gojo/datajson/${keywords[key]}`);
        const imgList = require(filePath);
        const imgs = Object.values(imgList);

        // Random ảnh
        let randomUrl, check, tries = 0;
        do {
            randomUrl = imgs[Math.floor(Math.random() * imgs.length)];
            check = await checkLink(randomUrl);
            tries++;
        } while (!check.ok && tries < 10);

        if (!check.ok) {
            return api.sendMessage(`❌ Không tìm được ảnh nào hoạt động trong ${key}!`, threadID);
        }

        // Gửi ảnh trực tiếp (ảnh hầu hết < 5MB nên nhanh)
        const response = await axios.get(randomUrl, { responseType: "stream" });
        api.sendMessage({
            body: `📷 Ảnh ${key} của bạn đây:`,
            attachment: response.data
        }, threadID);

    } catch (e) {
        api.sendMessage("❌ Có lỗi xảy ra khi tải ảnh!", threadID);
        console.error(e);
    }
};

module.exports.run = async () => {};
