-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #12 from mokeyjay/develop
5.0
- Loading branch information
Showing
40 changed files
with
1,496 additions
and
634 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
<h1 align="center">🖼️ Pixiv Daily Ranking Widget</h1> | ||
<p align="center"> | ||
<a href="README.md">中文</a> | ||
<br><br> | ||
Want to add a <span style="font-weight: bold">Pixiv Daily Ranking Widget</span> to your website? Now, it only takes one line code to do it! | ||
<a href="https://cloud.mokeyjay.com/pixiv/demo.html" target="_blank">DEMO</a> | ||
</p> | ||
|
||
## ✨ Features | ||
- Easy to use by only one `HTML` code | ||
- Adaptive width and height. Recommended width `240px`, height `380px` or more | ||
- Click the image redirect to detail page | ||
- Automatic daily update | ||
- Built-in multi image-hosting support, on-demand image loading, extremely low resource consumption | ||
- Provide API service, including ranking update date, thumbnail url and detail page url, etc. | ||
|
||
## 🤔 How to use | ||
Just add this line to your page | ||
```html | ||
<iframe src="https://cloud.mokeyjay.com/pixiv" style="width:240px; height:380px; border: 0"></iframe> | ||
``` | ||
|
||
Take `Wordpress` as an example. First go to `wp-admin`, click **Appearance** -> **Widgets** | ||
Add a **Text** or **Custom HTML** widget to the right in the appropriate place and fill in the above code | ||
|
||
[Advance Usage](doc/advance-usage.en.md) | ||
|
||
## 🛠️ How to deploy | ||
Want to customize the code yourself? Think the service I provide is too slow? | ||
|
||
You can also easily have your own widget! | ||
> Requires PHP version >= 5.6 | ||
[Deployment Documentation](doc/deploy.en.md) | ||
|
||
## 🔌 API | ||
[Ranking data (already uploaded to the image-hosting)](https://cloud.mokeyjay.com/pixiv/?r=api/pixiv-json) (recommended) | ||
[Ranking data (pixiv url)](https://cloud.mokeyjay.com/pixiv/?r=api/source-json) | ||
|
||
`data` is the ranking data; `date` is the ranking date (maybe yesterday or the day before yesterday, because the official update time is not necessarily) | ||
|
||
Both api automatically return the corresponding cross-domain header based on the `Origin` or `Referer` in the request header. They can be called directly by the front-end | ||
|
||
> The `image` and `url` keys are for compatibility with users of 4.x and earlier versions, you can ignore them | ||
## 🆙 Upgrade Guide | ||
1. [Download ZIP](https://github.com/mokeyjay/pixiv-daily-ranking-widget/releases/latest) | ||
2. Unzip and overwrite the `app` and `index.php` to your server | ||
|
||
### From 4.x to 5.0 | ||
1. Check the `image_hosting` item's comment from [config.php](config.php#L90), select the appropriate option and fill it in your `config.php` | ||
2. Delete all files in 'storage/app', then let the program refresh the ranking data | ||
|
||
## 🌟 Changelog | ||
### Added | ||
- api service support cross-domain | ||
- scheduled job to clearing historical logs | ||
- support 8 free image-hosting | ||
### Optimization | ||
- Picture display effect | ||
- Left and right arrows will auto hidden now | ||
- Show works title and author name when hovering | ||
- Upgrade front-end dependency package to the latest, reduce dependency | ||
- Improve logging function | ||
- Enrich interface data to fit more scenarios | ||
- Replace Baidu statistics with Google statistics | ||
- Update default UA | ||
### Fix | ||
- the project url is not correctly retrieved in some cases | ||
- download invalid picture in some cases | ||
### Other | ||
- Remove invalid Alibaba image-hosting | ||
|
||
[History](doc/log.en.md) | ||
|
||
## 👨💻 About author | ||
[mokeyjay](https://www.mokeyjay.com), IT and ACG lover |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,178 +1,75 @@ | ||
## Pixiv每日排行榜小挂件 | ||
![Pixiv每日排行榜小挂件效果图](https://i.loli.net/2019/05/04/5ccd5293141b4.jpg) | ||
## 简介 | ||
骚年,你是`ACG`或绘画爱好者吗?你希望在你的博客或网站中添加一个 **`Pixiv`每日排行榜** 的展示功能吗?现在,无需在茫茫互联网中寻找适合自己站点的插件了,只需要几个文件或是一行代码即可实现! | ||
|
||
## 特色 | ||
- 一行`HTML`代码即可调用,方便快捷 | ||
- 适合放在大部分博客或网站的侧边栏 | ||
- 自适应宽高。推荐宽度`240px`、高度`380px` | ||
<h1 align="center">🖼️ Pixiv 每日排行榜小挂件</h1> | ||
<p align="center"> | ||
<a href="README.en.md">English</a> | ||
<br><br> | ||
想要在你的网站页面中添加一个 <span style="font-weight: bold">Pixiv 每日排行榜</span> 的展示功能吗?现在,只需要一行代码即可实现! | ||
<a href="https://cloud.mokeyjay.com/pixiv/demo.html" target="_blank">在线预览</a> | ||
</p> | ||
|
||
## ✨ 特色 | ||
- 一行 `HTML` 代码即可调用,方便快捷 | ||
- 自适应宽高。推荐宽度 `240px`、高度 `380px` 或以上 | ||
- 点击图片可跳转到对应作品详情页 | ||
- 每日自动更新,无需人工干预 | ||
- 内置多图床支持、按需加载图片,极低资源消耗 | ||
- 提供API服务,含有排行榜更新日期、缩略图url及详情页url | ||
|
||
## 开源地址 | ||
[Github](https://github.com/mokeyjay/Pixiv-daily-ranking-widget) | ||
|
||
## 如何部署 | ||
### 方案一:使用[超能小紫](https://www.mokeyjay.com)提供的服务 | ||
> 感谢 [rixCloud](https://rixcloud.app/mokeyjay) 提供代理支持 | ||
- 提供 API 服务,含有排行榜更新日期、缩略图 url 及详情页 url 等 | ||
|
||
该方案适用于动手能力较差或较懒或没有特殊需求的用户。且已配置数个图床,访问速度较快 | ||
服务地址:[https://cloud.mokeyjay.com/pixiv](https://cloud.mokeyjay.com/pixiv) | ||
|
||
以`Wordpress`为例,首先进入 后台 -> 外观 -> 小工具 | ||
向右边适当的位置添加一个 **文本** 或 **自定义HTML** 小工具,标题随意,内容为 | ||
## 🤔 如何使用 | ||
将这行代码添加到网页上即可 | ||
```html | ||
<iframe src="https://cloud.mokeyjay.com/pixiv" frameborder="0" style="width:240px; height:380px;"></iframe> | ||
<iframe src="https://cloud.mokeyjay.com/pixiv" style="width:240px; height:380px; border: 0"></iframe> | ||
``` | ||
点击保存按钮即可回到博客首页预览效果咯~ | ||
如果你了解`CSS`的话,还可以随意修改`iframe`的`style`属性 | ||
推荐宽度`240px`、高度`380px` (因为P站缩略图最大就是这个尺寸) | ||
|
||
#### 自定义背景颜色 | ||
默认为透明背景色,一般情况下不必特意去改背景颜色 | ||
|
||
如果你还是要改,可以参考下面的示例: | ||
例如将上面`iframe`的`src`属性的值改为`https://cloud.mokeyjay.com/pixiv/?color=f00`试试看? | ||
正常情况下背景颜色会变成**红色**,即`#f00`。如果颜色没有改变,可能是缓存问题,刷新几次即可 | ||
`color`的值就是CSS内使用的颜色值,可为3或6位16进制字符。无需 **#** 号 | ||
#### 自定义Top数量 | ||
你还可以通过`limit`参数限制图片数量 | ||
例如`https://cloud.mokeyjay.com/pixiv/?color=f00&limit=10` | ||
则可以得到背景为红色的Top10画册 | ||
> `limit`参数的范围必须在`1-500` 之间 | ||
#### API服务 | ||
[图床缩略图URL+详情页URL](https://cloud.mokeyjay.com/pixiv/storage/app/pixiv.json)(推荐) | ||
[Pixiv原始缩略图URL+详情页URL](https://cloud.mokeyjay.com/pixiv/storage/app/source.json) | ||
内容很简单,相信大家看了就知道可以怎么用了,不再赘述 | ||
|
||
|
||
### 方案二:自行架设服务 | ||
适用于动手能力较强或需要深度自定义的用户 | ||
> 需要PHP版本 >= 5.4 | ||
首先[下载源代码](https://github.com/mokeyjay/Pixiv-daily-ranking-widget/releases/latest),解压 | ||
使用专业编辑器(例如`Sublime`、`Notepad++`等,切忌使用记事本)编辑`config.php`,根据实际情况修改相应配置 | ||
> 由于Pixiv已经被墙,如果你想要将此项目部署在国内,请务必配置 `proxy` 配置项 | ||
> 每个配置项的说明都以注释的形式标注在文件内。如果你看不懂,那就说明你比较适合**方案一** | ||
最后一步,给予`storage`目录读写权限 | ||
具体使用方法参考**方案一** | ||
|
||
### 注意事项 | ||
- 推荐使用方案一,由我本人维护,如有问题第一时间更新 | ||
- 方案二反馈问题之前,请先将 `log_level` 设为 `['ERROR', 'DEBUG']` ,并再次重现问题后,带着 `logs` 来反馈 | ||
- 本项目免费开源,仅供学习交流。请勿用于任何商业用途,作者不承担任何责任 | ||
|
||
## 更新日志 | ||
### 4.4.2 | ||
- 更新 Curl 类的默认 UA | ||
- 删除已经失效的图床 | ||
- 更新阿里巴巴图床 | ||
- 添加 `disable_web_job` 开关,详见 `config.php` | ||
|
||
### 4.4.1 | ||
- 更新 Curl 类的默认 UA | ||
- 修复部分情况下获取项目URL错误 | ||
- 修复获取排行榜数据失败时会无限重试的问题 | ||
- 优化是否需要更新数据的判断机制 | ||
- 删除已经失效的 alibaba 图床 | ||
|
||
### 4.4 | ||
- 改用官方 ajax 接口获取排行数据 | ||
- 添加 阿里巴巴、百度、今日头条 图床接口 | ||
- 更新 smms 图床接口到 v2 版本 | ||
- 删除已被废弃的 img.sb 图床接口 | ||
- 删除已被封锁的 京东 图床接口 | ||
- 删除 loading 页面的统计代码 | ||
- 改用综合排行榜数据,而非仅限于插画 | ||
- 图片数量限制扩充到 500,达到官方上限 | ||
- service 配置项的取值不再影响 limit | ||
- 其他优化、bug 修复 | ||
|
||
### 4.3 | ||
- 修复Pixiv排行榜页面代码改版导致的无法更新 | ||
- 跳转至详情页时使用 https | ||
|
||
### 4.2 | ||
- 修复Pixiv排行榜页面代码改版导致的无法更新 | ||
- 添加获取排行榜失败时的最大重试次数 | ||
|
||
### 4.1 | ||
- 现已支持透明背景 | ||
|
||
### 4.0 | ||
- 几乎重写了所有代码的船新版本,更多新特性与bug等你来发掘! | ||
- 由于pixiv全面开启反盗链,为了迎合此变化。已将`download`和`url_cache`这两个不再有存在意义的开关去除。现在会强制下载缩略图,然后再根据配置上传到各个图床或存储在服务器本地 | ||
> 碎碎念:原本这个项目只是随便搞搞,没想到后面功能越堆越多,代码也越来越丑。作为本辣鸡github上最高star的项目实在是丢人。好在我花了几天时间撸了这个4.0,总算是不那么丢人了 | ||
> 还有就是添加了多图床的支持,每个月能节省几百G的流量了嘤 | ||
### 3.0 | ||
- 添加`$download_proxy`配置项 | ||
- 由于Pixiv的图片url添加了防盗链无法被直接显示,因此`$download`配置项默认开启 | ||
为了更好的显示效果,自行部署的用户建议配置一个定时任务,每天0点触发`download.php` | ||
|
||
### 2.9 | ||
- 修复因Pixiv改动导致挂掉的问题 | ||
|
||
### 2.8 | ||
- 尝试优化更新锁,防止高并发下重复更新 | ||
- 从 Conf::$download 中独立出配置项 Conf::$url_cache,现在可以仅缓存图片url而不缓存缩略图了 | ||
- 添加贴图库图床支持 | ||
|
||
> 贴图库免费版并不是很好用且不支持https,建议优先使用sm.ms,贴图库仅作为备用 | ||
> 由于之前更新锁在高并发下有些问题无法很好的发挥作用,导致我的服务器IP因重复上传被sm.ms图床封了。而我个人也无力支撑高昂的CDN费用。<del>因此即日起**方案一**不再提供CDN加速,改为直接从P站获取图片</del> | ||
> 方案一目前由360网站卫士提供CDN支持 | ||
### 2.7 | ||
- 添加图片压缩功能,降低服务器带宽压力(需要GD库) | ||
- 修复sm.ms图床支持,降低失败概率 | ||
- 添加sm.ms图床上传日志 | ||
|
||
> 如果开启`$enable_smms`出现问题,反馈时请带上日志文件 | ||
### 2.6 | ||
- 添加sm.ms图床支持。一键启用即可大幅降低服务器带宽压力、节省流量。感谢[@Showfom](https://sb.sb/)提供图床 | ||
|
||
> 我才不告诉你是因为方案一每天跑掉我几G流量,心疼不已才加的这个功能呢 | ||
> 如果连续3次上传失败,则从服务器本地读取图片,确保访问正常 | ||
### 2.5 | ||
- 修复因Pixiv改版导致挂掉的问题 | ||
- Pixiv原生支持https啦!可喜可贺 | ||
|
||
### 2.4 | ||
- 修复特定情况下URL的`limit`参数无效的问题 | ||
- 修复**方案一**缓存问题 | ||
- 修复上面效果图SSL证书问题 | ||
|
||
### 2.3 | ||
- 更换了前端库引用地址,修复移动宽带下加载慢的问题 | ||
- 添加协议自适应,修复在关闭缓存或缓存还没全部完成时影响小绿锁的问题 | ||
- 以上更新来自@灵乌路空 的友情PR,我们一起对她PRPR以示感激吧 | ||
- 超能小紫的方案一服务现已支持HTTPS。咬牙忍痛上了收费CDN,请大家且用且珍惜 | ||
- 要是被滥用到我吃不消费用的话可能会暂停服务噢~ | ||
- 如果访问量较高的话建议还是自行搭建服务,谢谢各位的支持与谅解 | ||
|
||
### 2.2 | ||
- 优化下载线程以支持自行部署HTTPS | ||
|
||
### 2.1 | ||
- 规划2.0时脑子抽了,非要把所有逻辑都局限在一个文件里。虽然各方面确实有所提升,但在一些情况下照样会出现那些老问题。例如缩略图下载失败啊、PHP超时导致下载中断之类。因此在我测试并意识到这一点时,赶紧开始了新版本的开发 <del>光速打脸</del> | ||
- 去除自动更新锁机制,缩略图已存在并且有效时不再重复下载。防止因网络波动或超时导致的缩略图下载失败 | ||
|
||
### 2.0 | ||
- 整体重构,各机制大幅优化 | ||
- 添加自动更新锁机制,避免高访问量时并发更新浪费资源 | ||
- 全新的伪多线程自动更新机制,后台更新不影响使用 | ||
- 更新失败重试,避免因为网络问题导致的部分图片获取失败 | ||
|
||
## 初衷 | ||
前几天跟朋友聊天,朋友说希望能在自己博客侧边栏中显示[Pixiv](http://www.pixiv.net/)的每日排行榜。我自己也是个`ACG`爱好者,被他这么一说也想弄一个。昨晚终于有空,花了半个多小时写完。[自己博客](https://www.mokeyjay.com)用上了感觉不错,完善了一下加了点功能开源出来福利各位 | ||
|
||
## 关于作者 | ||
[超能小紫](https://www.mokeyjay.com),常用ID`mokeyjay`。热爱IT与ACG的学渣 | ||
以 `Wordpress` 为例。首先进入后台,点击 外观 -> 小工具 | ||
向右边适当的位置添加一个 **文本** 或 **自定义HTML** 小工具,内容填写上述代码即可 | ||
|
||
[高级用法](doc/advance-usage.md) | ||
|
||
## 🛠️ 如何部署 | ||
想要自己定制代码?嫌我提供的服务太慢? | ||
你也可以轻松拥有完全属于自己的小挂件! | ||
> 需要 PHP 版本 >= 5.6 | ||
[部署文档](doc/deploy.md) | ||
|
||
## 🔌 API | ||
[排行榜数据(已上传至图床)](https://cloud.mokeyjay.com/pixiv/?r=api/pixiv-json)(推荐) | ||
[排行榜数据(pixiv url)](https://cloud.mokeyjay.com/pixiv/?r=api/source-json) | ||
|
||
其中 `data` 为排行榜数据;`date` 为排行榜日期(可能是昨天或者前天,因为官方更新时间不一定) | ||
这两个接口都会自动根据请求头的 `Origin` 或者 `Referer` 返回对应跨域头。可供前端直接调用 | ||
|
||
> `image` 和 `url` 两个键是为了兼容 4.x 及之前版本的用户,无需理会 | ||
## 🆙 升级指南 | ||
1. [下载源代码](https://github.com/mokeyjay/Pixiv-daily-ranking-widget/releases/latest) | ||
2. 解压缩,将其中的 `app` 和 `index.php` 覆盖到线上环境 | ||
|
||
### 从 4.x 升级到 5.0 | ||
1. 查看 [config.php](config.php#L90) 中 `image_hosting` 配置项的注释说明,选择适合你的图床配置,填写到你线上环境的 `config.php` 中 | ||
2. 删除 `storage/app` 下的所有文件,让程序重新获取排行榜数据 | ||
|
||
## 🌟 更新日志 | ||
### 新增 | ||
- 支持跨域请求的数据接口 | ||
- clear-log 任务用于清除历史日志文件 | ||
- 共计 8 个国内外公开、免费的图床 | ||
### 优化 | ||
- 图片显示效果 | ||
- 左右翻页箭头现在会自动隐藏了 | ||
- 鼠标悬浮时显示作品标题及作者名称 | ||
- 升级前端依赖包至最新、减少依赖 | ||
- 完善日志记录功能 | ||
- 丰富接口数据以适应更多场景 | ||
- 将百度统计更换为谷歌统计 | ||
- 更新默认 UA | ||
### 修复 | ||
- 部分情况下无法正确获取项目 url 的问题 | ||
- 部分情况下可能会下载到空白图片的问题 | ||
### 其他 | ||
- 去掉失效的阿里巴巴图床 | ||
|
||
[历史更新日志](doc/log.md) | ||
|
||
## 👨💻 关于作者 | ||
常用 ID [mokeyjay](https://www.mokeyjay.com),热爱 IT 与 ACG 的学渣 |
Oops, something went wrong.