import FormData from 'form-data' import axios from 'axios' const UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' const PAGE_URL = 'https://www.iloveimg.com/upscale-image' const SERVERS = ['api1g', 'api2g', 'api3g', 'api8g', 'api9g', 'api10g', 'api11g', 'api12g', 'api13g', 'api14g', 'api15g', 'api16g', 'api17g', 'api18g', 'api19g', 'api20g', 'api21g', 'api22g', 'api24g', 'api25g'] const TASK = 'r68zl88mq72xq94j2d5p66bn2z9lrbx20njsbw2qsAvgmzr11lvfhAx9kl87pp6yqgx7c8vg7sfbqnrr42qb16v0gj8jl5s0kq1kgp26mdyjjspd8c5A2wk8b4Adbm6vf5tpwbqlqdr8A9tfn7vbqvy28ylphlxdl379psxpd8r70nzs3sk1' const sessionCache = new Map() async function getToken(force = false) { let now = Date.now() let hit = sessionCache.get('auth') if (!force && hit && now - hit.ts < 600000) return hit let res = await axios.get(PAGE_URL, { headers: { 'User-Agent': UA } }) let text = String(res.data) let token = null let cfgIdx = text.indexOf('ilovepdfConfig') if (cfgIdx !== -1) { let objStart = text.indexOf('{', cfgIdx) let objEnd = text.indexOf('};', objStart) if (objStart !== -1 && objEnd !== -1) { try { token = JSON.parse(text.slice(objStart, objEnd + 1))?.token } catch {} } } let csrf = text.match(/]*name=["']csrf-token["'][^>]*content=["']([^"']+)["']/i)?.[1] if (!token || !csrf) throw new Error('Gagal scrape token') let data = { token, csrf, ts: now } sessionCache.set('auth', data) return data } async function upscaleImage(buffer, scale = 2) { scale = [2, 3, 4].includes(Number(scale)) ? Number(scale) : 2 let { token, csrf } = await getToken() for (let i = 0; i < 3; i++) { let server = SERVERS[Math.floor(Math.random() * SERVERS.length)] try { let form = new FormData() form.append('name', 'img.jpg') form.append('chunk', '0') form.append('chunks', '1') form.append('task', TASK) form.append('preview', '1') form.append('file', buffer, 'img.jpg') let up = await axios.post(`https://${server}.iloveimg.com/v1/upload`, form, { headers: { Authorization: `Bearer ${token}`, Cookie: `_csrf=${csrf}`, ...form.getHeaders() } }) let upForm = new FormData() upForm.append('task', TASK) upForm.append('server_filename', up.data.server_filename) upForm.append('scale', scale) let res = await axios.post(`https://${server}.iloveimg.com/v1/upscale`, upForm, { headers: { Authorization: `Bearer ${token}`, Cookie: `_csrf=${csrf}`, ...upForm.getHeaders() }, responseType: 'arraybuffer' }) return Buffer.from(res.data) } catch (e) { if (e?.response?.status === 401 || e?.response?.status === 403) { let fresh = await getToken(true) token = fresh.token csrf = fresh.csrf } } } throw new Error('Semua server gagal') } let handler = async (m, { conn, args, usedPrefix, command }) => { let q = m.quoted ? m.quoted : m let mime = (q.msg || q).mimetype || '' if (!mime.includes('image')) { return m.reply(`Balas gambar dengan perintah *${usedPrefix + command}*`) } await m.react('⏳') let scale = args[0] || '2' let media = await q.download() try { let result = await upscaleImage(media, scale) await conn.sendMessage(m.chat, { image: result, caption: '' }, { quoted: m }) await m.react('✅') } catch (err) { await m.react('❌') m.reply('Gagal memproses gambar.') } } handler.help = ['hd'] handler.tags = ['image'] handler.command = /^(hd)$/i handler.limit = true handler.register = true export default handler