mirror of
https://github.com/mashirozx/sakura.git
synced 2024-12-12 09:54:35 +08:00
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;
|
|||
|
}
|
|||
|
}
|