File size: 3,291 Bytes
2821330
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const axios = require("axios");
const path = require("path");
const fs = require("fs-extra");

module.exports.config = {
    name: "pint",
    version: "1.0",
    hasPermission: 0,
    description: "Finding Image from Pinterest",
    credits: "Jonell Magallanes",
    usePrefix: false,
    commandCategory: "Search",
    usages: "[query]",
    cooldowns: 0,
};

module.exports.run = async function ({ api, event, args }) {
    try {
        const keySearch = args.join(" ");

        if (!keySearch.includes("-")) {
            return api.sendMessage(
                "โ›” ๐—œ๐—ป๐˜ƒ๐—ฎ๐—น๐—ถ๐—ฑ ๐—จ๐˜€๐—ฒ\nโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n\nPlease enter the search query and number of images (1-99). Example: tomozaki -5",
                event.threadID,
                event.messageID
            );
        }
 api.sendMessage("Please Wait.....", event.threadID, event.messageID);
        const keySearchs = keySearch.substr(0, keySearch.indexOf('-')).trim();
        let numberSearch = parseInt(keySearch.split("-").pop().trim()) || 10;

        if (isNaN(numberSearch) || numberSearch < 1 || numberSearch > 10) {
            return api.sendMessage(
                "โ›” ๐—œ๐—ป๐˜ƒ๐—ฎ๐—น๐—ถ๐—ฑ ๐—ก๐˜‚๐—บ๐—ฏ๐—ฒ๐—ฟ\nโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n\nPlease enter a valid number of images (1-99). Example: wallpaper -5",
                event.threadID,
                event.messageID
            );
        }

        const apiUrl = `https://ccprojectapis.ddns.net/api/pin?title=${keySearch}&count=${numberSearch}`;
        console.log(`Fetching data from API: ${apiUrl}`);

        const res = await axios.get(apiUrl);
        const data = res.data.data;

        if (!data || data.length === 0) {
            return api.sendMessage(
                `No results found for your query "${keySearchs}". Please try with a different query.`,
                event.threadID,
                event.messageID
            );
        }

        const imgData = [];

        for (let i = 0; i < Math.min(numberSearch, data.length); i++) {
            console.log(`Fetching image ${i + 1} from URL: ${data[i]}`);
            const imgResponse = await axios.get(data[i], { responseType: "arraybuffer" });
            const imgPath = path.join(__dirname, "cache", `${i + 1}.jpg`);
            await fs.outputFile(imgPath, imgResponse.data);
            imgData.push(fs.createReadStream(imgPath));
        }

        await api.sendMessage({
            body: `๐Ÿ“ธ ๐—ฃ๐—ถ๐—ป๐˜๐—ฒ๐—ฟ๐—ฒ๐˜€๐˜\nโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n\nHere are the top ${numberSearch} results for your query "${keySearchs}"`,
            attachment: imgData,
        }, event.threadID, event.messageID);

        console.log(`Images successfully sent to thread ${event.threadID}`);

        await fs.remove(path.join(__dirname, "cache"));
        console.log("Cache directory cleaned up.");

    } catch (error) {
        console.error("Error fetching images from Pinterest:", error);
        return api.sendMessage(
            "An error occurred while fetching images. Please try again later.",
            event.threadID,
            event.messageID
        );
    }
};