二次元图站爬虫的 TypeScript 实现,目前图站包括 sankaku kemono manhuagui(未来会支持更多图站)
在写了在写了
我好懒我好懒我好懒我好懒我好懒我好懒我好懒我好懒我好懒我好懒我好懒
本项目使用CLI与用户进行信息交互,通过指令方式实现具体功能
指令可分为全局指令与图站指令
全局指令为最优先等级的指令, 任何图站指令与之重叠的均会被判无效图站指令为次要指令, 内置在各个图站插件中, 由全局指令作为引导接入, 内部自行处理
项目所有代码可分为四个部分(注意全部均在src文件下)
- 初始化文件(
init.ts) 在用户交互界面创建前运行, 执行各种初始化(如redis数据库连接,插件与指令文件热加载初始化等) - 主程序文件(
index.ts) 进行指令搜索与指令处理之间的衔接 - 插件(
plugins文件夹下所有文件) 所有指令的入口, 包括图站爬虫核心文件与全局设置, 均已实现热加载功能 - 依赖(
lib文件夹下所有文件)插件中所用到的API等内容的实现, 以及常用函数(如sleep等)
注意: 使用前请确认
redis数据库被正常启用, 否则将无法使用脚本
所有以<>包裹的内容为必填内容, 以[]包裹的内容为选填内容, 包裹的内容为小写时则代表有无均对指令无影响, 介绍时以包裹的内容为代称, 使用时只需填入对应的内容, 无需包裹的符号(<>或[])
注意: 此命令设置的为
socks代理, 并非http
指令: p[ort] <PORT> [IP]
介绍:
PORT内容为代理所需端口- 当
IP为空时, 代理所使用的地址默认为本地地址(127.0.0.1) - 当
IP不为空时, 代理所使用的地址为IP中内容 - 特别的: 当
IP中内容为0时, 将会取消使用代理
例:
| 指令 | 解释 |
|---|---|
p 10808 |
使用地址127.0.0.1端口10808作为代理 |
p 192.168.1.5 10808 |
使用地址192.168.1.5端口10808作为代理 |
p 0 |
取消使用代理 |
指令: c[hange] <SITE>
介绍:
SITE为选择的站点, 使用时可以使用首字母, 也可使用完整名称- 可用站点在
config/opts.json的site中以数组方式存储. 其中的name为站点完整名称,db为站点所使用的数据库数字编号 - 使用后只能更改选择, 不可取消
例:
| 指令 | 解释 |
|---|---|
c k |
切换站点到kemono |
change kemono |
切换站点到kemono |
c m |
切换站点到manhuagui |
change manhuagui |
切换站点到manhuagui |
指令: exit或quit
介绍:
- 退出程序, 并保存数据库
注意: 此处文档尚未完成
注意: 此时命令有三种状态: 下载/校验/重命名, 但SITE与UID为必选,分别代表画师所代表的站点名称与画师id, 指令的可用性见下表
| 状态 | 可用性(每栏首行是可用指令,其余为解释 ) |
|---|---|
下载 |
d[ownload] <SITE> <UID> -t <TIME> [-n NEXT] [-l LOG_LEVEL]此模式下 TIME为必填, 需要输入本次下载的次数, 为-1时代表全部下载NEXT代表从指定位置开始下载, 填入帖子的id, 如未找到将略过全部 |
校验 |
d[ownload] <SITE> <UID> -v [-f]此模式下将会根据数据库中存储的内容, 开始进行文件校验, 已经校验过的将会跳过. 若有参数 -f, 将会进行不跳过的强制校验 |
重命名 |
d[ownload] <SITE> <UID> -r <RENAME_LEVEL>此模式下将会对文件进行重命名, 作为打包的最后一步 RENAME_LEVEL中内容为更改后文件命名模式, 有short和full两种模式选择 |
例:
指令(使用时必须切换到kemono站点) |
解释 |
|---|---|
d fanbox fantia 14648 -t -1 |
下载fantia站点上画师id为14648的所有文件 |
d fanbox fantia 14648 -t 10 -n 1503200 |
下载fantia站点上画师id为14648的文件, 从1503200开始, 下载10次 |
d fanbox fantia 14648 -v |
开始对下载过的fantia站点上画师id为14648的文件进行校验 |
d fanbox fantia 14648 -v -f |
开始对下载过的fantia站点上画师id为14648的文件进行不跳过的强制校验 |
d fanbox fantia 14648 -r full |
开始对下载过的fantia站点上画师id为14648的文件重命名为完整名称 |
d fanbox fantia 14648 -r short |
开始对下载过的fantia站点上画师id为14648的文件重命名为短名称 |
