File size: 1,606 Bytes
3e6bd28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import axios from "axios";
import * as cheerio from "cheerio";

export async function PinterestDownloader(search) {
    if (!search) {
        return {
            status: "False",
            randydev: { error: "pinterest API" }
        };
    }

    const headers = {
        "authority": "www.pinterest.com",
        "cache-control": "max-age=0",
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "sec-gpc": "1",
        "sec-fetch-site": "same-origin",
        "sec-fetch-mode": "same-origin",
        "sec-fetch-dest": "empty",
        "accept-language": "en-US,en;q=0.9",
        "cookie": "csrftoken=92c7c57416496066c4cd5a47a2448e28; g_state={\"i_l\":0}; _auth=1; _pinterest_sess=TWc9PSZBME..."
    };

    const url = `https://www.pinterest.com/search/pins/?q=${encodeURIComponent(search)}&rs=typed&term_meta[]=${encodeURIComponent(search)}|typed`;

    try {
        const response = await axios.get(url, { headers });
        const html = response.data;
        const imageUrls = html.match(/https:\/\/i\.pinimg\.com\/originals\/[^.]+\.jpg/g) || [];
        return {
            count: imageUrls.length,
            data: imageUrls
        };
    } catch (error) {
        return {
            status: "False",
            randydev: { error: "An error occurred while fetching data" }
        };
    }
}