mirror of
https://github.com/mashirozx/sakura.git
synced 2024-11-21 22:38:12 +08:00
perf: update to v3.4.0 (#273)
* fix: bug fix update Meting API, add ipv6 support, fix icon close #255,#243 * style: add some variable definitions support php8 * perf: update to v3.4.0 * docs: update screenshot
This commit is contained in:
parent
8a46b8545f
commit
b73c45f022
@ -3,10 +3,10 @@ Sakura🌸: A Wonderful WordPress Theme
|
|||||||
|
|
||||||
[中文](README.md) | Engilsh
|
[中文](README.md) | Engilsh
|
||||||
|
|
||||||
![Sakura](https://view.moezx.cc/images/2018/05/26/sakura.png)
|
![Sakura](screenshot.jpg)
|
||||||
|
|
||||||
![PHP version](https://img.shields.io/badge/PHP-7.1+-4F5B93.svg?style=flat-square)
|
![PHP version](https://img.shields.io/badge/PHP-7.1+-4F5B93.svg?style=flat-square&logo=php)
|
||||||
![WP version](https://img.shields.io/badge/WordPress-5.0+-0073aa.svg?style=flat-square)
|
![WP version](https://img.shields.io/badge/WordPress-5.3-0073aa.svg?style=flat-square&logo=wordpress)
|
||||||
[![GitHub release](https://img.shields.io/github/release/mashirozx/Sakura.svg?style=flat-square)](https://github.com/mashirozx/Sakura/releases/latest)
|
[![GitHub release](https://img.shields.io/github/release/mashirozx/Sakura.svg?style=flat-square)](https://github.com/mashirozx/Sakura/releases/latest)
|
||||||
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/mashirozx/Sakura/latest/dev.svg?style=flat-square)](https://github.com/mashirozx/Sakura/commits/dev)
|
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/mashirozx/Sakura/latest/dev.svg?style=flat-square)](https://github.com/mashirozx/Sakura/commits/dev)
|
||||||
[![](https://data.jsdelivr.com/v1/package/gh/moezx/cdn/badge)](https://www.jsdelivr.com/package/gh/moezx/cdn)
|
[![](https://data.jsdelivr.com/v1/package/gh/moezx/cdn/badge)](https://www.jsdelivr.com/package/gh/moezx/cdn)
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
中文 | [Engilsh](README-en.md)
|
中文 | [Engilsh](README-en.md)
|
||||||
|
|
||||||
![Sakura](https://view.moezx.cc/images/2018/05/26/sakura.png)
|
![Sakura](screenshot.jpg)
|
||||||
|
|
||||||
![PHP version](https://shader.2heng.xin/badge/PHP-7.1+-4F5B93.svg?style=flat-square&logo=php)
|
![PHP version](https://img.shields.io/badge/PHP-7.1+-4F5B93.svg?style=flat-square&logo=php)
|
||||||
![WP version](https://shader.2heng.xin/badge/WordPress-5.3-0073aa.svg?style=flat-square&logo=wordpress)
|
![WP version](https://img.shields.io/badge/WordPress-5.3-0073aa.svg?style=flat-square&logo=wordpress)
|
||||||
[![GitHub release](https://img.shields.io/github/v/release/mashirozx/Sakura.svg?style=flat-square&logo=github)](https://github.com/mashirozx/Sakura/releases/latest)
|
[![GitHub release](https://img.shields.io/github/v/release/mashirozx/Sakura.svg?style=flat-square&logo=github)](https://github.com/mashirozx/Sakura/releases/latest)
|
||||||
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/mashirozx/Sakura/latest/dev.svg?style=flat-square&logo=git&color=important)](https://github.com/mashirozx/Sakura/commits/dev)
|
[![Github commits (since latest release)](https://img.shields.io/github/commits-since/mashirozx/Sakura/latest/dev.svg?style=flat-square&logo=git&color=important)](https://github.com/mashirozx/Sakura/commits/dev)
|
||||||
[![](https://data.jsdelivr.com/v1/package/gh/moezx/cdn/badge)](https://www.jsdelivr.com/package/gh/moezx/cdn)
|
[![](https://data.jsdelivr.com/v1/package/gh/moezx/cdn/badge)](https://www.jsdelivr.com/package/gh/moezx/cdn)
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
$robot_comments = '';
|
||||||
if(comments_open()){
|
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>';
|
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>' : '';
|
$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>' : '';
|
||||||
|
270
functions.php
270
functions.php
@ -249,149 +249,160 @@ require get_template_directory() . '/inc/categories-images.php';
|
|||||||
function convertip($ip)
|
function convertip($ip)
|
||||||
{
|
{
|
||||||
error_reporting(E_ALL ^ E_NOTICE);
|
error_reporting(E_ALL ^ E_NOTICE);
|
||||||
$dat_path = dirname(__FILE__) . '/inc/QQWry.Dat';
|
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
|
||||||
if (!$fd = @fopen($dat_path, 'rb')) {
|
$file_contents = file_get_contents('http://ip.taobao.com/outGetIpInfo?accessKey=alibaba-inc&ip='.$ip);
|
||||||
return 'IP date file not exists or access denied';
|
$result = json_decode($file_contents,true);
|
||||||
}
|
if ($result['data']['country'] != '中国') {
|
||||||
$ip = explode('.', $ip);
|
return $result['data']['country'];
|
||||||
$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);
|
|
||||||
} else {
|
} 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 {
|
} else {
|
||||||
fseek($fd, -1, SEEK_CUR);
|
$dat_path = dirname(__FILE__) . '/inc/QQWry.Dat';
|
||||||
while (($char = fread($fd, 1)) != chr(0)) {
|
if (!$fd = @fopen($dat_path, 'rb')) {
|
||||||
$ipAddr1 .= $char;
|
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);
|
$ipend = implode('', unpack('L', $DataEnd));
|
||||||
if ($ipFlag == chr(2)) {
|
if ($ipend < 0) {
|
||||||
$AddrSeek2 = fread($fd, 3);
|
$ipend += pow(2, 32);
|
||||||
if (strlen($AddrSeek2) < 3) {
|
}
|
||||||
|
|
||||||
|
$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);
|
fclose($fd);
|
||||||
return 'System Error';
|
return 'System Error';
|
||||||
}
|
}
|
||||||
$AddrSeek2 = implode('', unpack('L', $AddrSeek2 . chr(0)));
|
$ip1num = implode('', unpack('L', $ipData1));
|
||||||
fseek($fd, $AddrSeek2);
|
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 {
|
} else {
|
||||||
fseek($fd, -1, SEEK_CUR);
|
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)) {
|
fclose($fd);
|
||||||
$ipAddr2 .= $char;
|
if (preg_match('/http/i', $ipAddr2)) {
|
||||||
|
$ipAddr2 = '';
|
||||||
}
|
}
|
||||||
}
|
$ipaddr = "$ipAddr1 $ipAddr2";
|
||||||
fclose($fd);
|
$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
|
||||||
if (preg_match('/http/i', $ipAddr2)) {
|
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
|
||||||
$ipAddr2 = '';
|
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
|
||||||
}
|
if (preg_match('/http/i', $ipaddr) || $ipaddr == '') {
|
||||||
$ipaddr = "$ipAddr1 $ipAddr2";
|
$ipaddr = 'Unknown';
|
||||||
$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
|
}
|
||||||
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
|
$ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);
|
||||||
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
|
if ($ipaddr != ' ') {
|
||||||
if (preg_match('/http/i', $ipaddr) || $ipaddr == '') {
|
return $ipaddr;
|
||||||
$ipaddr = 'Unknown';
|
} else {
|
||||||
}
|
$ipaddr = 'Unknown';
|
||||||
$ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);
|
}
|
||||||
if ($ipaddr != ' ') {
|
|
||||||
return $ipaddr;
|
return $ipaddr;
|
||||||
} else {
|
|
||||||
$ipaddr = 'Unknown';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $ipaddr;
|
|
||||||
}
|
}
|
||||||
//Comment Location End
|
//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)) {
|
<?php if (current_user_can('manage_options') and (wp_is_mobile() == false)) {
|
||||||
$comment_ID = $comment->comment_ID;
|
$comment_ID = $comment->comment_ID;
|
||||||
$i_private = get_comment_meta($comment_ID, '_private', true);
|
$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">';
|
$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)) {
|
if (!empty($i_private)) {
|
||||||
$flag .= __("Yes", "sakura") . ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
$flag .= __("Yes", "sakura") . ' <i class="fa fa-lock" aria-hidden="true"></i>';
|
||||||
|
@ -496,7 +496,7 @@ class Meting
|
|||||||
case 'netease':
|
case 'netease':
|
||||||
$api = array(
|
$api = array(
|
||||||
'method' => 'POST',
|
'method' => 'POST',
|
||||||
'url' => 'http://music.163.com/api/v3/playlist/detail',
|
'url' => 'http://music.163.com/api/v6/playlist/detail',
|
||||||
'body' => array(
|
'body' => array(
|
||||||
's' => '0',
|
's' => '0',
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
@ -1362,4 +1362,4 @@ class Meting
|
|||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ Theme URI: https://github.com/mashirozx/Sakura/
|
|||||||
Author: Mashiro, Spirit, Louie, Fuzzz
|
Author: Mashiro, Spirit, Louie, Fuzzz
|
||||||
Author URI: http://2heng.xin
|
Author URI: http://2heng.xin
|
||||||
Description: A wonderful branch of theme Akina
|
Description: A wonderful branch of theme Akina
|
||||||
Version: 3.3.9
|
Version: 3.4.0
|
||||||
License: GNU General Public License v2 or later
|
License: GNU General Public License v2 or later
|
||||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
Text Domain: sakura
|
Text Domain: sakura
|
||||||
|
Loading…
Reference in New Issue
Block a user