Skip to content
This repository has been archived by the owner on Nov 26, 2019. It is now read-only.

Latest commit

 

History

History
1043 lines (548 loc) · 37.5 KB

log.md

File metadata and controls

1043 lines (548 loc) · 37.5 KB

4.5.0

在排除类型里增加了“排除已收藏作品”的功能

0 在内页处理 √

1 在内页处理 √

2 列表页-列表页1 √

3 tag页-列表页1 √

4 收藏页-列表页1 √

5 tag搜索页-列表页2 √

6 地区排行榜-列表页3 √

7 其他排行榜-列表页4 √

8 pixivision-不处理 √

9 bookmark_add-在内页处理 √

10 大家的新作品-列表页1 √

11 发现-不处理 √

12 showcase 特辑-不处理 √

13 响应关联作品-不处理 √

4.5.2

  1. “关注的新作品”(/bookmark_new_illust.php)改版了,列表页规则和tag搜索页一样了。

tag搜索页的模式目前有3个页面在使用:

  • tag搜索页
  • 发现 discovery
  • 关注的新作品
  1. “为你推荐”(/recommended.php)合并到发现(/discovery)功能了,但是代码里仍然先保存相关内容。

  2. 另外tag搜索页新版刚出的时候是新旧版混合,代码里也对此作了判断。现在看来应该全部换成新版,没有旧版了。但是代码也先保留吧。

4.5.5

chrome浏览器进行下载时,会把图片的blob对象在当前标签页打开,不清楚具体原因。给用于下载的a标签添加了 target="_blank"属性解决了。之前没有target属性也可以直接下载的,现在挺奇怪。

4.6.0

增加了multiple_down_number参数,可以设置多图作品只下载前几张。默认未限制。

修改后需要刷新页面才会生效,不需要使用时可以改回0。

有时候这是很有用的,有很多的多图作品,只有第一张图是彩色的,后面的图都是黑白的。把multiple_down_number设置为1就可以只下载第一张彩图了。

另外,最近我发现地区排行榜(/ranking_area.php)已经不在首页出现了。

一个已知的问题:

每日排行榜,有可能出现最后一张图没抓取完的时候,就提示抓取。这个问题不会影响实际下载的文件数量。

4.7.0

增加对pixiv特辑(showcase)的适配;

bug修复。

其他情况:

pixivision在首页原来有4个插画特辑,现在被pixiv自己的特辑(showcase)取代了。在首页只剩下两个推荐特辑的位置,这种类型(推荐)没有做适配。

pixiv特辑(showcase)有插画漫画等分类,本工具只下载插画。漫画的话可以点击进入插画页自行下载。

此外,pixiv特辑滚动到底部时,会加载相似的其他特辑,页面url也会发生改变。本工具下载时会下载当前查看的特辑。

4.7.1

修正的问题:

1.大家的新作品里,有按类型分类的页面,之前都是按“综合”处理的,现在可以正确按当前类型获取了。

2.之前无法正常下载关注的新作品的r18分类,现在已经修复。

原本想给排行榜增加手动删除按钮,但是做了之后又去掉了。因为排行榜是分多个部分的,所以获取的时候要通过ajax抓取,在页面上删除没有意义。

4.7.2

修复了在tag搜索页里,搜索中断之后,下载时图片网址可能数量异常的问题。

4.8.0

  • tag搜索页的快速搜索功能可以保持当前搜索模式(全部/普通/R-18)和排序模式

  • 优化下载排行榜作品的代码

  • 适应pixivision改版

  • 增加了对“响应关联作品”的适配

ps0:pixivision改版后,插画页面的头图不是单独的图片了,所以不用单独获取了。

ps1:响应关联作品大部分都比较少,我还没看到超过一页的。目前按作品列表页进行处理,默认下载所有页面。如果有发现分页的话可以告诉我。

ps2:其他排行榜里获取页面时,之前的代码是通过分析dom获得作品数据的。最近发现可以直接获取到json数据了,但是缺少扩展名信息。所以现在只是从json里取得作品页url,其他信息仍然去抓取作品页。

[json示例]https://www.pixiv.net/ranking.php?mode=monthly&content=illust&p=1&format=json

截止2018/2/21,各个排行榜的综合类型的页数(每个排行榜的细分类型的页数和综合不一定相同):

普通的有7种排行榜

R-18有4种排行榜

R-18G只有一种排行榜

5.0.0

bug修复和代码优化。

ps1:模板字符串虽然好用,但如果原来的语句里的运算步骤复杂的话,这部分还是用加号拼接比较好。用模板字符串层层嵌套,连在一起之后使代码变得很难读。而且编辑器对于模板字符串里面代码的着色也很差。

