103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						||
 | 
						||
namespace Sakura\API;
 | 
						||
 | 
						||
class Cache
 | 
						||
{
 | 
						||
    public static function search_json() {
 | 
						||
        global $more;
 | 
						||
        $vowels = array("[", "{", "]", "}", "<", ">", "\r\n", "\r", "\n", "-", "'", '"', '`', " ", ":", ";", '\\', "  ", "toc");
 | 
						||
        $regex = <<<EOS
 | 
						||
/<\/?[a-zA-Z]+("[^"]*"|'[^']*'|[^'">])*>|begin[\S\s]*\/begin|hermit[\S\s]*\/hermit|img[\S\s]*\/img|{{.*?}}|:.*?:/m
 | 
						||
EOS;
 | 
						||
        $more = 1;
 | 
						||
        $output = array();
 | 
						||
 | 
						||
        $posts = new \WP_Query('posts_per_page=-1&post_status=publish&post_type=post');
 | 
						||
        while ($posts->have_posts()): $posts->the_post();
 | 
						||
            $output[] = array(
 | 
						||
                "type" => "post",
 | 
						||
                "link" => get_permalink(),
 | 
						||
                "title" => get_the_title(),
 | 
						||
                "comments" => get_comments_number('0', '1', '%'),
 | 
						||
                "text" => str_replace($vowels, " ", preg_replace($regex, ' ', apply_filters('the_content', get_the_content())))
 | 
						||
            );
 | 
						||
        endwhile;
 | 
						||
        wp_reset_postdata();
 | 
						||
 | 
						||
        $pages = new \WP_Query('posts_per_page=-1&post_status=publish&post_type=page');
 | 
						||
        while ($pages->have_posts()): $pages->the_post();
 | 
						||
            $output[] = array(
 | 
						||
                "type" => "page",
 | 
						||
                "link" => get_permalink(),
 | 
						||
                "title" => get_the_title(),
 | 
						||
                "comments" => get_comments_number('0', '1', '%'),
 | 
						||
                "text" => str_replace($vowels, " ", preg_replace($regex, ' ', apply_filters('the_content', get_the_content())))
 | 
						||
            );
 | 
						||
        endwhile;
 | 
						||
        wp_reset_postdata();
 | 
						||
 | 
						||
        $tags = get_tags();
 | 
						||
        foreach ($tags as $tag) {
 | 
						||
            $output[] = array(
 | 
						||
                "type" => "tag",
 | 
						||
                "link" => get_term_link($tag),
 | 
						||
                "title" => $tag->name,
 | 
						||
                "comments" => "",
 | 
						||
                "text" => ""
 | 
						||
            );
 | 
						||
        }
 | 
						||
 | 
						||
        $categories = get_categories();
 | 
						||
        foreach ($categories as $category) {
 | 
						||
            $output[] = array(
 | 
						||
                "type" => "category",
 | 
						||
                "link" => get_term_link($category),
 | 
						||
                "title" => $category->name,
 | 
						||
                "comments" => "",
 | 
						||
                "text" => ""
 | 
						||
            );
 | 
						||
        }
 | 
						||
        if (akina_option('live_search_comment')) {
 | 
						||
            $comments = get_comments();
 | 
						||
            foreach ($comments as $comment) {
 | 
						||
                $is_private = get_comment_meta($comment->comment_ID, '_private', true);
 | 
						||
                $output[] = array(
 | 
						||
                    "type" => "comment",
 | 
						||
                    "link" => get_comment_link($comment),
 | 
						||
                    "title" => get_the_title($comment->comment_post_ID),
 | 
						||
                    "comments" => "",
 | 
						||
                    "text" => $is_private ? ($comment->comment_author . ": " . __('The comment is private', 'sakura')) : str_replace($vowels, ' ', preg_replace($regex, ' ', $comment->comment_author . ":" . $comment->comment_content))
 | 
						||
                );
 | 
						||
            }
 | 
						||
        }
 | 
						||
        return $output;
 | 
						||
    }
 | 
						||
 | 
						||
 | 
						||
    public static function update_database() {
 | 
						||
        global $wpdb;
 | 
						||
        $sakura_table_name = $wpdb->base_prefix . 'sakura';
 | 
						||
        $img_domain = akina_option('cover_cdn') ? akina_option('cover_cdn') : get_template_directory();
 | 
						||
        $manifest = file_get_contents($img_domain . "/manifest/manifest.json");
 | 
						||
        if ($manifest) {
 | 
						||
            $manifest = array(
 | 
						||
                "mate_key" => "manifest_json",
 | 
						||
                "mate_value" => $manifest
 | 
						||
            );
 | 
						||
            $time = array(
 | 
						||
                "mate_key" => "json_time",
 | 
						||
                "mate_value" => date("Y-m-d H:i:s", time())
 | 
						||
            );
 | 
						||
 | 
						||
            $wpdb->query("DELETE FROM  $sakura_table_name WHERE `mate_key` ='manifest_json'");
 | 
						||
            $wpdb->query("DELETE FROM  $sakura_table_name WHERE `mate_key` ='json_time'");
 | 
						||
            $wpdb->insert($sakura_table_name, $manifest);
 | 
						||
            $wpdb->insert($sakura_table_name, $time);
 | 
						||
            $output = "manifest.json has been stored into database.";
 | 
						||
        } else {
 | 
						||
            $output = "manifest.json not found, please ensure your url ($img_domain) is corrent.";
 | 
						||
        }
 | 
						||
        return $output;
 | 
						||
    }
 | 
						||
} |