\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/dmrcas/wordpress/wp-content/plugins/kubio/lib/AI/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/dmrcas/wordpress/wp-content/plugins/kubio/lib/AI/api.php


<?php

use IlluminateAgnostic\Arr\Support\Arr;
use Kubio\Core\Importer;
use Kubio\Flags;


add_action(
	'rest_api_init',
	function () {
		$namespace = 'kubio/v1';

		register_rest_route(
			$namespace,
			'/ai/info',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_service_info',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/usage',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_service_usage',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/set-ai-key',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_store_ai_key',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/settings',
			array(
				'methods'             => 'GET',
				'callback'            => 'kubio_ai_get_general_settings',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/settings',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_store_general_settings',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/generate-site-structure',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_site_structure',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/determine-site-mood',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_site_mood',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/generate-color-scheme',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_color_scheme',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/generate-page-structure',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_page_structure',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);
		register_rest_route(
			$namespace,
			'/ai/get-default-homepage-sections-summaries-by-anchor',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_default_homepage_sections_summaries_by_anchor',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);
		register_rest_route(
			$namespace,
			'/ai/update-default-homepage-sections-used-images',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_update_default_homepage_sections_used_images',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);
		register_rest_route(
			$namespace,
			'/ai/get-default-homepage-sections-used-images',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_default_homepage_sections_used_images',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);
		register_rest_route(
			$namespace,
			'/ai/generate-section-content',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_page_section_content',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/rephrase-section-content',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_rephrase_section_content',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/search-image',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_search_image',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/search-video',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_search_video',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/prompt-to-image',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_prompt_search_image',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/prompt-to-video',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_prompt_search_video',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/process-text',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_processed_text',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/summarize-prompt',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_summarized_prompt',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/prompt',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_get_prompt',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/ai/change-text',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_ai_change_text',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/commercial-flow',
			array(
				'methods'             => 'GET',
				'callback'            => 'kubio_get_commercial_flow_settings',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/remove-auto-start-black-wizard-flag',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_remove_auto_start_black_wizard_onboarding_flag',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);

		register_rest_route(
			$namespace,
			'/commercial-flow',
			array(
				'methods'             => 'POST',
				'callback'            => 'kubio_store_commercial_flow_settings',
				'permission_callback' => function () {
					return current_user_can( 'edit_theme_options' );
				},
			)
		);
	}
);


function kubio_ai_store_ai_key( $request ) {
	$key = sanitize_text_field( Arr::get( $request, 'key', '' ) );
	kubio_ai_set_key( $key );

	return array();
}

function kubio_ai_get_general_settings() {
	return (object) Flags::get( 'aiSettings', array() );
}


function kubio_ai_store_general_settings( WP_REST_Request $request ) {
	Flags::set( 'aiSettings', $request['settings'] );
	return true;
}

function kubio_get_commercial_flow_settings() {
	return (object) Flags::get( 'commercialFlowSettings', array() );
}


function kubio_store_commercial_flow_settings( WP_REST_Request $request ) {
	Flags::set(
		'commercialFlowSettings',
		array(
			'disabled' => $request->get_param( 'disabled' ),
		)
	);
	return true;
}

function kubio_utils_data_add_ai_settings( $data ) {
	$data['aiSettings']       = kubio_ai_get_general_settings();
	$data['aiLanguages']      = kubio_ai_content_languages();
	$data['aiLanguageStyles'] = kubio_ai_content_language_styles();
	$data['aiBusinessTypes']  = kubio_ai_business_types();
	$data['aiIsConnected']    = ! ! kubio_ai_get_key();

	return $data;
}

add_filter( 'kubio/kubio-utils-data/extras', 'kubio_utils_data_add_ai_settings' );


function kubio_ai_get_service_info() {
	return kubio_ai_call_api( 'v1/info' );
}

function kubio_ai_get_service_usage( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/usage',
		array(),
		array(
			'page'     => Arr::get( $request, 'page', 1 ),
			'per_page' => Arr::get( $request, 'perPage', 20 ),
			'order'    => json_encode(
				array(
					'field'     => 'created_at',
					'direction' => 'DESC',
				)
			),
		)
	);
}

function kubio_ai_get_site_structure( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/generate-site-structure',
		array(
			'siteContext'       => Arr::get( $request, 'siteContext', array() ),
			'pageContext'       => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'         => Arr::get( $request, 'pageTitle', array() ),
			'theme'             => Arr::get( $request, 'theme', null ),
			'importDesignIndex' => Arr::get( $request, 'importDesignIndex', null ),
		)
	);
}


function kubio_ai_get_site_mood( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/determine-site-mood',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
		)
	);
}

function kubio_ai_get_color_scheme( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/generate-color-scheme',
		array(
			'siteContext'      => Arr::get( $request, 'siteContext', array() ),
			'pageContext'      => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'        => Arr::get( $request, 'pageTitle', array() ),
			'mood'             => Arr::get( $request, 'mood', 'neutral' ),
			'primaryColors'    => Arr::get( $request, 'primaryColors', array() ),
			'remainingRetries' => Arr::get( $request, 'remainingRetries', null ),
		)
	);
}