ps2:箭头函数也建议只对简单函数使用。如果要处理动态this和使用arguments的话,要使用传统函数。

5.0.3

在4.5.5版本里,原本下载链接没加target="_blank",下载时却会打开新页面,后来加上之后反倒不打开了。然而现在chrome更新到65之后,加了target="_blank"的开始出现新页面了,我只好再去掉。很奇怪。

5.0.6

  • tag搜索页下载时按照收藏数从高到低下载。

tag搜索页有时图片太多,比如筛选某个tag,条件是最低收藏数3000,有两千来张。下载花了很久,下载的时候我就想,早知道就只下载4000以上的了,低于4000的就不要了。但是由于之前的下载顺序是从低到高,3000 → 4000 → 5000…… 后悔的时候已经晚了。

现在改成了从高到低下载,10000 → 9000 → 8000…… 这样,当你感觉“到这里已经够了”的时候,就可以立即停止下载了。那些收藏数低的不想要就不要了。

5.1.0

2018/4/12,最近有不少人遇到有漏下的情况,但是以前一直没这个问题。而且tampermonkey里确实是每个图片都下载到了,下载请求也发送到chrome了,但是漏下的这些任务失败了,并且没有显示在Chrome的下载列表里。最可能的原因是在短时间内点击了多次下载按钮,导致发送了多次下载请求。但是以前一直没问题,推测可能是chrome新版有什么改动导致的问题。

目前有两个思路解决这个漏下的问题,方法1是把并发下载线程 download_thread_deauflt 改成1,单线程下载,不会漏下。方法2是保证每两次点击下载按钮之间有足够的时间间隔,这样既可以多线程下载,也不会漏下。目前采用第二种方法。

5.2.0

1.任务流程改为在title上提醒,不再使用弹窗。(但可设置use_alert参数继续使用弹窗)

提示字符的含义:

0	复原
↑	抓取中
→	等待下一步操作(tag搜索页)
▶ 	准备下载
↓	下载中
║	下载暂停
■	下载停止
√	下载完毕

2.可以保存用户的命名规则。

3.修复pixivision上cosplay图片的下载

4.GM_xmlhttpRequest可以把responseType设置为blob了,不用再手动转换为blob了。这应该会提升运行效率……

另外,极少数情况下,下载面板上的总数量会漏掉一个作品的图片数量,导致已下载数量超过总数量,如295/265。这里只是显示问题,以已下载数量为准。目前对此问题还没有什么头绪。

5.3.0

2018年4月份开始,p站陆续对作品页进行改版。不仅页面结构全变了,而且作品也内也不使用jQuery了。

此版本先修复在作品页外下载的问题。

在作品页内下载还不行,先在 _无权访问1 里添加提示。下个版本再修改。

另外,新版直接显示收藏数了,等以后统一是新版了,可以更新到命名规则里。

后续还要添加下载相关作品的功能。

5.4.0

更改了获取语言设置的方法。

在作品引入了jQuery,并修复了作品页的下载功能。

在作品页修改了css样式,以保持统一。

5.5.0

新增功能:

  • 支持下载相关作品(作品页下方的相关作品)

相关作品里出现的作品其实和添加收藏后的相似作品是一致的。但是相关作品有个自己的api,如:

https://www.pixiv.net/ajax/illust/68375792/recommend/init?limit=180

这个api最大可以返回180个作品,但相似作品的上限要大得多。所以下载相关作品时,借用相似作品的下载流程。

bug修复:

  • p站改版后,作品页面切换作品不刷新了。这可能会导致下载到的始终是第一页,对此问题进行了修复。

  • 解决漏下illustType为1的作品的bug。

优化修改:

  • 使用了新版作品页用于获取作品信息的api,如:

https://www.pixiv.net/ajax/illust/67050051

注意最后不能带斜杠。这个api老版也能用,所以 getIllustPage() 里不需要区分新旧版了,直接都改成用新版的。

但新的api有个问题,就是可能无法获取到作者名字。userName只能从tag信息里获取,如果一个作品没有tag,那就获取不到作者名字了。发生这种情况时,把作者名字留空。

  • 从新的api里可以直接获取多p作品的原图url,并且后缀名是正确的。这样就省下了一次页面抓取,加快了多p作品的抓取速度。

  • 优化了命名规则。

  • 修改了处理404的代码。之前获取作品页的时候获取的是html页面,404了也可以进入success处理。现在改为获取json数据了,404不进入success了,要在外面statusCode里处理。

