最近发现E站收藏夹里的漫画消失的有亿点点多,看了一下很多都是被版权投诉删掉了,不禁联想到当初某P开头网站把我的收藏夹一夜清零的惨案,看来一切网络收藏夹终究还是不靠谱,只有把原档案下载下来自己存放才是终级解决方案,经过搜索发现LANraragi这个工具完美符合我的需求,它支持多种文件格式,可以自动生成封面,通过默认和第三方插件,可以实现从多个网站自动获取Tag、标题、作者等元信息,甚至支持通过程序本身直接从相应网站下载漫画并自动入库归档。入库的漫画不仅可以通过Web方便的从全平台进行访问,还可以通过各个平台的客户端获取更好的体验。
2023.3.15更新:新增nHentai CF Bypass插件配置教程
Debian 11
环境下进行操作。提供的命令均以root用户执行。
程序介绍
项目地址:https://github.com/Difegue/LANraragi
汉化版项目地址:https://github.com/uparrows/LANraragi_cn
官方文档:https://sugoi.gitbook.io/lanraragi/v/dev
Demo:https://lrr.tvc-16.science/
目前程序具体支持阅读的漫画格式如下:zip/cbz、rar/cbr (最高仅支持到RAR4)、tar.gz/cbt、lzma、7z/cb7、xz、pdf、epub (如果从Web端阅读,只能看到书中的图片内容)
通过插件,支持包括但不限于以下几个来源的元信息导入:
- Currently supported out of the box are:
- E-Hentai/Exhentai
- nHentai
- Chaika.moe
- .json files embedded into your Archives from the eze userscript
- .json files embedded into your Archives from HDoujin Downloader ...and more!
截图
Docker安装
官方文档中给了多种安装方式,这里只采用最简单的Docker方式安装,其他方式请参照官方文档。
安装docker
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
创建必要文件夹
mkdir -p /mnt/docker/lanraragi/content
mkdir -p /mnt/docker/lanraragi/database
上面两条命令分别创建了程序的内容库和数据库文件夹,内容库用来存放漫画文件和缩略图,数据库用来存放元信息等数据文件。这两个路径可以自行更改,如果更改这两处路径,在下面运行镜像的命令中对应位置也要更改。
运行镜像
推荐直接运行B站UP主@浅笑一夏的汉化版本,虽然目前有部分区域文字显示乱码,但是不影响功能使用。全中文的后台管理界面看起来还是要省力很多,汉化作者也在原版的基础上添加了几个实用插件(比如直接读取从EhViewer下载的漫画压缩包中的.ehviewer
文件获取元信息),运行以下命令:
docker run --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/root/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/root/lanraragi/database \
dezhao/lanraragi_cn
当然如果你英语阅读无障碍,并且追求第一时间体验原作者的最新版本,你也可以运行原作者提供的镜像(下面这段代码和上面这段代码2选1,不要重复运行):
docker run -e LRR_UID=0 -e LRR_GID=0 --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/home/koyomi/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/home/koyomi/lanraragi/database \
difegue/lanraragi
其中/mnt/docker/lanraragi/content和/mnt/docker/lanraragi/database分别是上面创建必要文件夹部分创建的两个文件夹路径,请根据自身需求做出更改
运行成功后,浏览器访问http://ip:3001
就可以了看到如下画面了
点击上方的管理员登录(Admin Login),输入默认密码kamimamita
即可登录,登录后可以进设置(Settings)修改默认密码来保证安全。
上传漫画
程序支持这几种途径上传漫画:
网页直接上传
登录后,点击网页上的上传档案(Add Archives),进入的网页里有两种上传方法:
- 直接从本地上传
- 输入Chaika.moe/e-hentai画廊链接自动下载(目前仅支持这从两个网站自动下载文档,且从e-hentai下载需要事先在设置-插件设置-登陆插件-E-Hentai插件中设置好cookie,并且请注意:从e-hentai自动下载文档会耗费账号内的GP余额)
网页会显示上传/下载进度条,上传完成后可以直接点击右侧/下册提示进入元数据编辑页面,也可以以后再编辑。
复制文件入库
可以把下载好的文件通过ftp等工具直接上传到上面步骤中创建的内容库文件夹内,程序会自动识别入库。
编辑元数据
右击任意漫画封面,选择编辑元数据(Edit Metadata)即可进入元数据编辑页面
理论上讲,程序会取文件名作为标题,如果标题正确的话,一般选择对应的插件后点击Go!
按钮,标签(Tag)信息就会被自动搜索填入,当然,你也可以手动粘贴画廊链接(插件支持范围内)到最下方输入框再点击Go!
按钮,插件便会忽略标题,从你输入的画廊链接获取Tag信息,至于更细致的设置,比如从默认表站还是里站获取、是否保存日/英文标题、漫画入库时插件是否自动运行等等,请进入设置(Settings)-插件配置(Plugin Configuration)-元数据插件(Metadata Plugins)自行详细设置。
部分插件设置(可选)
E-Hentai登录插件
如果你没有以下需求,可以不设置这个插件:
- 需要利用LANraragi程序本身自带的下载功能,直接从E-Hentai/ExHentai耗费GP下载漫画文件。
- 需要访问里站(ExHentai)内容获取仅里站可见的漫画的Tag信息。(表站E-Hentai的Tag信息默认就能获取,无需额外配置)
如果你拥有以上需求之一,请参照下面步骤设置插件:
打开插件设置页面备用
在登录状态下的首页,通过设置(Settings)-插件设置(Plugin Configuration)-登陆插件(Login Plugins)-E-Hentai插件-插件配置(Plugin Settings)进入插件设置页面,挂着备用。
打开E-Hentai/ExHentai获取
此处分以下几种情况(以下称E-Hentai为表站,ExHentai为里站),请先确定自身你属于哪种情况,再按下文步骤获取相应cookie:
- 你的账号既没有访问里站的权限,也没有在表站访问里站内容的权限(捐赠用户特权)。那就需要访问表站,获取
ipb_member_id cookie
和ipb_pass_hash cookie
。此种状态下,你只能使用”在程序内利用自带的下载功能直接从E-Hentai耗费GP下载漫画文件“这一功能。 - 你的账号没有访问里站的权限,但是拥有在表站访问里站内容的权限(捐赠用户特权)。那就需要访问表站,获取
ipb_member_id cookie
和ipb_pass_hash cookie
和star cookie
。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。 - 你的账号拥有访问里站的权限,且服务器IP地址是欧美地区IP。那就需要访问里站,获取
ipb_member_id cookie
和ipb_pass_hash cookie
。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。 - 你的账号拥有访问里站的权限,但是服务器IP地址是非欧美地区IP。那就需要访问里站,获取
ipb_member_id cookie
和ipb_pass_hash cookie
和igneous cookie
。此种状态下,你可以使用程序内涉及到表站和里站的全部功能。
不论你是哪一种情况,获取的方法都是类似的,根据需要自行打开表/里站首页,按F12打开开发者工具,找到应用程序(Application)
选项卡(找不到就到”>>“里面找),火狐的话应该是在存储
选项卡。找到里面的Cookie
处(如图),点击相应链接,右侧就会出现相应内容,我的情况属于情况4,需要获取ipb_member_id cookie
和ipb_pass_hash cookie
和igneous cookie
,对应名称后的值内的内容,就是我们需要获取的内容,分别复制出来填入之前打开备用的插件设置页面内,然后点击网页底端的保存插件配置(Save Plugin Configuration)即可。
nhentai登录插件
nhentai网站加了CF的人机验证盾,所以必须配置在nhentai登陆插件中配置好浏览器ua
、csrftoken
、cf_clearance
这三个变量才可以让程序顺利从nhentai获取tag。
但是需要注意的是,只有当上面那三个cookie和获取cookie时的IP地址匹配时,才能成功穿过CF盾的验证,使插件生效。所以,获取nhentai的csrftoken
、cf_clearance
这两个变量时,必须和运行LANraragi的VPS的拥有相同的IP地址(如果你是本地环境部署就不必在意这个,直接模仿上文方法获取就好),为了达成这个条件,你有两种选择:
- 在运行LANraragi的VPS上进行获取
- 设法在运行LANraragi的VPS上建立网络隧道,本地连接上隧道获取和VPS相同的网络环境后,在本地进行获取(本方法本文不再赘述)
在这里我选择第一种情况。
csrftoken
、cf_clearance
这两个cookie倒是也有两个程序(cf-clearance、CF-Clearance-Scraper)能够直接获取,不过我用他们Readme里的范例运行了一下都没成功。有能力的可以自己研究一下。
所以我这里提供一个比较笨的办法:Dokcer运行docker-firefox镜像,这个镜像允许你在本地的浏览器上远程访问运行在VPS上的firefox浏览器,然后你就可以按照上文中Ehentai的cookie获取方式获取nhentai的csrftoken
、cf_clearance
这两个cookie。
打开插件设置页面备用
在登录状态下的首页,通过设置(Settings)-插件设置(Plugin Configuration)-登陆插件(Login Plugins)-nHentai CF Bypass-插件配置(Plugin Settings)进入插件设置页面,挂着备用。
获取cookie
运行docker-firefox镜像
docker run -d \
--name=firefox \
-p 5800:5800 \
-v /docker/appdata/firefox:/config:rw \
jlesage/firefox
运行成功后,浏览器访问http://ip:5800
即可看到Firefox浏览器的画面,像远程桌面一样操作就可以。
在远程的Firefox中打开https://useragentstring.com/,获取到自己的ua,填入Browser UserAgent string中。
在远程的Firefox中打开nhentai,手动过一下CF的人机验证(一般点个对勾就过了)
然后按F12打开开发者工具,在存储
选项卡。找到里面的Cookie
处,点击相应链接,按照和上文中Ehentai部分相似的方法获取csrftoken
、cf_clearance
这两个cookie,分别复制出来填入之前打开备用的插件设置页面内,然后点击网页底端的保存插件配置(Save Plugin Configuration)即可。
Firefox镜像用完最好及时stop掉,不然挺占资源的,即便你不在乎资源占用,最好也加个访问密码,避免被人扫到成为万人骑
程序升级
Docker方式部署的程序升级也很方便,因为漫画文件、数据库内容文件都在容器外,不会丢失,所以直接拉取最新镜像删除重建容器即可升级到最新版本。
升级汉化版本:
docker pull dezhao/lanraragi_cn
docker stop lanraragi
docker rm lanraragi
docker run --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/root/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/root/lanraragi/database \
dezhao/lanraragi_cn
升级英文原版:
docker pull difegue/lanraragi
docker stop lanraragi
docker rm lanraragi
docker run -e LRR_UID=0 -e LRR_GID=0 --name=lanraragi --restart=always -p 3001:3000 \
--mount type=bind,source=/mnt/docker/lanraragi/content,target=/home/koyomi/lanraragi/content \
--mount type=bind,source=/mnt/docker/lanraragi/database,target=/home/koyomi/lanraragi/database \
difegue/lanraragi
其中的端口号和路径依旧是依照自身实际更改。
补充说明
写了这么多,从部署到使用已经讲的比较清楚了,不过程序功能很多,难免有没有覆盖到的地方,诸多插件的配置方面不再一一赘述,大家对着汉化版或者浏览器翻译基本上都能看懂怎么用。
汉化版作者的视频介绍(以群晖为例)
汉化版作者在B站专门有一个视频介绍,可以作为本文的补充,同时用群晖不习惯敲命令的朋友们也可以参照视频部署
53 条评论
现在刮削还有什么好去处吗,eh和nh版权太严重了
博主帮忙看看,我现在一直用的url录入标签,是正常的。但我想让它用文件名来批量削刮标签,不然手太累了,还费时。按你所说,我点开一本漫画的edit页面,plugin选到eh不填入链接点击go,它会按文件名搜索,但结果是没找到匹配。我是直接在eh对应页面复制的名字(就是为测试能否按文件名削刮),全名,仅标题部分,日文,罗马音,全部都试过了,都是匹配失败,我都怀疑它是不是按名称搜索的了,但输入页面url点go是正常的。不知道问题出在哪里,批量削刮当然也是全部失败
sorry 请无视上面一堆废话! 后来发现是把login cookie给重置了,重置过一次数据库,没想到给插件配置也整没了
提示一下,如果要令容器可以使用主机的代理,需要将网络设为Host模式,
然后在加三条环境参数:
HTTP_PROXY=http://代理的IP地址:端口号/
HTTPS_PROXY=http://代理的IP地址:端口号/(如果代理服务器不支持HTTPS也要写,数值和http_proxy一样。)
NO_PROXY=localhost,127.0.0.1(防止代理本机路由)
感谢提醒,当初写的时候心里默认大家都是在境外主机上部署的了,就没考虑这方面,过两天有空添上这段。
我也是倒腾NAS的时候遇到的问题,其实这个教程应该还会有不少用NAS人看吧。
还有个问题,目前部分Lanraragi的镜像中EH登录插件还是2.2版本,对非欧美地区访问Ex不兼容。
但这个插件可以升级,而且有个问题是有些平台,比如我用的威联通,无法通过网页上传插件来升级。
只能替换文件。
具体方法我今晚下班后写一下。
关于如何升级容器的登陆插件,以EH为例:
首先打开官方的EH登陆插件的源码(https://github.com/Difegue/LANraragi/blob/dev/lib/LANraragi/Plugin/Login/EHentai.pm),右键右上角的raw,下载。
然后直接替换所有能找到的LANraragi容器中的/LANraragi/Plugin/Login/EHentai.pm文件(建议使用搜索功能,注意名字为EHentai.pm的文件有很多,仅仅覆盖Login文件夹下的),然后重启容器,就会变成新版的登录插件了。
我个人倒是没有威联通设备,威联通的设备的Docker是有什么比较特殊的情况吗?按理说网页上传插件应该所有平台都可以用的。
可能是容器权限问题,NAS的容器目录默认为admin才有权限,但是容器却是以下级用户身份运行的。
你是用文中的命令运行的原版镜像吗?原版镜像直接运行好像确实会有权限问题,所以我额外加加了“LRR_UID=0”“LRR_GID=0”这两个变量来解决这个问题,汉化版作者介绍说他修复了原版镜像的权限问题,所以运行的时候不用加这两个变量指定运行用户。
威联通的admin用户uid是多少呢?如果运行原版镜像,把LRR_UID=0里的0改成admin的uid试一下说不定会有用
镜像我只是找了个分高的容器用。是否是文中的我不确定,可能只是某个fork。至于admin的UID和GID我也记不清了,可以用命令“id 用户名”来查。
基本都一样
您好,请问lanraragi只能从E站刮削到英文标签吗,有没有标签翻译的插件什么的
https://github.com/zhy201810576/ETagCN
翻了一下汉化版项目的issue,发现还真有大佬写了个插件,不过我还没测试过,你可以自己先试试
抓取元数据,不指定url总是提示No matching
比如使用E-hentai提示:
Error while fetching tags :
Error: No matching EH Gallery Found!
如果是指定url,E-hentai的插件是能用的,但是nhentai就不行。这种情况怎么解决呢,我是使用win 10的非docker版本,在本地浏览
nhentai指定url是以下提示:
Error while fetching tags :
Error: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 at /usr/local/share/perl5/site_perl/Mojo/JSON.pm line 31.
在github找到解决问题,是由于管理器自动给本子添加了时间戳tag导致在eh上匹配不到,但是nhentai依旧不行
插件默认都是用文件名进行标题搜索来匹配的,如果文件名中有插件识别不了的格式(比如时间戳)确实会导致匹配失败。
nhentai我刚测试了一下,可以正常使用,你弹得那种提示应该还是nhentai登录插件没配置好,过不了nhentai的CF防御,你是使用哪种方案获取的CF的相关cookie?
其实很多时候no matching并不是没有这个本子,而是因为E站对日语搜索的支持不太好,最好用罗马音搜索。
你好,请问在添加标签的时候出现以下报错是什么问题?
Error while fetching tags :
Error: Connect timeout at /home/koyomi/lanraragi/script/../lib/LANraragi/Plugin/Metadata/EHentai.pm line 242.
目前部署的机器能正常进入e站,没有尝试登录。
在填入url后使用插件则会报错
Error while fetching tags :
Error: Connect timeout at /home/koyomi/lanraragi/script/../lib/LANraragi/Plugin/Metadata/EHentai.pm line 300.
出现问题是使用的插件都是e-hentai,或者说您有其他好用的插件可以爬取使用ehviewer下载的e站漫画标签吗?
你是通过Docker安装的方式安装的最新英文原版吗?我刚试了一下我之前用的0.8.81和刚更新的最新版0.8.90都是可以正常从E站获取的。
你说的“部署的机器能正常进入e站”,是指机器所处的地区原本就可以访问E站吗?
我是通过windows安装wsl,从原作者github下载的msi文件安装的。
并不是,是通过全局FQ访问的。
现在正尝试windows安装docker再来安装英文原版。
你安装Windows版Docker用处也不大,Docker的网络也需要单独设置,在WSL内设置配置好网络应该就好了
如果是这样的话,那应该就是网络的问题了,因为WSL似乎并不会遵循Windows的系统代理设置,你需要在WSL内额外进行相关的网络配置。
多谢,现在就尝试一下
感谢大佬,目前已经全部解决了,网络问题如何解决在github上有,lanraraji使用的是wsl1,直接clash开tun模式,在wsl中设置一下即可。现在正在缓慢爬取八千多本子的标签。
老哥方便说下wsl怎么设置吗,我开了tun模式后偶尔能爬到标签,大部分时候都是242
不客气,能帮到忙就好
您好,请问在加入标签时出现Error while fetching tags :
Error: Connect timeout at /home/koyomi/lanraragi/script/../lib/LANraragi/Plugin/Metadata/EHentai.pm line 300.这个问题该怎么解决呢
你部署的机器能正常访问Ehentai吗?看起来像是网络问题。
你好,请问为什么我的登录插件是E-Hentai v.2.2 by Difegue版本,而你的是2.3版本?2.2版本没办法进入ex,因为没有igneous cookie项目可以填写.....请问我该怎么操作才能升级到2.3版本?
目前我的LANraragi是从docker页面下载,使用的0.8.7最新版本。
看到该留言后还请劳烦解答,最好邮箱回复,谢谢!
可能是作者最近没有更新docker镜像,所以docker镜像里自带的插件仍然是2.2版本,不过2.3版本的插件在github上[原仓库](https://github.com/Difegue/LANraragi/blob/dev/lib/LANraragi/Plugin/Login/EHentai.pm)处可以找到最新文件,把这个pm文件下载到本地,然后进入**设置(Settings)-插件设置(Plugin Configuration)**点击页面底部的**上传插件(Upload Plugin)**选择下载的插件上传即可。
噢噢,好的谢谢!另外请问这个该如何下载呢,我找了好久都没看到download标识(ó﹏ò。)
页面上代码框区域有个Raw按钮,右击它,然后点击“将连接另存为”就可以。
原来如此,感谢!
不用客气,能帮到忙就好
你好,2.3的插件已经装好,我也输入了自己的igneous cookie,但我不确定这种方法能否真的访问ex,因为有些文件刮削后显示“处理 ID df74f4f29dfc1b41d342f268a09b7b27debe0580 (No in-archive .ehviewer file found!)时发生插件错误”。请问有其他方法可以刮削ex的tag吗?
ID后面那串应该是指MD5,“No in-archive .ehviewer file found!”翻译过来是“没有找到存档的.ehviewer文件”,感觉就是这部分还是没连上ex服务器,不知道该怎么处理
这个提示是另一个插件Ehviewer提示的,和你配置的E-hentai没有什么关系,检测连没连上最简单的办法就是在元数据编辑页面手动输入一个ex的画廊地址,能获取成功就是连上了
“在元数据编辑页面手动输入一个ex的画廊地址”,是指“输入有效的 EH 库 URL 以将此 EH 库中的元数据复制到此 LANraragi 存档 :”或“E-H Gallery URL (Will attach tags matching this exact gallery to your archive) :”下面的那个栏目吗?该栏目就填写exhentai.org这个?
是的,就是这个位置,把“Import Tags from Plugin”选项选择成E-hentai,然后填写一个“https://exhentai.org/g/xxxxx/xxxxxx/”这种格式的画廊地址,然后点Go!按钮,看看能不能获取到正确tag(也就是没有错误提示,或者你干脆把旧的tag删掉,看看点击Go!后有没有获取到新的tag)
那这个是需要找到对应的原本子链接再复制粘贴进去吗?
对的,不过如果你文件名就是本子标题,程序会自动搜索标题对应的链接并获取相关tag,这种情况下就不用手动输入链接。我让你输入一个ex的链接,只是为了测试一下它能不能正常访问ex。测试能成功访问ex的话,以后文件名用标题,并且在插件设置里打开E-Hentai的自动运行(Run Automatically),就能达到上传后自动获取相关tag的效果(当然你也可以手动输入ex链接获取)。目前你如果只是想测试能否正常访问ex的话,随便挑一个ex画廊的链接就行,不一定非得跟你的本子文件对应,反正只是测试连通性。
请问nhentai那边如何在lanraragi中登录?我发现原来我之前在ex站下载的内容,ex站已经把它们删掉了,而nh站中仍然可以手动搜索到。我想调用nh的资源进行tag刮削
nhentai需要过CF的CND防御验证,我之前尝试配置过但没有成功,这一点暂时帮不到你,你可以试试chaika.moe插件,它里面也有一些被删除的漫画的数据,只不过很多只有原版漫画,得搜日文/罗马音转写标题才能搜到
请问chaika.moe这个插件该如何使用?我之前搜总是失败
跟Ehentai一样的,不输链接默认按标题搜索,输入链接从链接获取
好的谢谢,我一会儿回去试试,现在在地铁
新增了一段nhentai插件的配置教程,如果你还想钻研的话可以试一下
请问e-hentai的网址是什么呀
e-hentai.org