function kubio_ai_get_page_structure( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/generate-page-structure',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
			'sections'    => Arr::get( $request, 'allowedSections', array() ),
			'rules'       => Arr::get( $request, 'rules', array() ),
		)
	);
}
function kubio_ai_get_default_homepage_sections_summaries_by_anchor( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/get-default-homepage-sections-summaries-by-anchor',
		array(
			'siteContext'              => Arr::get( $request, 'siteContext', array() ),
			'pageContext'              => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'                => Arr::get( $request, 'pageTitle', array() ),
			'rules'                    => Arr::get( $request, 'rules', array() ),
			'theme'                    => Arr::get( $request, 'theme', null ),
			'importDesignIndex'        => Arr::get( $request, 'importDesignIndex', null ),
			'colorSchemeAndTypography' => Arr::get( $request, 'colorSchemeAndTypography', null ),
		)
	);
}


function kubio_ai_get_page_section_content( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/generate-page-section',
		array(
			'siteContext'   => Arr::get( $request, 'siteContext', array() ),
			'pageContext'   => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'     => Arr::get( $request, 'pageTitle', array() ),

			'structure'     => Arr::get( $request, 'structure', array() ),
			'category'      => Arr::get( $request, 'category', 'section' ),
			'summary'       => Arr::get( $request, 'summary', '' ),
			'rules'         => Arr::get( $request, 'rules', array() ),

			'sectionParams' => Arr::get( $request, 'sectionParams', array() ),
		)
	);
}

function kubio_ai_get_default_homepage_sections_used_images( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/get-default-homepage-sections-used-images',
		array(
			'siteContext'       => Arr::get( $request, 'siteContext', array() ),
			'theme'             => Arr::get( $request, 'theme', null ),
			'importDesignIndex' => Arr::get( $request, 'importDesignIndex', null ),
		)
	);
}
function kubio_ai_update_default_homepage_sections_used_images( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/update-default-homepage-sections-used-images',
		array(
			'siteContext'       => Arr::get( $request, 'siteContext', array() ),
			'theme'             => Arr::get( $request, 'theme', null ),
			'importDesignIndex' => Arr::get( $request, 'importDesignIndex', null ),
			'content'           => Arr::get( $request, 'content', null ),
		)
	);
}


function kubio_ai_get_rephrase_section_content( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/rephrase-page-section',
		array(
			'siteContext'   => Arr::get( $request, 'siteContext', array() ),
			'pageContext'   => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'     => Arr::get( $request, 'pageTitle', array() ),

			'structure'     => Arr::get( $request, 'structure', array() ),
			'category'      => Arr::get( $request, 'category', 'section' ),
			'summary'       => Arr::get( $request, 'summary', '' ),
			'rules'         => Arr::get( $request, 'rules', array() ),

			'sectionParams' => Arr::get( $request, 'sectionParams', array() ),
		)
	);
}




function kubio_ai_search_image( WP_REST_Request $request ) {
	$dimensions = array();

	if ( Arr::get( $request, 'initialImage', '' ) ) {
		// original
		$dimensions = kubio_ai_get_original_image_dimensions( Arr::get( $request, 'initialImage', '' ) );
	} else {
		$width  = Arr::get( $request, 'width', null );
		$height = Arr::get( $request, 'height', null );

		if ( $width ) {
			$dimensions['width'] = $width;
		}

		if ( $height ) {
			$dimensions['height'] = $height;
		}
	}

	$orientation = Arr::get( $request, 'orientation', null );
	if ( $orientation ) {
		$dimensions['orientation'] = $orientation;
	}

	return kubio_ai_call_api(
		'v1/search-media',
		array_merge(
			$dimensions,
			array(
				'type'             => 'image',
				'search'           => kubio_shuffle_terms( Arr::get( $request, 'search', '' ) ),
				'per_page'         => Arr::get( $request, 'perPage', 10 ),
				'page'             => Arr::get( $request, 'page', 1 ),
				'color'            => Arr::get( $request, 'color', null ),
				'media_attrs'      => Arr::get( $request, 'mediaAttrs', null ),
				'skip_orientation' => Arr::get( $request, 'skipOrientation', null ),
				'crop'             => Arr::get( $request, 'crop', null ),
			)
		)
	);
}

function kubio_shuffle_terms( $str ) {
	// use this to generate more different images between calls
	$terms = explode( ',', $str );
	if ( is_array( $terms ) ) {
		shuffle( $terms );
		return implode( ',', $terms );
	}

	return $str;
}

