V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mokeyjay
V2EX  ›  ACG

Pixiv 每日排行榜 Top50 小部件

  •  1
     
  •   mokeyjay · 2017-03-31 13:31:18 +08:00 · 2657 次点击
    这是一个创建于 2789 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Pixiv 每日排行榜 Top50 小部件效果图

    简介

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

    特色

    • 一行HTML代码即可调用,方便快捷
    • 适合放在大部分博客或网站的侧边栏
    • 自适应宽高。推荐宽度240px、高度380px
    • 点击图片可跳转到对应作品详情页
    • 自动更新,无需crontab
    • 按需加载图片,极低资源消耗
    • 支持数据缓存,每日只更新一次排行榜数据,降低性能开销
    • 支持图片缓存,解决部分地区pixiv打开慢的问题

    开源项目地址

    更新日志

    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>光速打脸</de>
    • 去除自动更新锁机制,缩略图已存在并且有效时不再重复下载。防止因网络波动或超时导致的缩略图下载失败

    2.0

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

    初衷

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

    如何部署

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

    该方案适用于动手能力较差或较懒或没有特殊需求的用户。且已配置好国内 CDN ,访问速度较快

    服务地址:https://cloud.mokeyjay.com/pixiv

    Wordpress为例,首先进入 后台 -> 外观 -> 小工具

    向右边适当的位置添加一个 文本 小工具,标题随意,内容为

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

    点击保存按钮即可回到博客首页预览效果咯~

    如果你了解CSS的话,还可以随意修改iframestyle属性

    推荐宽度240px、高度380px (因为 P 站缩略图最大就是这个尺寸)

    默认的背景颜色是#fff(纯白色),如果你的页面背景颜色与之不符,你可以传参来改变它

    例如将上面iframesrc属性的值改为https://cloud.mokeyjay.com/pixiv/?color=f00试试看?

    正常情况下背景颜色会变成红色,即#f00。如果颜色没有改变,可能是缓存问题,Ctrl+F5刷新一下即可

    color的值就是 CSS 内使用的颜色值,可为 3 或 6 位 16 进制字符。无需 #

    你还可以通过limit参数限制图片数量

    例如https://cloud.mokeyjay.com/pixiv/?color=f00&limit=10

    则可以得到背景为红色的 Top10 画册

    请注意: limit参数的范围为1-50

    方案二:自行架设服务

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

    使用此方案你可以更深层次地自定义,并且可以配置图片缓存到你的服务器,缓解某些地区访问 P 站较慢或打不开等问题

    首先下载源代码,解压

    使用专业编辑器(例如SublimeNotepad++等,切忌使用记事本)编辑Conf.php,修改相应配置。每个配置项的说明都以注释的形式标注在文件内。如果你看不懂,那就说明你比较适合方案一

    请注意: 数据缓存和图片缓存功能需要当前目录的写入权限。如果你的主机不支持写入(例如 SAE 或 BAE 等应用环境),关掉图片缓存的话也不影响使用,但每次访问都会重新获取每日排行榜,比较浪费资源。这种情况下推荐使用方案一,当然如果你有钱的话当我没说

    注意事项

    • 推荐使用方案一,由我本人维护,如有问题第一时间更新
    • 本项目免费开源,仅供学习交流。请勿用于任何商业用途,作者不承担任何责任
    • 方案二需要 PHP 版本 >= 5.3

    关于作者

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

    如果喜欢,喜欢能 Star 一下~谢谢各位

    9 条回复    2017-05-18 17:04:12 +08:00
    SoulGem
        1
    SoulGem  
       2017-03-31 13:36:36 +08:00
    赞一个!
    sliamb
        2
    sliamb  
       2017-03-31 13:46:22 +08:00
    大佬又有新作品了
    mokeyjay
        3
    mokeyjay  
    OP
       2017-03-31 13:47:39 +08:00
    帖子超时无法编辑了,有人说开源地址链接不显眼,我在这再发一下

    https://github.com/mokeyjay/Pixiv-daily-top50-widget
    Garantion
        4
    Garantion  
       2017-03-31 13:49:27 +08:00
    资瓷一下
    misaka19000
        5
    misaka19000  
       2017-03-31 13:56:34 +08:00 via Android
    能不能直接封装一个 HTTP 调用接口呢,返回图片的地址数组就可以了
    mokeyjay
        6
    mokeyjay  
    OP
       2017-03-31 14:03:46 +08:00 via Android
    @misaka19000 有呀,分别是 https://cloud.mokeyjay.com/pixiv/pixiv.jsonhttps://cloud.mokeyjay.com/pixiv/source.json 。区别在于图片 url 是否经过我的服务器缓存

    感觉应该写在说明里,而不是作为彩蛋一样的东西
    songjiaxin2008
        7
    songjiaxin2008  
       2017-03-31 14:06:42 +08:00
    厉害厉害!
    timwei
        8
    timwei  
       2017-04-07 15:37:34 +08:00
    <3
    geew
        9
    geew  
       2017-05-18 17:04:12 +08:00
    赞一个 已放到网站上
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:30 · PVG 06:30 · LAX 14:30 · JFK 17:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.