const { createCanvas, loadImage } = require('@napi-rs/canvas'); const ax = require('axios'); const FD = require('form-data'); var slot = { x: 20, y: 155, w: 700, h: 700 }; async function ImgBB(png) { var { data: html, headers } = await ax.get('https://imgbb.com/'); var tok = html.match(/auth_token\s*=\s*["']([a-f0-9]+)["']/)?.[1]; var f = new FD(); f.append('source', png, `${Date.now()}_r4lovesyou.jpg`); f.append('type', 'file'); f.append('action', 'upload'); f.append('timestamp', Date.now().toString()); f.append('auth_token', tok); var { data } = await ax.post('https://imgbb.com/json', f, { headers: { ...f.getHeaders(), cookie: headers['set-cookie'].join('; '), origin: 'https://imgbb.com', referer: 'https://imgbb.com/', 'user-agent': 'Mozilla/5.0 (Linux; Android 15; SM-F958 Build/AP3A.240905.015) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.86 Mobile Safari/537.36' } }); return data.image.image; } async function gataulah(u, l) { var bu = l === "ru" ? "https://files.catbox.moe/5ptzk0.jpg" : "https://files.catbox.moe/lozajs.jpg"; var bw = 1080, bh = 1236; var br = await fetch(bu, { headers: { 'User-Agent': 'Mozilla/5.0' } }); var bb = Buffer.from(await br.arrayBuffer()); var b = await loadImage(bb); var or_ = await fetch(u, { headers: { 'User-Agent': 'Mozilla/5.0' } }); var ob = Buffer.from(await or_.arrayBuffer()); var o = await loadImage(ob); var cv = createCanvas(b.width, b.height); var c = cv.getContext("2d"); c.imageSmoothingEnabled = true; c.imageSmoothingQuality = 'high'; c.drawImage(b, 0, 0, b.width, b.height); var sx = b.width / bw, sy = b.height / bh; var tx = slot.x * sx, ty = slot.y * sy, tw = slot.w * sx, th = slot.h * sy; var sc = Math.min(tw / o.width, th / o.height); var dw = o.width * sc, dh = o.height * sc; var dx = tx + (tw - dw) / 2, dy = ty + (th - dh) / 2; c.drawImage(o, 0, 0, o.width, o.height, dx, dy, dw, dh); var png = await cv.encode('png'); var url = await ImgBB(png); return url; } // en for English, ru for russian gataulah("https://files.catbox.moe/6k1cwx.jpeg", "en").then(console.log);