Skip to content

Commit

Permalink
修复一些已知的BUG
Browse files Browse the repository at this point in the history
  • Loading branch information
friend-nicen committed Apr 20, 2023
1 parent 58120ce commit 66822ea
Show file tree
Hide file tree
Showing 9 changed files with 179 additions and 168 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ nicen-localize-image,是一款用于本地化文章的外部图片的插件,

# 更新日志:

## 1.3.91

1. 修复编辑器插件存在相同图片链接时,只会替换一次的问题
2. 修复本地化图片验证图片链接状态码,没有模拟Referer导致触发防盗链,刚好链接返回异常状态码时,会本地化报错的问题。
3. 新增本地化时是否记录日志的选项,关闭后将不在记录日志。

## 1.3.9

1. 修复分类名包含特殊字符时,批量本地化时,分类无法正常显示的问题
Expand Down
2 changes: 1 addition & 1 deletion admin/preload.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
}
}

const NICEN_VERSION = '1.3.9'; //插件版本
const NICEN_VERSION = '1.3.91'; //插件版本
/*
* 定时任务接口
* */
Expand Down
192 changes: 74 additions & 118 deletions assets/admin.css
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
@charset "UTF-8";
[v-cloak] {
display: none;
}
display: none; }

#VueApp .ant-form-item-children dd, #VueApp .ant-form-item-children li {
margin-bottom: 0;
}
margin-bottom: 0; }

#VueApp .info {
line-height: 1.8;
width: 150%;
word-wrap: break-word;
word-spacing: normal;
word-break: break-all;
}
word-break: break-all; }

#VueApp .ant-input, #VueApp .ant-time-picker-input {
box-sizing: border-box;
Expand All @@ -33,121 +30,80 @@
background-image: none;
border: 1px solid #d9d9d9;
border-radius: 4px;
transition: all .3s;
}

#VueApp .ant-input:focus, #VueApp .ant-time-picker-input:focus {
outline: 0 !important;
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

#VueApp .ant-input:focus, #VueApp .ant-input:hover, #VueApp .ant-time-picker-input:focus, #VueApp .ant-time-picker-input:hover {
border-color: #40a9ff !important;
border-right-width: 1px !important;
}
transition: all .3s; }
#VueApp .ant-input:focus, #VueApp .ant-time-picker-input:focus {
outline: 0 !important;
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important; }
#VueApp .ant-input:focus, #VueApp .ant-input:hover, #VueApp .ant-time-picker-input:focus, #VueApp .ant-time-picker-input:hover {
border-color: #40a9ff !important;
border-right-width: 1px !important; }

#VueApp .ant-form-item {
margin-bottom: 15px;
}
margin-bottom: 15px; }

