Code Monkey home page Code Monkey logo

pixiv-daily-ranking-widget's Introduction

Pixiv每日排行榜小挂件

Pixiv每日排行榜小挂件效果图

简介

*年,你是ACG或绘画爱好者吗?你希望在你的博客或网站中添加一个 Pixiv每日排行榜 的展示功能吗?现在,无需在茫茫互联网中寻找适合自己站点的插件了,只需要几个文件或是一行代码即可实现!

特色

  • 一行HTML代码即可调用,方便快捷
  • 适合放在大部分博客或网站的侧边栏
  • 自适应宽高。推荐宽度240px、高度380px
  • 点击图片可跳转到对应作品详情页
  • 每日自动更新,无需人工干预
  • 内置多图床支持、按需加载图片,极低资源消耗
  • 提供API服务,含有排行榜更新日期、缩略图url及详情页url

开源地址

Github

如何部署

方案一:使用超能小紫提供的服务

感谢 rixCloud 提供代理支持

该方案适用于动手能力较差或较懒或没有特殊需求的用户。且已配置数个图床,访问速度较快
服务地址:https://cloud.mokeyjay.com/pixiv

Wordpress为例,首先进入 后台 -> 外观 -> 小工具
向右边适当的位置添加一个 文本自定义HTML 小工具,标题随意,内容为

<iframe src="https://cloud.mokeyjay.com/pixiv" frameborder="0"  style="width:240px; height:380px;"></iframe>

点击保存按钮即可回到博客首页预览效果咯~
如果你了解CSS的话,还可以随意修改iframestyle属性
推荐宽度240px、高度380px (因为P站缩略图最大就是这个尺寸)

自定义背景颜色

默认为透明背景色,一般情况下不必特意去改背景颜色

如果你还是要改,可以参考下面的示例:
例如将上面iframesrc属性的值改为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(推荐)
Pixiv原始缩略图URL+详情页URL
内容很简单,相信大家看了就知道可以怎么用了,不再赘述

方案二:自行架设服务

适用于动手能力较强或需要深度自定义的用户

需要PHP版本 >= 5.4

首先下载源代码,解压
使用专业编辑器(例如SublimeNotepad++等,切忌使用记事本)编辑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全面开启反盗链,为了迎合此变化。已将downloadurl_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费用。因此即日起方案一不再提供CDN加速,改为直接从P站获取图片
方案一目前由360网站卫士提供CDN支持

2.7

  • 添加图片压缩功能,降低服务器带宽压力(需要GD库)
  • 修复sm.ms图床支持,降低失败概率
  • 添加sm.ms图床上传日志

如果开启$enable_smms出现问题,反馈时请带上日志文件

2.6

  • 添加sm.ms图床支持。一键启用即可大幅降低服务器带宽压力、节省流量。感谢@Showfom提供图床

我才不告诉你是因为方案一每天跑掉我几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超时导致下载中断之类。因此在我测试并意识到这一点时,赶紧开始了新版本的开发 光速打脸
  • 去除自动更新锁机制,缩略图已存在并且有效时不再重复下载。防止因网络波动或超时导致的缩略图下载失败

2.0

  • 整体重构,各机制大幅优化
  • 添加自动更新锁机制,避免高访问量时并发更新浪费资源
  • 全新的伪多线程自动更新机制,后台更新不影响使用
  • 更新失败重试,避免因为网络问题导致的部分图片获取失败

初衷

前几天跟朋友聊天,朋友说希望能在自己博客侧边栏中显示Pixiv的每日排行榜。我自己也是个ACG爱好者,被他这么一说也想弄一个。昨晚终于有空,花了半个多小时写完。自己博客用上了感觉不错,完善了一下加了点功能开源出来福利各位

关于作者

超能小紫,常用IDmokeyjay。热爱IT与ACG的学渣

pixiv-daily-ranking-widget's People

Contributors

mokeyjay avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.