5.6.0

新增功能:

  • 在 showcase 特辑里面也可以使用全部的命名方式了。

  • 命名规则里都可以使用{bmk}了。(之前只有在tag搜索页可以用)

  • 添加了筛选收藏数的按钮。(大于等于指定收藏数的作品才会被下载)

其他

  • 获取动图信息有新的api,在作品信息api后面加上/ugoira_meta,如:

https://www.pixiv.net/ajax/illust/68437318/ugoira_meta

这里面包含原文件(zip)的url和帧率信息。

  • pixivision 预计以后不再维护。

首先它和pixiv主站是跨域的,使得同步下载流程比较麻烦。(比如我计划在 pixivision 里也去获取作品信息api,这样在 pixivision 里下载时,可以使用更多的命名规则了。但是jQuery的ajax无法设置跨域,用GM_xmlhttpRequest的话改动成本又太高)。

其次pixivision上面的很多板块都已经停止更新了,插画没有停止更新,但是插画是和 showcase 特辑同步的,所以从 showcase 特辑下载就行了。

5.6.1

原本tag搜索页的快速搜索功能, 最大只到10000users入り。但是这个tag从其本意来讲,是10000-20000,这样,更高收藏数的作品就筛选不出来了。所以现在增加了20000/30000/50000的选项。

5.6.2

tag搜索页和大家关注的新作品都有一次改版,改版前是源码里包含着列表的DOM元素,改版后是把作品信息改成json方式保存到源码里了。因为p站的改版一直是新旧版共存过渡,所以当时有个tag_search_is_new参数来区别新旧版。但是到现在应该所有人都改成新版了。tag搜索页可以把tag_search_is_new去掉,但是page_type === 10里面还要留着。因为10里面的大家的新作品是旧版,关注的人的新作品是新版,这俩还得区分。现在先把tag搜索页的旧代码去掉了,并把tag_search_is_new改成list_is_new。

5.6.4

p站自己用的jQuery地址为: https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js

之前我担心有些人用改dns的方法上p站的话,可能打不开google的网址,所以用了下面的网址: https://code.jquery.com/jquery-2.0.3.min.js

但是有人打不开这个。怀疑是少数。如果人再有人打不开jquery官网的这个,就改成p站自己的网址吧。

5.6.6

前些版本我更改了命名规则,现在有人想用原来的格式,增加了 use_original_name 参数来控制该选项。

5.6.7

屏蔽了新版的一些广告

5.6.8

添加一键收藏功能,并且附带tag。(只在新版有用)

但是此功能目前有个小瑕疵,如果点了快速收藏,之后向前/后切换一张作品,再切换回来,回来之后会看到又变成没有收藏时的状态了。这是因为页面没有刷新,不要介意。只要快速收藏时显示了收藏成功就没问题。

同时还有其他问题要注意:

  • 免费用户每个作品只能添加 10 个 tag,如果作品的 tag 数量超过10个,那么多出来的就不会被保存。

  • 收藏时添加的 tag 貌似有 20 个字符的最大长度限制,如添加“バーチャルYouTuber5000users入り”会被截断成为“バーチャルYouTuber5000use”,即使是手动添加也会被截断。

一键收藏功能 API:

https://www.pixiv.net/rpc/index.php

以 post 方式发送一些参数(并且需要发送 cookie),示例:

mode: save_illust_bookmark
illust_id: 68201395
restrict: 0
comment:
tags: Fate/GrandOrder セイバー・ブライド
tt: 489520361bf22a5bb897306b3d9cdc1b

参数说明:

mode: save_illust_bookmark 此项固定

illust_id: 68201395 id 按需要修改

restrict: 0 此项固定

comment: 保持留空即可

tag:格式为 encodeURI 编码后的字符,如果要添加多个tag,不同tag之间用空格分开(%20)。

tt:可以从 pixiv 页面上的全局变量获取:globalInitData.token

另外,删除收藏用的不是这个 api,而且使用的 id 也不是作品 id,而是该书签的 bookmark_id。

5.7.0

增加看图模式(只在新版、多 p 作品页有用)

