From b73c45f0221ae196f9feffb626ad927e524a5dba Mon Sep 17 00:00:00 2001 From: Spirit Date: Sun, 1 Aug 2021 13:04:09 +0800 Subject: [PATCH] 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 --- README-en.md | 6 +- README.md | 6 +- comments.php | 2 +- functions.php | 270 +++++++++++++++++++++-------------------- inc/classes/Meting.php | 4 +- style.css | 2 +- 6 files changed, 151 insertions(+), 139 deletions(-) diff --git a/README-en.md b/README-en.md index 62b91f7..1c21ddc 100644 --- a/README-en.md +++ b/README-en.md @@ -3,10 +3,10 @@ Sakura🌸: A Wonderful WordPress Theme [中文](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) -![WP version](https://img.shields.io/badge/WordPress-5.0+-0073aa.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.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 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) diff --git a/README.md b/README.md index cbdcb19..cb2a801 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ 中文 | [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) -![WP version](https://shader.2heng.xin/badge/WordPress-5.3-0073aa.svg?style=flat-square&logo=wordpress) +![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.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 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) diff --git a/comments.php b/comments.php index a343540..1b2f935 100644 --- a/comments.php +++ b/comments.php @@ -48,7 +48,7 @@ '.__('I\'m not a robot', 'sakura').''; $private_ms = akina_option('open_private_message') ? '' : ''; diff --git a/functions.php b/functions.php index 2c7135c..15d05ae 100644 --- a/functions.php +++ b/functions.php @@ -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')) { comment_ID; $i_private = get_comment_meta($comment_ID, '_private', true); + $flag = ''; $flag .= ' ' . __("Private", "sakura") . ': '; if (!empty($i_private)) { $flag .= __("Yes", "sakura") . ' '; diff --git a/inc/classes/Meting.php b/inc/classes/Meting.php index c274e80..c37f53b 100755 --- a/inc/classes/Meting.php +++ b/inc/classes/Meting.php @@ -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; } -} +} \ No newline at end of file diff --git a/style.css b/style.css index 9c01b52..83cb3b8 100644 --- a/style.css +++ b/style.css @@ -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