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 SERVERS = ['api1g', 'api2g', 'api3g', 'api8g', 'api9g', 'api10g', 'api11g', 'api12g', 'api13g', 'api14g', 'api15g', 'api16g', 'api17g', 'api18g', 'api19g', 'api20g', 'api21g', 'api22g', 'api24g', 'api25g'] const TASK = 'r68zl88mq72xq94j2d5p66bn2z9lrbx20njsbw2qsAvgmzr11lvfhAx9kl87pp6yqgx7c8vg7sfbqnrr42qb16v0gj8jl5s0kq1kgp26mdyjjspd8c5A2wk8b4Adbm6vf5tpwbqlqdr8A9tfn7vbqvy28ylphlxdl379psxpd8r70nzs3sk1' let tokenCache = null async function getToken(force = false) { if (!force && tokenCache && Date.now() - tokenCache.ts < 600000) return tokenCache let { data } = await axios.get('https://www.iloveimg.com/remove-background', { headers: { 'User-Agent': UA } }) let text = String(data) let token = null try { let start = text.indexOf('ilovepdfConfig = {') let end = text.indexOf('};', start) token = JSON.parse(text.slice(start + 17, end + 1)).token } catch {} let csrf = text.match(/]*name=["']csrf-token["'][^>]*content=["']([^"']+)["']/i)?.[1] if (!token || !csrf) throw new Error('Gagal scrape token') tokenCache = { token, csrf, ts: Date.now() } return tokenCache } async function removeBg(buffer) { if (buffer.length > 2097152) throw new Error('Ukuran maksimal 2MB bre, kompres dulu') 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 rmForm = new FormData() rmForm.append('task', TASK) rmForm.append('server_filename', up.data.server_filename) let res = await axios.post(`https://${server}.iloveimg.com/v1/removebackground`, rmForm, { headers: { Authorization: `Bearer ${token}`, Cookie: `_csrf=${csrf}`, ...rmForm.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('Server down semua') } let handler = async (m, { conn, usedPrefix, command }) => { let q = m.quoted ? m.quoted : m let mime = (q.msg || q).mimetype || '' if (!mime.includes('image')) { return m.reply(`Balas gambar pake perintah *${usedPrefix + command}*`) } await m.react('⏳') let media = await q.download() if (!media) return m.reply('Gagal download gambar') try { let result = await removeBg(media) await conn.sendMessage(m.chat, { image: result, caption: '' }, { quoted: m }) await m.react('✅') } catch (e) { await m.react('❌') m.reply(e.message || 'Gagal hapus background') } } handler.help = ['removebg'] handler.tags = ['image'] handler.command = /^(removebg)$/i handler.limit = true handler.register = true export default handler