有普通看图和全屏看图模式。查看效果(新浪微博

Viewer.js 本来需要引入两个文件,js 文件和 css 文件,为了方便调用,我将两个文件混合后上传到了 greasyfork 上。url 为:

https://greasyfork.org/scripts/369647-viewer-js-mix/code/Viewerjs%20mix.js
  • 注意:

有些时候 greasyfork.org 也会被墙,如果打不开上面的 js,那么自然也就无法使用看图模式了。

  • 优化了 Viewer.js 的看图体验。

比如要看图片的100%比例大小的时候,原本一直有查看器的元素挡在图片上,看着不舒服。播放幻灯片的话可以进入全屏模式,会隐藏这些元素,但是图片比例不是100%了。现在我结合了一下,点击 1:1 按钮时会进入全屏状态查看,比例是100%。(必须要点击这个按钮,因为进入全屏需要用户手动操作触发)

原本的全屏状态里(播放幻灯片时),用户不能切换图片,现在全屏状态下也可以切换图片了,并且图片都是保持100%比例打开的。但是有个瑕疵,可能因为 Viewer.js 本来没有设计这个功能,导致图片放大时位置会变化,看上去产生了抖动。

  • 注意:

不要用左右方向键 ← → 来切换图片,因为这样会导致 pixiv 也响应了左右方向键,从而切换了作品。还是用鼠标来切换图片吧。

你在p站切换作品时,推荐使用左右方向键 ← →。如果用浏览器的前进后退按钮来操作,那么切换到的这个页面不会触发快速收藏和看图模式。

  • pixiv 上缩略图的 url 开头是这样的, https://i.pximg.net/c/240x240/img-master/img/,例如:
https://i.pximg.net/c/240x240/img-master/img/2018/06/17/00/10/40/69264102_p4_master1200.jpg

这样加载就会很快了,如果加载大图的话,速度就太慢了。

缩略图始终都是 jpg 格式,原图则有 jpg、png 两种格式。(还会有 zip 的)

5.7.1

优化了看图体验。

原本在全屏模式(100%比例)中看图时,如果图片是之前尚未加载的图片,那么加载后显示的比例不是100%。现在手动给它设置一次宽高,成为100%。

pixiv网址的缩写:

最近发现画师页面和作品页面的网址都可以使用缩写,如:

https://www.pixiv.net/member.php?id=212801
缩写为:
https://www.pixiv.net/u/212801

https://www.pixiv.net/member_illust.php?mode=medium&illust_id=66509867
缩写为:
https://www.pixiv.net/i/66509867

5.7.2

  • 可以在下载前预览图片的名字;

  • 恢复了单图原来的命名规则,即加上 _p0。

预览图片名的结果如下:

69052408_p0.png: bmk_8262-69052408_p0-tags_電撃文庫,ガーリー・エアフォース,おへそ,グリペン,ピンク髪ロング,5000users入り.png

每个名字前面加了这个图片默认的名字,如 69052408_p0.png。默认名字和实际名字中间用 : 分割。

这样,如果用户使用迅雷、IDM 之类软件下载图片,下载后的图片只有默认名字,再拷贝本工具的命名,就可以编写脚本,把图片的默认名字修改为本工具的名字。

以 cmd 为例,可以把上面的名字修改为 cmd 命令来执行:

ren 69052408_p0.png "bmk_8262-69052408_p0-tags_電撃文庫,ガーリー・エアフォース,おへそ,グリペン,ピンク髪ロング,5000users入り.png"

借助文本编辑器,用户可以批量的把本工具生成的图片名修改为 shell 命令。

5.7.7

p 站自己的收藏按钮添加了快速收藏功能,但是不带 tag,和我自己按钮的快速收藏功能冲突,现在我把原本的收藏按钮隐藏了,全部使用脚本的快速收藏。

另外根据 thelastfantasy 的建议,把动图从 zip 后缀名改为了 ugoira 后缀名,请用 HoneyView 打开查看。

5.8.0

  • pixiv 的改版

p 站在完成了作品页的改版后,又要进行新改版: pixiv的个人资料页面将全新改版

受此影响的页面有:

画师(或自己)的主页、插画分类列表、漫画分类列表、收藏页面,以及上述页面里的 tag 列表页。

旧版的个人主页里有“动图”作品的列表页(第一行),新版里面已经没有这个分类了,这个 url 会跳转到插画作品列表页:

https://www.pixiv.net/member_illust.php?id=4693961&type=ugoira

https://www.pixiv.net/member_illust.php?id=4693961&type=illust

pixiv 的新版都不再使用 jQuery 了。

从个人资料页面进入插画页,是无刷新的(pushState),无刷新的地方越来越多了,体验好一些,不过下载工具需要修改更多地方。

  • 本工具的修改

之前的 page_type:

2: 画师列表页(插画、漫画)

3:画师的 tag 列表页 和 收藏的 tag 列表页;

4:收藏页面。

新版里这 3 种都改了。而且使用的无刷新加载技术,需要动态监控 url,对应改变 page_type。

现在 page_type 2/3/4 全部整合到了 2 里。

本工具以新版为准,旧版功能可以用新版实现的,就按新版处理。

  • 其他修改:
  1. 本来,进入自己的收藏页面时,没带自己的 id(第一行):
https://www.pixiv.net/bookmark.php
https://www.pixiv.net/bookmark.php?id=9460149

不带 id 的话,还是旧版的界面,带了 id 才是新版的。所以这里添加了个修改,如果不带 id 自动跳转到带 id 的。

  1. 无刷新加载对 page_type 1 和 2 的影响

从新版个人资料页可以无刷新进入作品页,这种情况下,作品页也可以通过浏览器的后退功能,无刷新返回个人资料页。这就造成了两种页面类型可以无刷新切换。(不过必须是先打开 2,然后进入1, 1才能通过返回按钮来无刷新回到 2。如果一开始打开的是 1,那么 1 无法不刷新进入 2)

为了能让脚本适根据 page_type 动态切换,对代码做了不少修改。

需要记住的是,无刷新切换时,两种类型共用一个页面,所以绑定全局事件时需要注意这一点,避免冲突或者重复绑定。

  • 新版使用的 api 分析:

画师主页

1 https://www.pixiv.net/ajax/user/27517/profile/all

这个 api 包含了该画师所有作品的 id。包含插画和漫画,但分别只有最近的 12 个作品有详细信息。因为个人主页只展示12个插画和12个漫画。

先在这里获取所有作品 id ,之后再获取作品详细信息。

画师的所有作品列表页 ,是把插画和漫画合在一起的列表页。api 不用变。

画师的插画列表页:(可以跟很多 ids)

https://www.pixiv.net/ajax/user/27517/illusts?ids%5B0%5D=66979373

这是 pixiv 加载插画列表里的作品用的,包含有作品详细信息,但不全面,比如没有画师名和收藏数。所以不使用这个 api,先用上面的 1 api 获取 id 列表,最后获取作品详细信息。

画师的漫画列表页:(可以跟很多 ids)

https://www.pixiv.net/ajax/tags/frequent/illust?ids%5B0%5D=20830181

不使用这个 api,理由同上。

画师的插画 tag 列表页

https://www.pixiv.net/ajax/user/27517/illusts/tag/%E5%A5%B3%E3%81%AE%E5%AD%90?offset=0&limit=24

把 limit 设置为 999999 来获取所有列表,然后取出 id 列表,最后获取作品详细信息。

画师的漫画 tag 列表页:(和插画 tag 的区别在于中间字段不同)

https://www.pixiv.net/ajax/user/27517/manga/tag/%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%8A%E3%83%AB?offset=0&limit=24

画师的漫画和插画 tag 列表页

处理同上。

书签主页:

https://www.pixiv.net/ajax/user/9460149/illusts/bookmarks?tag=&offset=0&limit=24&rest=show

书签的 tag 列表页:(和主页的区别是带了 tag)

https://www.pixiv.net/ajax/user/9460149/illusts/bookmarks?tag=R-18&offset=0&limit=24&rest=show

  • api 总结
  1. 获取画师所有作品列表:

https://www.pixiv.net/ajax/user/27517/profile/all

  1. 获取画师某个 tag 的作品列表:(区分 illusts 和 manga)

https://www.pixiv.net/ajax/user/27517/illusts/tag/%E5%A5%B3%E3%81%AE%E5%AD%90?offset=0&limit=24 https://www.pixiv.net/ajax/user/27517/manga/tag/%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%8A%E3%83%AB?offset=0&limit=24

  1. 获取书签或书签的 tag 列表:(区别带不带 tag)

https://www.pixiv.net/ajax/user/9460149/illusts/bookmarks?tag=&offset=0&limit=24&rest=show https://www.pixiv.net/ajax/user/9460149/illusts/bookmarks?tag=R-18&offset=0&limit=24&rest=show

5.8.3

p 站书签页,获取收藏数据的 api 改了,limit 每次只能获取100,不能99999了。不知道以后其他能 99999 的会不会也改成100,好烦啊。

5.9.0

  • 可以将动图转换为 gif

获取动图信息的 API 如:

https://www.pixiv.net/ajax/illust/69979772/ugoira_meta

包含原文件(zip)的url和帧率信息。

静态图片网址可以从源文件网址替换得出。源文件网址如:

https://i.pximg.net/img-zip-ugoira/img/2018/08/02/14/08/01/69979772_ugoira1920x1080.zip

压缩包里的静态图片网址如:

https://i.pximg.net/img-original/img/2018/08/02/14/08/01/69979772_ugoira0.jpg

最后的序号从 0 开始,依次增加。

我本来想直接用静态图片来生成 gif,但是在转换成 gif 时会遇到跨域问题。最后还是只能先加载 zip 文件,再从 zip 文件里提取静态图片。

  • 使用的库:

zip.js

gif.js

用户脚本使用库太麻烦了,只能引用外部网址的库,不能像浏览器扩展那样,把库包含到自己的文件夹。

ps:当我把更改同步到 Chrome 扩展时,才发现扩展也有不方便的地方,那就是 worker 的 url。如果依旧从远程地址引入倒还行,但要引入扩展文件夹内的 js 作为 worker,没有很好的办法,只能通过获取它的文本来创建 blob url。所以现在简单粗暴的全塞到 content.js 里了。

5.9.1

p站作品页面一些结构变了,导致多图作品的缩略图列表位置变得靠下了,现在修复。

5.9.2

有人反应动图分类列表页,下载到的是全部作品,而不是动图作品。如:

https://www.pixiv.net/member_illust.php?id=573302&type=ugoira

因为在新版里没有“动图”作品列表了,动图合并到了“插画”列表里,上面的网址会被导航到“插画”列表里。

https://www.pixiv.net/member_illust.php?id=573302&type=illust

因为没有(或者没有找到)单独获取动图的 api,所以用了另一个办法,检测到是动图分类时,直接设置为排除单图、多图,只下载动图。

5.9.6

点击收藏按钮时,会自动点赞。

5.9.7

新版列表页改成一页 48 个了,同步修改。

5.9.9

在画师的列表页里下载时,把 url 倒序排列,这样是为了先下载最新作品,后下载早期作品。

6.0.0

界面优化

增加和修改一些设置项

改进暂停、停止功能

6.0.1

修复 bug 和文本错误

修改 tag 搜索页第一个按钮的颜色

6.0.2

记忆一些设置:

  • 多图作品设置
  • 设置作品类型
  • 必须含有 tag
  • 不能含有 tag
  • 是否显示封面
  • 是否快速下载
  • 设置下载线程
  • 设置命名规则

6.0.5

添加了一个设置项:

  • 添加标记名称

6.1.0

  • 优化了界面
  • 把排除类型里的“收藏作品”改为一个单独的选项,含义更加准确。
  • 修复bug

6.1.1

修复了火狐上,不会出现 tip 提示框的 bug。

6.1.3

默认隐藏下载区域,在可以进行下载时才显示。

6.1.5

修改出了 bug,改回去。

6.1.6

网友 道滿 翻译了繁體中文

6.2.0

可以设置文件夹名称

重复文件只能加序号,不能直接覆盖。Chrome 扩展版可以直接覆盖。

在右侧添加快速下载按钮

快速下载不建立文件夹

添加了设置文件夹的教程

添加标记更快捷

6.2.4

Firefox 上我搞不出来怎么建立文件夹了,先在 Firefox 上把这个功能屏蔽吧。

还是 chrome 好。

其他

最近我发现相关作品很不“相关”,api 似乎没改,但是出来的结果和以前相比,相关度很差,基本不怎么相关。

对比一下:

https://www.pixiv.net/member_illust.php?mode=medium&illust_id=71395570

底部的相关作品

https://www.pixiv.net/bookmark_detail.php?illust_id=71395570

底部的相似作品

以前这两部分出来的作品是一致的,但最近“相关作品”变得不怎么相关了。

6.2.7

以前从画师列表页进入作品页无刷新,从作品页进入画师列表页是要刷新的。现在不一样了,点击作品页的用户名,可以无刷新进入列表页。所以在作品页内也要监听 history 的变化了。

另外作品页内的画师名的 class 最近变了两次,考虑找个别的办法来获取画师名。

6.2.8

从 title 获取画师名。

6.2.9

添加了 Firefox 扩展的提示。

6.3.1

列表页有 1 个「,包裹用户名。内容页有 2 个「,第一个包裹作品名,第二个包裹用户名。但有些用户名里就有「,导致列表页被识别成了内容页,所以增加了判断条件。

https://www.pixiv.net/member.php?id=2793583

但在这种情况下,获取的画师名不包含它本身带的“」”符号,是不完整的。

6.4.0

  • 删除了 showcase 的相关代码

pixiv 彻底取消了 showcase 页面,直接跳转到 pixivision 了。 查看公告

  • 删除了 响应关联作品 的相关代码

怀疑 pixiv 已经取消了以往的“响应关联作品”的功能。以前的响应网址打开没有内容了。

  • 修复反复跳转后图片缩略图失效的问题

  • 优化获取用户 id

获取用户 id 从查找头像元素改成了从 html 源码匹配。这样应该不会那么频繁的修改了。

  • 适应改版

画师的插画和漫画分类列表页,url 多了一种新情况,适配之。

另外 p 站最近改版也修改了许多 classname

  • 优化代码。

优化代码内容:

  • 解除对 jQuery 的依赖。

  • 一些 for 循环改成 forEach()、map()、reduce()、for of。

  • 一些 for in 遍历对象,改成 for of 遍历 Object.keys()、Object.values()。

  • 把 indexOf 改为 includes。

  • 函数参数 rest。

  • 解构赋值

  • 部分 if 改成 switch。

  • 优化 addCenterButton 函数,添加按钮时减少了重复代码。

  • 去掉一些用作匿名函数的 { } 代码块标记。

  • 一些绑定事件时的匿名函数改成了箭头函数。

  • 一些 innerHTML 改成了 textContent。

  • 删除作品的标记从 DOM 标签上的属性改成了一个变量。

  • 所有 css 统一添加到同一个样式表里。

  • 优化操作 outputInfo 的代码

  • 精简手动删除作品的代码,并提升性能

  • 优化了看图器的一些代码。

(发现 Chrome 71 已经支持 fullscreenchange 这个全屏 API 了,不能加前缀了)

  • 匹配字符串的正则方法从 match 改成 exec,使用分组

  • fetch 代码优化

  • 其他改进。

6.4.1

用网页标题做文件夹名时,会去掉最前面的消息数。

6.4.2

优化了加载 gif 所用的 js 文件的代码。代码更简洁,逻辑更清晰。

6.4.3

略微精简代码,适配快速收藏改版。

6.4.4

快速收藏部分,因为 p 站改版 class 经常变,所以从父元素查找,父元素的 class 变化没那么频繁。

6.4.5

  • 增加“设置宽高比例”,当设置为下载横图或竖图时,不下载方图。

这个 含有方图的网址 有 1 个方图, id = 61632819

  • 在 tag 搜索页,使一些设置立即生效(以前有些设置要等到下载时才生效)

  • 优化代码,优化任务流程,提高效率

6.4.6

修复tag搜索页图片下载两遍的问题

6.5.0

文件夹、文件名设置里可以自由建立多级文件夹了。

安全的文件名的正则里添加了一种情况,去掉末尾的点“.”。在 Windows 上末尾的点会消失,导致建立文件夹失败,如有个画师名字“ち.”。

6.5.1

  • 修复暂停后继续下载会有部分图片重复下载的 bug:

以前把 tag 搜索页设置为按收藏数从高到低下载,但当时是反转数组,操作不对,而且导致暂停后再继续下载,会下载到几张重复图片,漏掉相同数量的正常图片。现在修复了。

在 tag 搜索页之外,理论上应该是没有这个 bug 的,毕竟流程不一样。但我测试的时候偶然在画师列表页也遇到了这个情况。然而之后多次测试无法复现,暂且不管了。

  • 优化部分文本。

  • 更新了截图

6.5.2

有些作品如 565435,API 返回的数据里有 tag 却不包含画师名,很奇怪,对这种情况做了修复。

6.5.3

  • 看图模式时预加载下一张图片

  • 优化部分文本。

6.5.4

使脚本版和扩展版同时只运行一个。

视情况不同,两个版本哪个先运行是不固定的,所以两个版本里都做了检测。

6.5.5

增加了扩展版图标的动画效果,提示用户去安装浏览器扩展版。原因如下。

Chrome 72 的问题

Chrome 72 因为增加了一些限制,导致 Tampermonkey 一些功能失效,导致本工具下载出现异常。

解决办法:

  • 升级 Tampermonkey 到最新版本(在 Chrome 上,需要 Tampermonkey 4.8 或更高版本)

  • 此外,你也可以切换到本工具的浏览器扩展版,扩展版没有出现这个问题。

6.5.6

因为有些人没注意到右上角推荐 chrome 的图标,所以这次我加了颜色,闪动频率更快,希望可以挽救星际用户。

6.5.7

检测脚本版因 Chrome 72 导致不能正常下载的情况,加一个弹窗提醒。只弹出一次。

6.6.0

同步扩展版的修改. 合并命名规则输入框,修复快速收藏失效等.

6.6.1

根据投票结果, 保留了命名规则里的空标记. 空标记会原样添加到文件(夹)名里.

之前从扩展版同步修改,导致去掉了"如何使用"文件夹的按钮,恢复之. 并添加文字提示"要在 Firefox 上建立文件夹,请使用扩展版。"

现在 Firefox 的 TM 依旧不能建立文件夹.

6.6.2

添加命名规则的示例。

6.6.3

修复动图额外建立了文件夹的问题。

6.6.4

修改命名规则后,快速下载也会建立文件夹了。现在修改成不建立文件夹的状态。

6.6.5

文件名标记里有些值是数字(如 bmk),导致 replace 报错 once.replace(safe_fileName_rule, '_')。现在统一转换为字符串,避免错误。

6.6.6

  • 在 sortByProperty 里把参数都转换成了数字。

之前传入的参数是字符串,按首位比较的,不准确。转换成数字以保证结果准确。

  • 暂停和继续下载添加定时器。

如果点了暂停,然后点开始继续,中间间隔时间很短,可能会出问题。所以加上了延时。

6.6.7

  • 修改了右侧按钮样式使其更加明显

  • 添加了建立文件夹的提示

  • 优化日文文本

  • 修复 getUserName 的 bug

之前 getUserName 会使用 old_title,这是有问题的,不同语言的 title 不一样,导致严重错误,英语语言下完全无法下载。现在修复了。

6.6.8

修复 bug

6.6.9

p 站最近在 tag 搜索页的 R-18 分类里,增加了广告信息,导致抓取出错,现在修复这个问题。

6.7.0

  • 增加了 id_num 命名字段

  • 停止下载时添加时间间隔。

6.7.1

  • css 优化

  • 查看多 p 图片的页面 示例 并不能进行下载,但之前显示了下载图标,现在去掉

6.7.2

  • 修复 getUserName 的 bug

之前从 dom 里获取,但是这样 p 站一改版就出问题,所以还是从 api 获取比较好。所以添加了 getIllustInfo 函数。虽然可能会多次调用它,但是有缓存,所以问题不大。

6.7.3

  • css 优化

  • 其实主要原因是 Firefox 扩展被下架了,补充了一些隐私政策等信息,提交新版本进行审核。

  • 更新了 readme 里的捐赠信息,之前放的博客链接,但是需要翻墙才能打开。所以现在直接放图片了。

6.7.4

  • 添加了 {p_num} 标记,也就是图片的 p 数。

  • 因为格式化程序的改变,函数名和括号之间增加了空格。参数列表的逗号后面也加了空格。

6.7.5

画师作品列表页带 tag 时的 api 发生了变化,修改之。

6.7.6

  • 对合法的文件名的规则进行修改

现在的 Chrome 下载扩展 API 不允许文件名里含有 ~ 了,所以增加了对此情况的处理。

另外增加的 \u220b\ 是一个特殊字符,有时候会遇到,它没有宽度。它会导致 chrome 下载文件时报错,文件名不合法。

6.7.7

  • 优化繁体中文文本

  • 修复快速收藏功能,感谢 yuzhan1990。

6.7.8

快速下载时,如果只有一个文件,则不建立文件夹。如果大于一个图片,则建立文件夹。

6.8.0

在书签页面,可以给“未分类”的书签批量加上 tag。这样可以节省大量的时间。

6.8.1

优化体验。之前在一些非书签页也会显示添加 tag 按钮,现在限制在只在书签页显示。但目前有个问题,在别人的书签页里也会显示。

6.8.2

优化了获取 token 的方式,添加 tag 的按钮可以在书签页直接出现了。之前需要先用一次快速收藏才会出现这个按钮。

6.8.3

p 站代码又变了,获取画师名的代码做了相应的修改。现在其实是更简单了,挺好的。

6.8.4

** 本脚本版未来可能不再有大的更新,只会修复 bug 和维护基础功能。希望用户尽快迁移到 Chrome 扩展版.

  • 下载书签作品时会倒序下载。

  • 添加提示,提醒用户安装扩展版。

6.8.5

添加说明,提醒用户迁移到扩展版。

6.8.6

由 phenixl 提交的 pull: 增加XMP Sidecar 文件保存TAG,保存前整理TAG #27

6.8.7

chrome 扩展版之前被下架了,现在重新上架,url 变了。这次把代码里的安装地址改为新的地址。

6.8.8

chrome 扩展版又被下架了。所以把安装地址改为离线安装的教程地址。

6.8.9

  • 适配作品页面新的 url 格式

这个问题影响很大,所以对脚本版做了适应。

6.9.0

发现有些人在手机浏览器里使用脚本版。所以把脚本版获取 userId 的代码也适配了手机版页面。