#VueApp .card-container {
background: #f5f5f5;
overflow: hidden;
padding: 24px;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar {
border-color: #fff;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab {
border-color: transparent;
background: transparent;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active {
border-color: #fff;
background: #fff;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content {
min-height: 150px;
margin-top: -16px;
/* VIP页面说明 */
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip {
padding-bottom: 30px;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .top {
color: red;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features {
list-style: decimal;
margin-top: 32px;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .item {
display: flex;
justify-content: flex-start;
align-items: center;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .item:after {
background-color: black;
border-radius: 50%;
padding: 0 6px;
margin-left: 10px;
font-size: 12px;
font-weight: bold;
color: white;
content: "×";
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .ok:after {
background-color: #07c160;
border-radius: 50%;
padding: 0 6px;
margin-left: 10px;
font-size: 12px;
font-weight: bold;
color: white;
content: "√";
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .bottom {
margin-top: 32px;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content > .ant-tabs-tabpane {
background: #fff;
padding: 36px 42px 10px 42px;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .ant-form-item-label label {
display: flex;
align-items: center;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker {
display: inline-flex;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker .colorBtn {
width: 25px;
height: 25px;
border-radius: 50%;
margin-right: 15px;
cursor: pointer;
border: 1px solid #818181;
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker .box {
box-shadow: 0 0 15px 10px rgba(0, 0, 0, 0.15);
}

#VueApp .card-container > .ant-tabs-card > .ant-tabs-content input {
background-color: inherit;
}
padding: 24px; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar {
border-color: #fff; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab {
border-color: transparent;
background: transparent; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active {
border-color: #fff;
background: #fff; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content {
min-height: 150px;
margin-top: -16px;
/* VIP页面说明 */ }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip {
padding-bottom: 30px; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .top {
color: red; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features {
list-style: decimal;
margin-top: 32px; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .item {
display: flex;
justify-content: flex-start;
align-items: center; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .item:after {
background-color: black;
border-radius: 50%;
padding: 0 6px;
margin-left: 10px;
font-size: 12px;
font-weight: bold;
color: white;
content: "×"; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .features .ok:after {
background-color: #07c160;
border-radius: 50%;
padding: 0 6px;
margin-left: 10px;
font-size: 12px;
font-weight: bold;
color: white;
content: "√"; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .vip .bottom {
margin-top: 32px; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content > .ant-tabs-tabpane {
background: #fff;
padding: 36px 42px 10px 42px; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .ant-form-item-label label {
display: flex;
align-items: center; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker {
display: inline-flex; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker .colorBtn {
width: 25px;
height: 25px;
border-radius: 50%;
margin-right: 15px;
cursor: pointer;
border: 1px solid #818181; }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content .m-colorPicker .box {
box-shadow: 0 0 15px 10px rgba(0, 0, 0, 0.15); }
#VueApp .card-container > .ant-tabs-card > .ant-tabs-content input {
background-color: inherit; }
43 changes: 25 additions & 18 deletions class/local.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ function localImage( $url, $flag = true ) {
/*
* 判断链接是否可以访问
* */
if ( $this->getHttpcode( $url ) != 200 ) {
if ( $this->getImage( $url, true ) != 200 ) {
if ( $flag ) {
exit( json_encode( ( [
'code' => 0,
Expand Down Expand Up @@ -311,26 +311,13 @@ function getLink( $filename ) {
return $link;
}

/**
* 获取网站状态码
* */
function getHttpcode( $url ) {
$response = wp_remote_get( $url, [
'sslverify' => false,
'timeout' => 60,
] );
$http_code = wp_remote_retrieve_response_code( $response );

return $http_code;
}

/**
* 获取图片内容
*
* @param $url string,图片的链接
* @param bool $option ,获取状态码
* */
function getImage( $url ) {

function getImage( $url, $option = false ) {
$link = parse_url( $url );//解析链接

/*
Expand All @@ -347,10 +334,17 @@ function getImage( $url ) {
$res = wp_remote_get( $url, [
'headers' => $headers,
'sslverify' => false,
'timeout' => 120,
'timeout' => 180,
] );

return wp_remote_retrieve_body( $res );
/*
* 是否是状态码判断
* */
if ( $option ) {
return wp_remote_retrieve_response_code( $res );
} else {
return wp_remote_retrieve_body( $res );
}
}

/**
Expand Down Expand Up @@ -405,5 +399,18 @@ function saveAsData( $filename ) {
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
}

/**
* 获取网站状态码
* */
function getHttpcode( $url ) {
$response = wp_remote_get( $url, [
'sslverify' => false,
'timeout' => 60,
] );
$http_code = wp_remote_retrieve_response_code( $response );

return $http_code;
}
}

8 changes: 7 additions & 1 deletion class/log.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ class Nicen_Log {

private static $self;
private $option = 'nicen_plugin_error_log';
private $record_log; //是否需要记录日志
private $logs;

private function __construct() {
add_option( $this->option );//初始化选项
$this->logs = get_option( $this->option );
$this->logs = get_option( $this->option );
$this->record_log = get_option( 'nicen_make_plugin_record_log' );
}

/**
Expand All @@ -38,6 +40,10 @@ public static function getInstance() {
*/
public function add( $log ) {

if ( ! $this->record_log ) {
return $log;
}

$now = date( "Y-m-d H:i:s", time() );

/*
Expand Down
12 changes: 11 additions & 1 deletion config.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
'title' => '功能设置说明',
'callback' => 'nicen_make_plugin_form_text',
'args' => [
'info' => '插件提供两种本地化外部图片的功能:<br/>【<span style="color: red;">编辑器本地化插件</span>】启用后会在文章编辑器上方显示一个小图标,点击之后可以自动检测并本地化所有外部图片;<br/>【<span style="color: red;">发布时自动本地化</span>】启用后会在文章发布时自动本地化所有外部图片;推荐使用【编辑器本地化插件】在发布前进行本地化,当图片数量过多或者文件太大【发布时自动本地化】可能会导致请求卡死。'
'info' => '插件提供两种本地化外部图片的功能,本地化时自动跳过重复链接的图片:<br/>【<span style="color: red;">编辑器本地化插件</span>】启用后会在文章编辑器上方显示一个小图标,点击之后可以自动检测并本地化所有外部图片;<br/>【<span style="color: red;">发布时自动本地化</span>】启用后会在文章发布时自动本地化所有外部图片;推荐使用【编辑器本地化插件】在发布前进行本地化,当图片数量过多或者文件太大【发布时自动本地化】可能会导致请求卡死。<br/>【<span style="color: red;">保存到数据库</span>】启用后会将图片信息保存到数据库,可在媒体库内看到这张图片,同时会生成多张不同大小的内容一样图片'
]
],
[
Expand Down Expand Up @@ -251,6 +251,13 @@
'callback' => [
"render" => "nicen_plugin_local_log"
],
'fields' => [
[
'id' => 'nicen_make_plugin_record_log',
'title' => '本地化时记录日志',
'callback' => 'nicen_make_form_switch',
],
]
],
[
"id" => "nicen_make_plugin_update",
Expand Down Expand Up @@ -302,6 +309,9 @@

/*白名单*/
'nicen_make_publish_white' => '',

/*插件日志*/
'nicen_make_plugin_record_log' => '1'
] );


2 changes: 1 addition & 1 deletion nicen-localize-image.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: nicen-localize-image
* Plugin URI:https://nicen.cn/2893.html
* Description: 用于本地化文章的外部图片的插件,支持文章发布前通过编辑器插件本地化、文章发布时自动本地化、定时发布文章时自动本地化、已发布的文章批量本地化。
* Version: 1.3.9
* Version: 1.3.91
* Author: 友人a丶
* Author URI: https://nicen.cn
* Text Domain: nicen-localize-image
Expand Down
Loading

0 comments on commit 66822ea

Please sign in to comment.