function kubio_ai_search_video( WP_REST_Request $request ) {

	return kubio_ai_call_api(
		'v1/search-media',
		array(
			'type'        => 'video',
			'search'      => Arr::get( $request, 'search', '' ),
			'per_page'    => Arr::get( $request, 'perPage', 10 ),
			'page'        => Arr::get( $request, 'page', 1 ),
			'media_attrs' => Arr::get( $request, 'mediaAttrs', null ),
		)
	);
}

function kubio_ai_prompt_search_image( WP_REST_Request $request ) {
	$dimensions = kubio_ai_get_original_image_dimensions( Arr::get( $request, 'initialImage', '' ) );
	return kubio_ai_call_api(
		'v1/prompt-search-media',
		array_merge(
			$dimensions,
			array(
				'type'        => 'image',
				'prompt'      => Arr::get( $request, 'prompt', '' ),
				'per_page'    => Arr::get( $request, 'perPage', 10 ),
				'page'        => Arr::get( $request, 'page', 1 ),
				'media_attrs' => Arr::get( $request, 'mediaAttrs', null ),
			)
		)
	);
}

function kubio_ai_prompt_search_video( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/prompt-search-media',
		array(
			'type'        => 'video',
			'prompt'      => Arr::get( $request, 'prompt', '' ),
			'per_page'    => Arr::get( $request, 'perPage', 10 ),
			'page'        => Arr::get( $request, 'page', 1 ),
			'media_attrs' => Arr::get( $request, 'mediaAttrs', null ),
		)
	);
}

// ---------------



function kubio_ai_get_processed_text( WP_REST_Request $request ) {

	return kubio_ai_call_api(
		'v1/process-text',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
			'action'      => Arr::get( $request, 'action', '' ),
			'content'     => Arr::get( $request, 'content', '' ),
			'extras'      => Arr::get( $request, 'extras', '' ),

		)
	);
}



function kubio_ai_get_summarized_prompt( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/process-text',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
			'action'      => 'summarize',
			'content'     => Arr::get( $request, 'prompt', '' ),
		)
	);
}
function kubio_ai_get_prompt( WP_REST_Request $request ) {
	return kubio_ai_call_api(
		'v1/process-text',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
			'action'      => 'prompt',
			'prompt'      => Arr::get( $request, 'prompt', '' ),
			'original'    => Arr::get( $request, 'originalContent', '' ),
			'short'       => Arr::get( $request, 'short', false ),
			'type'        => Arr::get( $request, 'type', 'text' ),
		)
	);
}


function kubio_ai_change_text( WP_REST_Request $request ) {

	return kubio_ai_call_api(
		'v1/process-text',
		array(
			'siteContext' => Arr::get( $request, 'siteContext', array() ),
			'pageContext' => Arr::get( $request, 'pageContext', array() ),
			'pageTitle'   => Arr::get( $request, 'pageTitle', array() ),
			'action'      => Arr::get( $request, 'type', 'tone' ),
			'to'          => Arr::get( $request, 'promptData', '' ),
			'content'     => Arr::get( $request, 'text', '' ),
		)
	);
}

function kubio_ai_sd_image_from_text( WP_REST_Request $request ) {

	$image_size           = Arr::get( $request, 'imageSize', array( 1024, 1024 ) );
	list($width, $height) = kubio_ai_sd_xl_determine_appropriate_size( ...$image_size );

	$response = kubio_ai_call_api(
		'v1/image-generation/text-to-image',
		array(
			'steps'        => 40,
			'width'        => 512,
			'height'       => 512,
			'seed'         => 0,
			'cfg_scale'    => 5,
			'samples'      => 1,
			'style_preset' => 'photographic',
			'text_prompts' => array(
				array(
					'text'   => Arr::get( $request, 'prompt', '' ),
					'weight' => 1,
				),
				array(
					'text'   => 'blurry, bad',
					'weight' => -1,
				),
			),
			'width'        => $width,
			'height'       => $height,
		)
	);

	if ( is_wp_error( $response ) ) {
		return $response;
	}

	$artifacts = Arr::get( $response, 'artifacts', array() );

	if ( ! count( $artifacts ) ) {
		return new \WP_Error(
			'error_no_image_generate',
			__( 'No image was generated', 'kubio' )
		);
	}

	$images = array();
	$errors = array();
	foreach ( $artifacts  as $image ) {
		$filename = wp_generate_uuid4() . '.jpg';
		$upload   = Importer::base64ToImage( $filename, $image['base64'] );
		if ( is_wp_error( $upload ) ) {
			$errors[] = $upload;
		} else {
			$images[] = $upload;
		}
	}

	if ( ! empty( $errors ) ) {
		return $errors[0];
	}

	return $images[0]['url'];
}


function kubio_remove_auto_start_black_wizard_onboarding_flag() {
	delete_option( '_kubio_auto_start_black_wizard_onboarding' );
	return true;
}

© KUJUNTI.ID