Compare commits
	
		
			10 Commits
		
	
	
		
			77722ed4d7
			...
			5b83babeb9
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						5b83babeb9 | |
| 
							
							
								 | 
						9a7a597ac1 | |
| 
							
							
								 | 
						233d0356c9 | |
| 
							
							
								 | 
						8bea22e9da | |
| 
							
							
								 | 
						0128ba483b | |
| 
							
							
								 | 
						8842caf739 | |
| 
							
							
								 | 
						a0950f1a5c | |
| 
							
							
								 | 
						6e56d0ba42 | |
| 
							
							
								 | 
						b73c45f022 | |
| 
							
							
								 | 
						8a46b8545f | 
| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
Sakura🌸: A Wonderful WordPress Theme
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
[中文](README.md) | Engilsh
 | 
			
		||||
[中文](README.md) | English
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
[](https://github.com/mashirozx/Sakura/releases/latest)
 | 
			
		||||
[](https://github.com/mashirozx/Sakura/commits/dev)
 | 
			
		||||
[](https://www.jsdelivr.com/package/gh/moezx/cdn)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								README.md
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
Sakura🌸: 樱花庄的白猫博客主题
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
中文 | [Engilsh](README-en.md)
 | 
			
		||||
中文 | [English](README-en.md)
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
[](https://github.com/mashirozx/Sakura/releases/latest)
 | 
			
		||||
[](https://github.com/mashirozx/Sakura/commits/dev)
 | 
			
		||||
[](https://www.jsdelivr.com/package/gh/moezx/cdn)
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +21,7 @@
 | 
			
		|||
 | 
			
		||||
主题使用说明见:<https://2heng.xin/theme-sakura/>
 | 
			
		||||
 | 
			
		||||
本仓库国内镜像:<https://gitee.com/mashirozx/Sakura>
 | 
			
		||||
本仓库国内镜像:<https://git.moezx.cc/mirrors/sakura>
 | 
			
		||||
 | 
			
		||||
主题交流群:860262481
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,7 +48,7 @@
 | 
			
		|||
			<?php endif; ?>
 | 
			
		||||
 | 
			
		||||
			<?php
 | 
			
		||||
 | 
			
		||||
				$robot_comments = '';
 | 
			
		||||
				if(comments_open()){
 | 
			
		||||
					if(akina_option('norobot')) $robot_comments = '<label class="siren-checkbox-label"><input class="siren-checkbox-radio" type="checkbox" name="no-robot"><span class="siren-no-robot-checkbox siren-checkbox-radioInput"></span>'.__('I\'m not a robot', 'sakura').'</label>';
 | 
			
		||||
					$private_ms = akina_option('open_private_message') ? '<label class="siren-checkbox-label"><input class="siren-checkbox-radio" type="checkbox" name="is-private"><span class="siren-is-private-checkbox siren-checkbox-radioInput"></span>'.__('Comment in private', 'sakura').'</label>' : '';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										281
									
								
								functions.php
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -188,7 +188,7 @@ function sakura_scripts()
 | 
			
		|||
        wp_enqueue_style('saukra_css', 'https://cdn.jsdelivr.net/gh/mashirozx/Sakura@' . SAKURA_VERSION . '/style.min.css', array(), SAKURA_VERSION);
 | 
			
		||||
        wp_enqueue_script('app', 'https://cdn.jsdelivr.net/gh/mashirozx/Sakura@' . SAKURA_VERSION . '/js/sakura-app.min.js', array(), SAKURA_VERSION, true);
 | 
			
		||||
    }
 | 
			
		||||
    wp_enqueue_script('github_card', 'https://cdn.jsdelivr.net/github-cards/latest/widget.js', array(), SAKURA_VERSION, true);
 | 
			
		||||
    //wp_enqueue_script('github_card', 'https://cdn.jsdelivr.net/github-cards/latest/widget.js', array(), SAKURA_VERSION, true);
 | 
			
		||||
 | 
			
		||||
    if (is_singular() && comments_open() && get_option('thread_comments')) {
 | 
			
		||||
        wp_enqueue_script('comment-reply');
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +204,7 @@ function sakura_scripts()
 | 
			
		|||
    // }
 | 
			
		||||
    //拦截移动端
 | 
			
		||||
    version_compare($GLOBALS['wp_version'], '5.1', '>=') ? $reply_link_version = 'new' : $reply_link_version = 'old';
 | 
			
		||||
    $gravatar_url = akina_option('gravatar_proxy') ?: 'secure.gravatar.com/avatar';
 | 
			
		||||
    $gravatar_url = akina_option('gravatar_proxy') ?: 'dn-qiniu-avatar.qbox.me/avatar';
 | 
			
		||||
    wp_localize_script('app', 'Poi', array(
 | 
			
		||||
        'pjax' => akina_option('poi_pjax'),
 | 
			
		||||
        'movies' => $movies,
 | 
			
		||||
| 
						 | 
				
			
			@ -249,149 +249,160 @@ require get_template_directory() . '/inc/categories-images.php';
 | 
			
		|||
function convertip($ip)
 | 
			
		||||
{
 | 
			
		||||
    error_reporting(E_ALL ^ E_NOTICE);
 | 
			
		||||
    $dat_path = dirname(__FILE__) . '/inc/QQWry.Dat';
 | 
			
		||||
    if (!$fd = @fopen($dat_path, 'rb')) {
 | 
			
		||||
        return 'IP date file not exists or access denied';
 | 
			
		||||
    }
 | 
			
		||||
    $ip = explode('.', $ip);
 | 
			
		||||
    $ipNum = intval($ip[0]) * 16777216 + intval($ip[1]) * 65536 + intval($ip[2]) * 256 + intval($ip[3]);
 | 
			
		||||
    $DataBegin = fread($fd, 4);
 | 
			
		||||
    $DataEnd = fread($fd, 4);
 | 
			
		||||
    $ipbegin = implode('', unpack('L', $DataBegin));
 | 
			
		||||
    if ($ipbegin < 0) {
 | 
			
		||||
        $ipbegin += pow(2, 32);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $ipend = implode('', unpack('L', $DataEnd));
 | 
			
		||||
    if ($ipend < 0) {
 | 
			
		||||
        $ipend += pow(2, 32);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $ipAllNum = ($ipend - $ipbegin) / 7 + 1;
 | 
			
		||||
    $BeginNum = 0;
 | 
			
		||||
    $EndNum = $ipAllNum;
 | 
			
		||||
    while ($ip1num > $ipNum || $ip2num < $ipNum) {
 | 
			
		||||
        $Middle = intval(($EndNum + $BeginNum) / 2);
 | 
			
		||||
        fseek($fd, $ipbegin + 7 * $Middle);
 | 
			
		||||
        $ipData1 = fread($fd, 4);
 | 
			
		||||
        if (strlen($ipData1) < 4) {
 | 
			
		||||
            fclose($fd);
 | 
			
		||||
            return 'System Error';
 | 
			
		||||
        }
 | 
			
		||||
        $ip1num = implode('', unpack('L', $ipData1));
 | 
			
		||||
        if ($ip1num < 0) {
 | 
			
		||||
            $ip1num += pow(2, 32);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ($ip1num > $ipNum) {
 | 
			
		||||
            $EndNum = $Middle;
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
        $DataSeek = fread($fd, 3);
 | 
			
		||||
        if (strlen($DataSeek) < 3) {
 | 
			
		||||
            fclose($fd);
 | 
			
		||||
            return 'System Error';
 | 
			
		||||
        }
 | 
			
		||||
        $DataSeek = implode('', unpack('L', $DataSeek . chr(0)));
 | 
			
		||||
        fseek($fd, $DataSeek);
 | 
			
		||||
        $ipData2 = fread($fd, 4);
 | 
			
		||||
        if (strlen($ipData2) < 4) {
 | 
			
		||||
            fclose($fd);
 | 
			
		||||
            return 'System Error';
 | 
			
		||||
        }
 | 
			
		||||
        $ip2num = implode('', unpack('L', $ipData2));
 | 
			
		||||
        if ($ip2num < 0) {
 | 
			
		||||
            $ip2num += pow(2, 32);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ($ip2num < $ipNum) {
 | 
			
		||||
            if ($Middle == $BeginNum) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'Unknown';
 | 
			
		||||
            }
 | 
			
		||||
            $BeginNum = $Middle;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    $ipFlag = fread($fd, 1);
 | 
			
		||||
    if ($ipFlag == chr(1)) {
 | 
			
		||||
        $ipSeek = fread($fd, 3);
 | 
			
		||||
        if (strlen($ipSeek) < 3) {
 | 
			
		||||
            fclose($fd);
 | 
			
		||||
            return 'System Error';
 | 
			
		||||
        }
 | 
			
		||||
        $ipSeek = implode('', unpack('L', $ipSeek . chr(0)));
 | 
			
		||||
        fseek($fd, $ipSeek);
 | 
			
		||||
        $ipFlag = fread($fd, 1);
 | 
			
		||||
    }
 | 
			
		||||
    if ($ipFlag == chr(2)) {
 | 
			
		||||
        $AddrSeek = fread($fd, 3);
 | 
			
		||||
        if (strlen($AddrSeek) < 3) {
 | 
			
		||||
            fclose($fd);
 | 
			
		||||
            return 'System Error';
 | 
			
		||||
        }
 | 
			
		||||
        $ipFlag = fread($fd, 1);
 | 
			
		||||
        if ($ipFlag == chr(2)) {
 | 
			
		||||
            $AddrSeek2 = fread($fd, 3);
 | 
			
		||||
            if (strlen($AddrSeek2) < 3) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
 | 
			
		||||
            fseek($fd, $AddrSeek2);
 | 
			
		||||
    if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
 | 
			
		||||
        $file_contents = file_get_contents('http://ip.taobao.com/outGetIpInfo?accessKey=alibaba-inc&ip='.$ip);
 | 
			
		||||
        $result = json_decode($file_contents,true);
 | 
			
		||||
        if ($result['data']['country'] != '中国') {
 | 
			
		||||
            return $result['data']['country'];
 | 
			
		||||
        } else {
 | 
			
		||||
            fseek($fd, -1, SEEK_CUR);
 | 
			
		||||
            return $result['data']['region'].' · '.$result['data']['city'].' · '.$result['data']['isp'];
 | 
			
		||||
        }
 | 
			
		||||
        while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
            $ipAddr2 .= $char;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $AddrSeek = implode('', unpack('L', $AddrSeek . chr(0)));
 | 
			
		||||
        fseek($fd, $AddrSeek);
 | 
			
		||||
        while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
            $ipAddr1 .= $char;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    } else {
 | 
			
		||||
        fseek($fd, -1, SEEK_CUR);
 | 
			
		||||
        while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
            $ipAddr1 .= $char;
 | 
			
		||||
        $dat_path = dirname(__FILE__) . '/inc/QQWry.Dat';
 | 
			
		||||
        if (!$fd = @fopen($dat_path, 'rb')) {
 | 
			
		||||
            return 'IP date file not exists or access denied';
 | 
			
		||||
        }
 | 
			
		||||
        $ip = explode('.', $ip);
 | 
			
		||||
        $ipNum = intval($ip[0]) * 16777216 + intval($ip[1]) * 65536 + intval($ip[2]) * 256 + intval($ip[3]);
 | 
			
		||||
        $DataBegin = fread($fd, 4);
 | 
			
		||||
        $DataEnd = fread($fd, 4);
 | 
			
		||||
        $ipbegin = implode('', unpack('L', $DataBegin));
 | 
			
		||||
        if ($ipbegin < 0) {
 | 
			
		||||
            $ipbegin += pow(2, 32);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $ipFlag = fread($fd, 1);
 | 
			
		||||
        if ($ipFlag == chr(2)) {
 | 
			
		||||
            $AddrSeek2 = fread($fd, 3);
 | 
			
		||||
            if (strlen($AddrSeek2) < 3) {
 | 
			
		||||
        $ipend = implode('', unpack('L', $DataEnd));
 | 
			
		||||
        if ($ipend < 0) {
 | 
			
		||||
            $ipend += pow(2, 32);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $ipAllNum = ($ipend - $ipbegin) / 7 + 1;
 | 
			
		||||
        $BeginNum = 0;
 | 
			
		||||
        $EndNum = $ipAllNum;
 | 
			
		||||
        $ip1num = $ip2num = $ipAddr1 = $ipAddr2 = '';
 | 
			
		||||
        while ($ip1num > $ipNum || $ip2num < $ipNum) {
 | 
			
		||||
            $Middle = intval(($EndNum + $BeginNum) / 2);
 | 
			
		||||
            fseek($fd, $ipbegin + 7 * $Middle);
 | 
			
		||||
            $ipData1 = fread($fd, 4);
 | 
			
		||||
            if (strlen($ipData1) < 4) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
 | 
			
		||||
            fseek($fd, $AddrSeek2);
 | 
			
		||||
            $ip1num = implode('', unpack('L', $ipData1));
 | 
			
		||||
            if ($ip1num < 0) {
 | 
			
		||||
                $ip1num += pow(2, 32);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($ip1num > $ipNum) {
 | 
			
		||||
                $EndNum = $Middle;
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            $DataSeek = fread($fd, 3);
 | 
			
		||||
            if (strlen($DataSeek) < 3) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $DataSeek = implode('', unpack('L', $DataSeek . chr(0)));
 | 
			
		||||
            fseek($fd, $DataSeek);
 | 
			
		||||
            $ipData2 = fread($fd, 4);
 | 
			
		||||
            if (strlen($ipData2) < 4) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $ip2num = implode('', unpack('L', $ipData2));
 | 
			
		||||
            if ($ip2num < 0) {
 | 
			
		||||
                $ip2num += pow(2, 32);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($ip2num < $ipNum) {
 | 
			
		||||
                if ($Middle == $BeginNum) {
 | 
			
		||||
                    fclose($fd);
 | 
			
		||||
                    return 'Unknown';
 | 
			
		||||
                }
 | 
			
		||||
                $BeginNum = $Middle;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        $ipFlag = fread($fd, 1);
 | 
			
		||||
        if ($ipFlag == chr(1)) {
 | 
			
		||||
            $ipSeek = fread($fd, 3);
 | 
			
		||||
            if (strlen($ipSeek) < 3) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $ipSeek = implode('', unpack('L', $ipSeek . chr(0)));
 | 
			
		||||
            fseek($fd, $ipSeek);
 | 
			
		||||
            $ipFlag = fread($fd, 1);
 | 
			
		||||
        }
 | 
			
		||||
        if ($ipFlag == chr(2)) {
 | 
			
		||||
            $AddrSeek = fread($fd, 3);
 | 
			
		||||
            if (strlen($AddrSeek) < 3) {
 | 
			
		||||
                fclose($fd);
 | 
			
		||||
                return 'System Error';
 | 
			
		||||
            }
 | 
			
		||||
            $ipFlag = fread($fd, 1);
 | 
			
		||||
            if ($ipFlag == chr(2)) {
 | 
			
		||||
                $AddrSeek2 = fread($fd, 3);
 | 
			
		||||
                if (strlen($AddrSeek2) < 3) {
 | 
			
		||||
                    fclose($fd);
 | 
			
		||||
                    return 'System Error';
 | 
			
		||||
                }
 | 
			
		||||
                $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
 | 
			
		||||
                fseek($fd, $AddrSeek2);
 | 
			
		||||
            } else {
 | 
			
		||||
                fseek($fd, -1, SEEK_CUR);
 | 
			
		||||
            }
 | 
			
		||||
            while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
                $ipAddr2 .= $char;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $AddrSeek = implode('', unpack('L', $AddrSeek . chr(0)));
 | 
			
		||||
            fseek($fd, $AddrSeek);
 | 
			
		||||
            while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
                $ipAddr1 .= $char;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
            fseek($fd, -1, SEEK_CUR);
 | 
			
		||||
            while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
                $ipAddr1 .= $char;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $ipFlag = fread($fd, 1);
 | 
			
		||||
            if ($ipFlag == chr(2)) {
 | 
			
		||||
                $AddrSeek2 = fread($fd, 3);
 | 
			
		||||
                if (strlen($AddrSeek2) < 3) {
 | 
			
		||||
                    fclose($fd);
 | 
			
		||||
                    return 'System Error';
 | 
			
		||||
                }
 | 
			
		||||
                $AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
 | 
			
		||||
                fseek($fd, $AddrSeek2);
 | 
			
		||||
            } else {
 | 
			
		||||
                fseek($fd, -1, SEEK_CUR);
 | 
			
		||||
            }
 | 
			
		||||
            while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
                $ipAddr2 .= $char;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        while (($char = fread($fd, 1)) != chr(0)) {
 | 
			
		||||
            $ipAddr2 .= $char;
 | 
			
		||||
        fclose($fd);
 | 
			
		||||
        if (preg_match('/http/i', $ipAddr2)) {
 | 
			
		||||
            $ipAddr2 = '';
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    fclose($fd);
 | 
			
		||||
    if (preg_match('/http/i', $ipAddr2)) {
 | 
			
		||||
        $ipAddr2 = '';
 | 
			
		||||
    }
 | 
			
		||||
    $ipaddr = "$ipAddr1 $ipAddr2";
 | 
			
		||||
    $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
 | 
			
		||||
    $ipaddr = preg_replace('/^s*/is', '', $ipaddr);
 | 
			
		||||
    $ipaddr = preg_replace('/s*$/is', '', $ipaddr);
 | 
			
		||||
    if (preg_match('/http/i', $ipaddr) || $ipaddr == '') {
 | 
			
		||||
        $ipaddr = 'Unknown';
 | 
			
		||||
    }
 | 
			
		||||
    $ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);
 | 
			
		||||
    if ($ipaddr != '  ') {
 | 
			
		||||
        $ipaddr = "$ipAddr1 $ipAddr2";
 | 
			
		||||
        $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
 | 
			
		||||
        $ipaddr = preg_replace('/^s*/is', '', $ipaddr);
 | 
			
		||||
        $ipaddr = preg_replace('/s*$/is', '', $ipaddr);
 | 
			
		||||
        if (preg_match('/http/i', $ipaddr) || $ipaddr == '') {
 | 
			
		||||
            $ipaddr = 'Unknown';
 | 
			
		||||
        }
 | 
			
		||||
        $ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);
 | 
			
		||||
        if ($ipaddr != '  ') {
 | 
			
		||||
            return $ipaddr;
 | 
			
		||||
        } else {
 | 
			
		||||
            $ipaddr = 'Unknown';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $ipaddr;
 | 
			
		||||
    } else {
 | 
			
		||||
        $ipaddr = 'Unknown';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return $ipaddr;
 | 
			
		||||
}
 | 
			
		||||
//Comment Location End
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -428,6 +439,7 @@ if (!function_exists('akina_comment_format')) {
 | 
			
		|||
    									<?php if (current_user_can('manage_options') and (wp_is_mobile() == false)) {
 | 
			
		||||
            $comment_ID = $comment->comment_ID;
 | 
			
		||||
            $i_private = get_comment_meta($comment_ID, '_private', true);
 | 
			
		||||
            $flag = '';
 | 
			
		||||
            $flag .= ' <i class="fa fa-snowflake-o" aria-hidden="true"></i> <a href="javascript:;" data-actionp="set_private" data-idp="' . get_comment_id() . '" id="sp" class="sm" style="color:rgba(0,0,0,.35)">' . __("Private", "sakura") . ': <span class="has_set_private">';
 | 
			
		||||
            if (!empty($i_private)) {
 | 
			
		||||
                $flag .= __("Yes", "sakura") . ' <i class="fa fa-lock" aria-hidden="true"></i>';
 | 
			
		||||
| 
						 | 
				
			
			@ -611,7 +623,7 @@ function get_link_items()
 | 
			
		|||
 */
 | 
			
		||||
function gravatar_cn($url)
 | 
			
		||||
{    
 | 
			
		||||
    $gravatar_url = array('0.gravatar.com/avatar','1.gravatar.com/avatar','2.gravatar.com/avatar','secure.gravatar.com/avatar');
 | 
			
		||||
    $gravatar_url = array('dn-qiniu-avatar.qbox.me/avatar','cdn.v2ex.com/gravatar','gravatar.loli.net/avatar','gravatar.zeruns.tech/avatar');
 | 
			
		||||
    //return str_replace($gravatar_url, 'cn.gravatar.com', $url);
 | 
			
		||||
    //官方服务器近期大陆访问 429,建议使用镜像
 | 
			
		||||
    return str_replace( $gravatar_url, akina_option('gravatar_proxy'), $url );
 | 
			
		||||
| 
						 | 
				
			
			@ -1346,7 +1358,10 @@ function memory_archives_list()
 | 
			
		|||
            if ($mon != $mon_tmp && $mon > 0) {
 | 
			
		||||
                $output .= '</ul></li>';
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
			if ($mon == $mon_tmp && $year != $year_tmp ) {
 | 
			
		||||
				$mon=$mon_tmp + 12;
 | 
			
		||||
                $output .= '</ul>';
 | 
			
		||||
            }
 | 
			
		||||
            if ($year != $year_tmp && $year > 0) {
 | 
			
		||||
                $output .= '</ul>';
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 900 B  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								images/logo.png
								
								
								
								
							
							
						
						| 
		 Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 113 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 19 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 19 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 122 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 110 KiB  | 
| 
		 Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 18 KiB  | 
| 
		 Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 56 KiB  | 
| 
		 Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 29 KiB  | 
| 
		 Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 18 KiB  | 
| 
		 Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 40 KiB  | 
| 
		 Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 34 KiB  | 
| 
		 Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 26 KiB  | 
| 
		 Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 24 KiB  | 
| 
		 Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 11 KiB  | 
| 
		 Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 21 KiB  | 
| 
		 Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 39 KiB  | 
| 
		 Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 47 KiB  | 
| 
		 Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 8.1 KiB  | 
| 
		 Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 28 KiB  | 
| 
		 Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 28 KiB  | 
| 
		 Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 28 KiB  | 
| 
		 Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 8.9 KiB  | 
| 
		 Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 20 KiB  | 
| 
		 Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 19 KiB  | 
| 
		 Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								images/temp.jpg
								
								
								
								
							
							
						
						| 
		 Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 30 KiB  | 
| 
						 | 
				
			
			@ -496,7 +496,7 @@ class Meting
 | 
			
		|||
            case 'netease':
 | 
			
		||||
            $api = array(
 | 
			
		||||
                'method' => 'POST',
 | 
			
		||||
                'url'    => 'http://music.163.com/api/v3/playlist/detail',
 | 
			
		||||
                'url'    => 'http://music.163.com/api/v6/playlist/detail',
 | 
			
		||||
                'body'   => array(
 | 
			
		||||
                    's'  => '0',
 | 
			
		||||
                    'id' => $id,
 | 
			
		||||
| 
						 | 
				
			
			@ -1362,4 +1362,4 @@ class Meting
 | 
			
		|||
 | 
			
		||||
        return $result;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.6 KiB  | 
| 
		 Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.6 KiB  | 
| 
		 Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB  | 
| 
		 After Width: | Height: | Size: 1.0 MiB  | 
| 
		 After Width: | Height: | Size: 1.2 MiB  | 
| 
		 After Width: | Height: | Size: 2.1 MiB  | 
| 
		 After Width: | Height: | Size: 2.0 MiB  | 
| 
		 After Width: | Height: | Size: 2.5 MiB  | 
| 
		 After Width: | Height: | Size: 920 KiB  | 
| 
		 After Width: | Height: | Size: 2.4 MiB  | 
| 
		 After Width: | Height: | Size: 1.9 MiB  | 
| 
		 After Width: | Height: | Size: 1.1 MiB  | 
| 
		 After Width: | Height: | Size: 2.2 MiB  | 
| 
		 After Width: | Height: | Size: 2.0 MiB  | 
| 
		 After Width: | Height: | Size: 535 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 MiB  | 
| 
		 After Width: | Height: | Size: 2.9 MiB  | 
| 
		 After Width: | Height: | Size: 1.1 MiB  | 
| 
		 After Width: | Height: | Size: 926 KiB  | 
| 
		 After Width: | Height: | Size: 1.8 MiB  | 
| 
		 After Width: | Height: | Size: 1.5 MiB  | 
| 
		 After Width: | Height: | Size: 487 KiB  | 
| 
		 After Width: | Height: | Size: 689 KiB  | 
| 
		 After Width: | Height: | Size: 2.9 MiB  | 
| 
		 After Width: | Height: | Size: 1.4 MiB  | 
| 
		 After Width: | Height: | Size: 1019 KiB  | 
| 
		 After Width: | Height: | Size: 3.0 MiB  | 
| 
		 After Width: | Height: | Size: 2.8 MiB  | 
| 
		 After Width: | Height: | Size: 776 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 MiB  | 
| 
		 After Width: | Height: | Size: 2.1 MiB  | 
| 
		 Before Width: | Height: | Size: 131 KiB  | 
| 
		 Before Width: | Height: | Size: 248 KiB  | 
| 
		 Before Width: | Height: | Size: 55 KiB  | 
| 
		 Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 41 KiB  | 
| 
		 Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 95 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB  | 
| 
		 Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 191 KiB  | 
| 
		 Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB  | 
| 
		 Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 38 KiB  | 
| 
		 Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								screenshot.jpg
								
								
								
								
							
							
						
						| 
		 Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 95 KiB  | 
| 
						 | 
				
			
			@ -5,7 +5,7 @@ Theme URI: https://github.com/mashirozx/Sakura/
 | 
			
		|||
Author: Mashiro, Spirit, Louie, Fuzzz
 | 
			
		||||
Author URI: http://2heng.xin
 | 
			
		||||
Description: A wonderful branch of theme Akina
 | 
			
		||||
Version: 3.3.9
 | 
			
		||||
Version: 3.4.0
 | 
			
		||||
License: GNU General Public License v2 or later
 | 
			
		||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
 | 
			
		||||
Text Domain: sakura
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||