case 'pin2': case 'pins2': {
    if (!text) return reply(`Contoh:\n${prefix + command} Shiroko kawaii`)

    reply('Mencari gambar...')
    try {
        const targetUrl = new URL('https://id.pinterest.com/resource/BaseSearchResource/get/')
        const dataPayload = {
            options: {
                query: text,
                scope: "pins",
                rs: "typed",
                redux_normalize_feed: true
            },
            context: {}
        }

        targetUrl.searchParams.append('source_url', `/search/pins/?q=${encodeURIComponent(text)}&rs=typed`)
        targetUrl.searchParams.append('data', JSON.stringify(dataPayload))
        targetUrl.searchParams.append('_', Date.now())

        const response = await axios.get(targetUrl.toString(), {
            headers: {
                'Accept': 'application/json, text/javascript, */*; q=0.01',
                'X-Requested-With': 'XMLHttpRequest',
                'X-Pinterest-PWS-Handler': 'www/search/[scope].js',
                'Referer': `https://id.pinterest.com/search/pins/?q=${encodeURIComponent(text)}`,
                'Accept-Language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
            }
        })

        const results = response.data?.resource_response?.data?.results
        if (!results || !Array.isArray(results) || results.length === 0) {
            return reply('Tidak ditemukan gambar.')
        }

        const cards = []
        let successCount = 0

        for (let i = 0; i < results.length && successCount < 10; i++) {
            const pin = results[i]
            const imgUrl = pin.images?.['736x']?.url || pin.images?.['474x']?.url || pin.images?.['236x']?.url
            const pinUrl = pin.id ? `https://id.pinterest.com/pin/${pin.id}/` : null
            const title = pin.title || "Tanpa judul"
            const author = pin.pinner?.full_name || pin.pinner?.username || "Unknown"

            if (imgUrl && pinUrl) {
                try {
                    const imgRes = await axios.get(imgUrl, { responseType: 'arraybuffer' })
                    const { imageMessage } = await prepareWAMessageMedia({ image: Buffer.from(imgRes.data) }, { upload: mell.waUploadToServer })

                    cards.push({
                        body: { text: `${title.slice(0, 50)}\nBy: ${author}` },
                        header: {
                            title: `Gambar ${successCount + 1}`,
                            hasMediaAttachment: true,
                            imageMessage: imageMessage
                        },
                        nativeFlowMessage: {
                            buttons: [{
                                name: "cta_url",
                                buttonParamsJson: JSON.stringify({
                                    display_text: "Buka di Pinterest",
                                    url: pinUrl
                                })
                            }]
                        }
                    })
                    successCount++
                } catch (err) {
                }
            }
        }

        if (cards.length === 0) return reply('Gagal memproses gambar.')

        const carouselMsg = generateWAMessageFromContent(from, {
            viewOnceMessage: {
                message: {
                    messageContextInfo: {
                        deviceListMetadata: {},
                        deviceListMetadataVersion: 2
                    },
                    interactiveMessage: {
                        body: { text: `Hasil pencarian: *${text}*\nTotal: ${cards.length} gambar` },
                        header: { hasMediaAttachment: false },
                        carouselMessage: { cards }
                    }
                }
            }
        }, { quoted: m })

        await mell.relayMessage(from, carouselMsg.message, { messageId: carouselMsg.key.id })

    } catch (error) {
        reply(`Gagal mengambil data: ${error.message}`)
    }
}
break