Skip to content

Commit

Permalink
优化是否需要更新数据的判断机制;更新 README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
mokeyjay committed Oct 27, 2020
1 parent 7ee53ed commit 2260226
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 33 deletions.
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@
[Github](https://github.com/mokeyjay/Pixiv-daily-ranking-widget)

## 如何部署
### <del>方案一:使用[超能小紫](https://www.mokeyjay.com)提供的服务</del>
我的服务器IP已经被 pixiv 屏蔽了,暂时无法提供正常服务
<del>该方案适用于动手能力较差或较懒或没有特殊需求的用户。且已配置数个图床,访问速度较快
服务地址:[https://cloud.mokeyjay.com/pixiv](https://cloud.mokeyjay.com/pixiv) </del>
### 方案一:使用[超能小紫](https://www.mokeyjay.com)提供的服务
> 感谢 [rixCloud](https://rixcloud.app/mokeyjay) 提供代理支持
该方案适用于动手能力较差或较懒或没有特殊需求的用户。且已配置数个图床,访问速度较快
服务地址:[https://cloud.mokeyjay.com/pixiv](https://cloud.mokeyjay.com/pixiv)

`Wordpress`为例,首先进入 后台 -> 外观 -> 小工具
向右边适当的位置添加一个 **文本****自定义HTML** 小工具,标题随意,内容为
Expand Down Expand Up @@ -59,7 +60,8 @@
> 每个配置项的说明都以注释的形式标注在文件内。如果你看不懂,那就说明你比较适合**方案一**
最后一步,给予`storage`目录读写权限
最后一步,给予`storage`目录读写权限
具体使用方法参考**方案一**

### 注意事项
- 推荐使用方案一,由我本人维护,如有问题第一时间更新
Expand All @@ -71,6 +73,7 @@
- 更新 Curl 类的默认 UA
- 修复部分情况下获取项目URL错误
- 修复获取排行榜数据失败时会无限重试的问题
- 优化是否需要更新数据的判断机制
- 删除已经失效的 alibaba 图床

### 4.4
Expand Down
1 change: 1 addition & 0 deletions app/App.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public static function run()
Tools::runRefreshThread();
}
}

if ($pixivJson === false) {
include APP_PATH . 'Views/loading.php';
} else {
Expand Down
26 changes: 25 additions & 1 deletion app/Jobs/Refresh.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ public function run()
{
try {
$pixivJson = Storage::getJson('pixiv');
if(!Pixiv::checkRankingUpdate() && $pixivJson){
$ranking = Pixiv::getRanking();

if(!$this->needRefresh($ranking, $pixivJson)){
Tools::log('排行榜尚未更新,半小时后再试');
Lock::forceCreate('refresh', 1800);
return true;
Expand Down Expand Up @@ -116,4 +118,26 @@ public function run()
return false;
}
}

/**
* 是否需要刷新数据
* @param array $ranking pixiv 接口返回的排行榜数据
* @param array $pixivJson pixiv.json 的内容
* @return bool
* @throws \Exception
*/
private function needRefresh($ranking, $pixivJson)
{
if (!isset($pixivJson['date'])) {
return true;
}

// $ranking['date'] 的格式为 20200310
if ($ranking && isset($ranking['date']) && preg_match('|^\d{8}$|', $ranking['date'])) {

return $pixivJson['date'] != date('Y-m-d', strtotime($ranking['date']));
}

throw new \Exception('排行榜日期数据异常!数据:' . json_encode($ranking));
}
}
25 changes: 0 additions & 25 deletions app/Libs/Pixiv.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,31 +31,6 @@ public static function getRanking($page = 1)
return $json;
}

/**
* 检查排行榜是否已更新
* @return bool
* @throws \Exception
*/
public static function checkRankingUpdate()
{
$json = self::getRanking();

// $json['date'] 的格式为 20200310
if ($json && isset($json['date']) && preg_match('|^\d{8}$|', $json['date'])) {

// 一般情况下 rank_total 都是 500,但不排除 pixiv 抽风某天排行榜最大数量不足 500
// 因此在这里处理下 limit 值防止 getImages 在某些情况下报错
if(isset($json['rank_total'])){
Config::$limit = $json['rank_total'] < Config::$limit ? $json['rank_total'] : Config::$limit;
}

$json['date'] = date('Y-m-d', strtotime($json['date']));
return self::checkDate($json);
}

throw new \Exception('检查排行榜更新失败!接口返回值:' . json_encode($json));
}

/**
* 获取图片url列表
* @return array|false
Expand Down
4 changes: 2 additions & 2 deletions index.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
/**
* 项目:Pixiv每日排行榜Top50小部件
* 版本:4.4
* 项目:Pixiv每日排行榜小挂件
* 版本:4.4.1
* 作者:超能小紫(mokeyjay)
* 博客:https://www.mokeyjay.com
* 源码:https://github.com/mokeyjay/Pixiv-daily-ranking-widget
Expand Down

0 comments on commit 2260226

Please sign in to comment.