home chevron_right src chevron_right pastecode-search.js
code

pastecode-search.js

JavaScript 2.26 KB 71 baris visibility 11 views
open_in_new
src/pastecode-search.js
/*
 Skrep hasil gabut
 Fungsi: agar bisa search via bot whatsapp/tele dll
 Author: dann
 Donate woy biar nambah saldo etmin mu ini πŸ—ΏπŸ—ΏπŸ—Ώ
*/

(async () => {
  async function scrapePasteCode(langName) {
    const axios = (await import("axios")).default
    const cheerioModule = await import("cheerio")
    const cheerio = cheerioModule.default || cheerioModule

    const baseUrl = 'https://pastecode.web.id'
    const targetUrl = `${baseUrl}/?lang=${encodeURIComponent(langName)}`

    try {
      const response = await axios.get(targetUrl, {
        headers: {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
          'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      })

      const $ = cheerio.load(response.data)
      const results = []

      $('.file-card-wrapper').each((i, elem) => {
        const name = $(elem).attr('data-name') || ""
        const language = $(elem).attr('data-lang') || ""
        const path = $(elem).attr('data-path') || ""
        
        const viewHref = $(elem).find('a.file-card').attr('href') || ""
        const fullViewUrl = viewHref.startsWith('http') ? viewHref : baseUrl + viewHref

        const sizeText = $(elem).find('.flex.items-center.gap-3.min-w-0 span').eq(1).text().trim()
        const viewsText = $(elem).find('.flex.items-center.gap-3.min-w-0 span').eq(2).text().trim()

        if (name) {
          results.push({
            name: name,
            path: `/${path}`,
            language: language,
            size: sizeText || null,
            views: parseInt(viewsText) || 0,
            viewUrl: fullViewUrl,
            rawUrl: `${baseUrl}/${path}`
          })
        }
      })

      const totalFilesText = $('.text-3xl.font-extrabold.font-mono').first().text().trim()

      return {
        status: true,
        totalInPage: results.length,
        totalGlobal: parseInt(totalFilesText) || results.length,
        results: results
      }

    } catch (e) {
      return { status: false, error: e.message }
    }
  }

  const output = await scrapePasteCode("JavaScript")
  
  return m.reply(JSON.stringify(output, null, 2))
})()
link

Direct URL

check Disalin!