pixivrepositories

此项目的源码来自GitHub上的开源项目:https://github.com/Tsuk1ko/pxder

Usage no npm install needed!

<script type="module">
  import pixivrepositories from 'https://cdn.skypack.dev/pixivrepositories';
</script>

README

pixivrepositories

Version history

声明

*此项目的源码来自GitHub上的开源项目:Tsuk1ko/pxder,为了优化个人体验,基于个人体验时的想法进行了修改

*此项目开源

准备

首先你需要先下载 安装 Nodejs

安装/更新/卸载

安装

npm i -g pixivrepositories

卸载

npm uninstall -g pixivrepositories

配置

登录

pxrepo --login

注:pxrepo仅会在计算机上储存 refreshAccessToken,而不会储存您的帐号密码

如果要登出

pxrepo --logout

设置

进入 Pxrepo 的设置界面

pxrepo --setting

有五项设置,按下数字键选择一项进行设置,然后按照要求输入之后回车即可

[1] Download path     # 下载目录,必须设置
[2] Download thread   # 下载线程数
[3] Auto rename       # 自动重命名(文件夹)
[4] Proxy             # 使用代理
  • 下载目录
    请注意相对路径与绝对路径的区别,不过不用担心,输入完路径后会显示绝对路径以方便你检查
    目录无需手动建立,下载图片的时候会自动建立
  • 下载线程数
    即同时下载的图片数,默认为32,最小为1,最大为90
    下载图片时最左侧的一列实际上就是线程编号
  • 自动重命名
    默认开启,开启了以后,例如这个画师原来叫abc,今天你再次去下载(更新)他的画作,但是他改名叫def了,那么程序会自动帮你重命名画师文件夹
  • 使用代理
    支持使用 HTTP 或 SOCKS 代理,即可以使用小飞机
    输入格式为<协议>://[用户名:密码@]<IP>:<端口>,例如:
    • http://user:passwd@127.0.0.1:1080
    • socks://127.0.0.1:1080

禁止使用代理,请输入disable

功能

.option('--login', 'login Pixiv')
.option('--logout', 'logout Pixiv')

.option('--setting', 'open options menu')
.option('')
.option('-p, --pid <pid(s)>', 'download illusts by PID, multiple PIDs separated by commas (,)')
.option('-u, --uid <uid(s)>', 'download / update illusts by UID, multiple UIDs separated by commas (,)')
.option('')
.option('-f, --follow', 'download / update illusts from your public follows')
.option('-F, --follow-private', 'download / update illusts from your private follows')
.option('-C, --shift', 'follows.shift()')

.option('-b, --bookmark', 'download / update illusts from your public bookmark')
.option('-B, --bookmark-private', 'download / update illusts from your private bookmark')
.option('')
.option('-U, --update', "update illustrators' illusts in your download path")
    .option('    --aptend', 'add illustrators in downloadJson')
    .option('    --force', 'ignore blacklist')		
.option('    --repair', 'download illusts from your download history')		

.option('-D, --delete', 'delete illustrators\' illusts in your download temp path')

.option('    --no-cf', 'download illusts from i.pximg.net instead of i-cf.pximg.net')

.option('    --debug', 'output all error messages while running')

.option('-l, --blacklist <uid(s)>', 'Add the illusts to the blacklist')	

对pxder的修改

pxder -f pxder -F

分别会创建public.jsonprivate.json,获取完指定的所有关注列表开始下载,若已存在文件便直接开始下载

pxrepo -f pxrepo -F

创建download.json,获取关注时每获取一批(30个)就写入一次,而且若已存在文件也可以提供附加参数--aptend继续获取新的关注列表追加download.json

pxder -U

读取所有下载的画师进行更新

pxrepo -U

读取所有下载的画师,写入到download.json然后进行更新

pxder --setting

能够设置超时时间,下载线程默认5,最大32

pxrepo --setting

不能够设置超时时间,默认设置25s超时。线程上限提高了,可以设置到90,默认为32,注意这里设置的线程数实际上是个基准,在此基础上会根据网络,图片数量增加最多为10的线程数

其他方面

缓存目录和程序目录位于同一个文件夹下,下载会在缓存目录下再创建格式为"(" + id + ")"的文件夹。不再是直接都放在整个缓存目录,运行时不会删掉缓存目录 (pxrepo -D可以删除缓存目录里面所有文件)

增加黑名单功能,原理:手动pxrepo -l添加画师ID拉入“黑名单”,每次下载前都会检查欲下载的画师的ID是否存在于blacklist.json,存在就跳过。默认值[{"id":11}]

我觉得必要的时候暂停15s,防止Rate Limit出现。

可以pxrepo -C手动跳过当前download.json的第一个画师

{
  error: {
    user_message: 'Your access is currently restricted.',
    message: '',
    reason: '',
    user_message_details: {}
  }
}

参数说明

指定画作ID下载画作

插画会被下载至PID文件夹中

'-p, --pid <pid(s)>'

指定画师UD下载该画师未下载的一次不超过5000张画作

'-u, --uid <uid(s)>'

获取公开关注列表中最新关注的5000名画师,获取其画作下载

可配合--aptenddownload.json进行增量更新,默认为新获取数据覆盖download.json

download.json即为获取的画师信息列表,是pxrepo的下载列表

'-f, --follow'

获取私密关注列表中最新关注的5000名画师,获取其画作下载

可配合--aptenddownload.json进行增量更新,默认为新获取数据覆盖download.json

download.json即为获取的画师信息列表,是pxrepo的下载列表

'-F, --follow-private'

*取消当前第一个画师下载任务,一般用于个别画师出现的无法进行下载时跳过

'-C, --shift'

更新你的公开收藏中的插画作品

插画会被下载至[bookmark] Public文件夹中

'-b, --bookmark'

更新你的私密收藏中的插画作品

插画会被下载至[bookmark] Private文件夹中

'-B, --bookmark-private'

更新已下载的画师的画作

可配合--aptenddownload.json进行增量更新,默认为新获取数据覆盖download.json

download.json即为获取的画师信息列表,是pxrepo的下载列表

'-U, --update'

*找回历史下载的画师及画作

如果不小心把下载目录的文件删除了,只要保有history.json即可下载回来

原理是每次使用'-U, --update'更新画作会将所有history.json中不存在的画师ID信息写入其中

通过保留下载过的画师ID进行再次下载

'    --repair'

*删除缓存目录下所有文件

'-D, --delete'

*将不喜欢的画师拉入黑名单

'-l, --blacklist <uid(s)>'