Kembali ke Beranda
Gistify Snippet
kyiov
Feb 17·1 file(s)
Public

PIXIV SEARCH CAROUSEL MESSAGE

synced from github gist pixiv.js

#downloader
pixiv.jsjavascript
97 baris
1/*
2 * ───────────────────────────
3 * 🟢 JOY MD - SOURCE CODE
4 * ───────────────────────────
5 * 👤 Channel : https://shorturl.at/ce5eX
6 * 📅 Fetched : 17/2/2026, 18.05.49
7 * 📂 File : pixiv.js
8 * ───────────────────────────
9 */
10
11/**
12 * @module plugins/internet/pixiv
13 * @description Search Pixiv images and display as Carousel
14 */
15
16import axios from 'axios'
17import { createRequire } from "module";
18const require = createRequire(import.meta.url);
19const { prepareWAMessageMedia } = require('@adiwajshing/baileys');
20
21let handler = async (m, { conn, text, usedPrefix, command }) => {
22 if (!text) return m.reply(`🔍 Masukkan nama karakter/pencarian.\nContoh: *${usedPrefix + command}* Alya`)
23
24 await m.reply(global.wait || '⏳ Mohon tunggu sebentar...')
25
26 try {
27 const { data } = await axios.get(`https://api.ryzumi.net/api/search/pixiv?query=${encodeURIComponent(text)}`, {
28 headers: { 'accept': 'application/json' }
29 })
30
31 if (!data || !data.Media || data.Media.length === 0) {
32 return m.reply('❌ Tidak ada gambar yang ditemukan untuk query tersebut.')
33 }
34
35 const cards = []
36 const images = data.Media.slice(0, 10)
37
38 for (let i = 0; i < images.length; i++) {
39 const url = images[i]
40 try {
41 const media = await prepareWAMessageMedia({ image: { url: url } }, { upload: conn.waUploadToServer })
42
43 cards.push({
44 body: { text: `${data.caption || 'Pixiv Art'} (Page ${i + 1})` },
45 footer: { text: `🎨 Artist: ${data.artist || 'Unknown'}` },
46 header: { hasMediaAttachment: true, imageMessage: media.imageMessage },
47 nativeFlowMessage: {
48 buttons: [
49 {
50 name: "cta_url",
51 buttonParamsJson: JSON.stringify({
52 display_text: "🖼️ View Original",
53 url: url,
54 merchant_url: url
55 })
56 }
57 ]
58 }
59 })
60 } catch (err) {
61 console.error(`Error preparing card for page ${i}:`, err)
62 }
63 }
64
65 if (cards.length === 0) return m.reply('❌ Gagal memuat gambar ke carousel.')
66
67 const tags = data.tags ? data.tags.join(', ') : '-'
68 const bodyText = `🎨 *P I X I V S E A R C H*\n\n` +
69 `🔎 *Query:* ${text}\n` +
70 `👤 *Artist:* ${data.artist || 'Unknown'}\n` +
71 `🏷️ *Tags:* ${tags.length > 100 ? tags.substring(0, 97) + '...' : tags}`
72
73 await conn.relayMessage(m.chat, {
74 viewOnceMessage: {
75 message: {
76 interactiveMessage: {
77 body: { text: bodyText },
78 header: { hasMediaAttachment: false },
79 carouselMessage: { cards }
80 }
81 }
82 }
83 }, { quoted: m })
84
85 } catch (e) {
86 console.error('Pixiv Error:', e)
87 m.reply('❌ Terjadi kesalahan saat mengambil data dari Pixiv.')
88 }
89}
90
91handler.help = ['pixiv <query>']
92handler.tags = ['internet']
93handler.command = ['pixiv']
94handler.prefix = true
95
96export default handler
97
Diskusi & Komentar0

Belum ada komentar — jadilah yang pertama memberikan masukan atau diskusi kode.

Masuk dengan akun GitHub untuk menulis komentar dan berdiskusi.