mirror of
https://github.com/mashirozx/sakura.git
synced 2024-12-12 09:54:35 +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
|
||||
|
||||
![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)
|
||||
|
@ -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)
|
||||
|
@ -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>' : '';
|
||||
|
270
functions.php
270
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')) {
|
||||
<?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>';
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user