Scrape
.
Edit Snippet
Perbarui kode atau detail snippet ini.
Filename / Title
Language
JavaScript
Python
HTML
CSS
JSON
SQL
Bash
TypeScript
PHP
Java
Go
Rust
Description
(Optional)
Upscale, Retouch, and Sharpen image.
Tags
Code Content
*
/*** @ Base: https://play.google.com/store/apps/details?id=com.app.aiimglarger @ Author: Shannz @ Note: Upscale, Retouch, and Sharpen image. ***/ import axios from 'axios'; import FormData from 'form-data'; import fs from 'fs'; import { Buffer } from 'buffer'; const CONFIG = { BASE_URL: "https://photoai.imglarger.com/api/PhoAi", HEADERS: { 'User-Agent': 'Dart/3.9 (dart:io)', 'Accept-Encoding': 'gzip' } }; const generateRandomUser = () => `${crypto.randomBytes(8).toString('hex')}_aiimglarger`; const prepareFile = async (input) => { if (Buffer.isBuffer(input)) return input; if (input.startsWith('http')) { const res = await axios.get(input, { responseType: 'arraybuffer' }); return Buffer.from(res.data); } if (fs.existsSync(input)) return fs.createReadStream(input); return null; }; const pollStatus = async (code, type) => { const maxAttempts = 20; let attempts = 0; while (attempts < maxAttempts) { try { const { data } = await axios.post(`${CONFIG.BASE_URL}/CheckStatus`, { code: code, type: parseInt(type), username: generateRandomUser }, { headers: { ...CONFIG.HEADERS, 'Content-Type': 'application/json;charset=UTF-8' } }); if (data.data?.status === 'success') { return { success: true, url: data.data.downloadUrls[0], data: data.data }; } if (data.data?.status === 'failed') { return { success: false, msg: 'Processing failed on server' }; } await new Promise(resolve => setTimeout(resolve, 3000)); attempts++; } catch (e) { return { success: false, msg: e.message }; } } return { success: false, msg: 'Timeout' }; }; export const photoAi = { upscale: async (imageInput, scale = '4') => { try { const file = await prepareFile(imageInput); const form = new FormData(); form.append('type', '0'); form.append('username', generateRandomUser); form.append('scaleRadio', scale.toString()); form.append('file', file, { filename: 'image.jpg' }); const { data } = await axios.post(`${CONFIG.BASE_URL}/Upload`, form, { headers: { ...CONFIG.HEADERS, ...form.getHeaders() } }); if (data.code === 200 && data.data) { return await pollStatus(data.data, 0); } return { success: false, msg: data.msg || 'Upload failed' }; } catch (error) { return { success: false, msg: error.message }; } }, retouch: async (imageInput) => { try { const file = await prepareFile(imageInput); const form = new FormData(); form.append('type', '3'); form.append('username', generateRandomUser); form.append('file', file, { filename: 'image.jpg' }); const { data } = await axios.post(`${CONFIG.BASE_URL}/Upload`, form, { headers: { ...CONFIG.HEADERS, ...form.getHeaders() } }); if (data.code === 200 && data.data) { return await pollStatus(data.data, 3); } return { success: false, msg: data.msg || 'Upload failed' }; } catch (error) { return { success: false, msg: error.message }; } }, sharpen: async (imageInput) => { try { const file = await prepareFile(imageInput); const form = new FormData(); form.append('type', '1'); form.append('username', generateRandomUser); form.append('file', file, { filename: 'image.jpg' }); const { data } = await axios.post(`${CONFIG.BASE_URL}/Upload`, form, { headers: { ...CONFIG.HEADERS, ...form.getHeaders() } }); if (data.code === 200 && data.data) { return await pollStatus(data.data, 1); } return { success: false, msg: data.msg || 'Upload failed' }; } catch (error) { return { success: false, msg: error.message }; } } };
Editor is always dark mode for better readability.
Admin Access
Update Snippet
Cancel