开始教程之前

1. 什么是 Calibre 和 Lanraragi ?

Lanraragi

项目地址:https://github.com/Difegue/LANraragi
支持平台:linux、windows

是一个多平台开源漫画服务器,可以将本地或是服务器/nas上的漫画文件展示出来。其主要特点有下面几点。

优点

  • 支持 zip/rar/targz/lzma/7z/xz/cbz/cbr/pdf ,以及对 epub 的基本支持。基本上你所拥有的漫画都可以被读取
  • 直接从 WEB 浏览器读取图片,服务器使用临时文件夹从压缩文件中读取原档,如果带宽较低的话还可以通过服务端实时压缩图片来降低带宽压力
  • 内置 OPDS 和 API ,可以通过第三方客户端来读取内容
  • 实时监测文件库的变动,可自动添加新内容到数据库中,并自动调用插件进行刮削元数据。
  • 可通过输入下载链接直接下载文件到服务器上,并且支持上述的插件刮削。
  • 支持数据库备份为 JSON ,方便迁移
  • 不破坏本地路径,只需要将自己成堆的漫画库设置为档案库即可,不需要单独复制一份来额外占用空间

缺点

  • 文件管理操作不便,网页端没法直观的对文件库进行删改操作
  • 刮削进程不可控,如果因为文件命名导致刮削失败也很难进行批量处理
  • 本身没有对系列漫画归档的设计,对于普通漫画来说不太友好

Calibre

官网地址:https://calibre-ebook.com/
支持平台:linux、windows

Calibre 是一个开源的电子书软件,也可以说是世界上目前功能最完善的电子书管理软件,支持绝大多数的电子书格式。漫画的几种常见格式自然也是支持的,除了管理漫画外,用于管理轻小说等电子书也是不错的选择。


2. 我为什么需要这篇教程?

因为你和我一样都具有仓鼠症,但对于常年累月积攒下来的“优质”漫画的整理又无从下手,整理起来又有以下几个问题

①不方便进行分类,以作者分类不方便xp检索,以xp分类也不方便找同作者的其他本子

②希望能在手机或是其他地方实时检索本子或是观看

③以前积累的本子太多,整理起来太累,就全部堆到一个文件夹里。


3. 看完这篇教程你能收获什么?

一个较为规整的本地漫画库,并且可以方便的通过移动设备或是外网串流实时观看。除此之外,以后的新漫画都可以自动化的获取标签并入库。


Calibre的安装与使用

1. 安装软件

首先从 Calibre 下载页面选择对应的版本下载安装,安装的时候顺着向导一路向下走即可,中间创建书库时可以直接选择本地或者是 NAS 上的空白文件夹。


2. 调整配置

Calibre 最让人诟病的一点就是很多设置描述显得模棱两可,或者是想要修改的地方找不到,所以我直接把我所使用的配置文件分享出来,按照压缩包内的说明文档,直接覆盖软件的配置文件夹即可。

懒人包:https://pan.baidu.com/s/1OMxYgnfoWuzE3gZeksnTQA?pwd=fdau
提取码:fdau
密码:kame

其中汉化修复的效果是使 Calibre 所导入的文件不要变成拼音,这点本来是为了方便软件建立数据库的,但是谁也不想自己收集的文件全部变成拼音命名吧。


3. 基本使用

网上如果检索 Calibre 的教程,大多也只是较为浅显的使用一下,不过关于我们需要整理的漫画,恰好有两篇写的非常不错的。

使用Calibre管理你的本子
使用Calibre管理你的本子——第二季

看完了以后基本上对于这个软件算是入门了,不过教程中的录入元数据的操作需要稍微改进一下(如果直接使用懒人包可以跳过下面几条,因为可以直接用了)。


4. 修改加入文件时的正则匹配表达式

漫画一般包括有作者、题名、作品来源和汉化组名字,我们需要提取其中有价值的部分,并且重新封装成新的文件名。

通过上面文章中的正则可以匹配出大部分漫画的作者和提名,我在此基础上进一步增加了提取原作名字的正则,最后表达式如下:

(?P<comments>.*?\[(?P<author>(?:(?!汉化|漢化)[^\[\]])*)\](?:\s*(?:\[[^\(\)]+\]|\([^\[\]\(\)]+\))\s*)*(?P<title>[^\[\]\(\)]+).*?(\((?P<publisher>[^\(\)]*)\))?.*)

保存设置后,只需要往 Calibre 书库中拖动漫画,便会自动识别以上的信息。


5. 修改文件的保存命名

由于软件是新建的书库,需要将漫画文件导入其中,如果想要再留一份原档的话,那就是双倍占用空间。如果直接使用原版软件,会导致导入的文件名均被软件转换为拼音

下面给出解决方案

Calibre 中文文件名修正
项目地址:https://github.com/kurikomoe/calibre-utf8-path

下载后进行覆盖软件的文件,并通过批处理文件启动文件,此时软件会以调试模式启动,运行修改过后的代码,这样导入的文件就不会变为英文,并且不会影响软件的本身运行。

不过单纯就这样启动以后,还会发现虽然文件名变回中文了,但较长的文件名却被裁剪了,例如

所以我们还需要对源码进行修改,需要修改的文件是~Calibre\src\calibre\db\backend.py

 def construct_path_name(self, book_id, title, author):
        '''
        Construct the directory name for this book based on its metadata.
        '''
        book_id = ' (%d)' % book_id
        l = self.PATH_LIMIT
        author = ascii_filename(author)[:l]
        title  = ascii_filename(title.lstrip()).rstrip()
        if not title:
            title = 'Unknown'[:l]
        try:
            while author[-1] in (' ', '.'):
                author = author[:-1]
        except IndexError:
            author = ''
        if not author:
            author = ascii_filename(_('Unknown'))
        if author.upper() in WINDOWS_RESERVED_NAMES:
            author += 'w'
        return f'{author}/[{author}]{title}{book_id}'
    def construct_file_name(self, book_id, title, author, extlen):
        '''
        Construct the file name for this book based on its metadata.
        '''
        extlen = max(extlen, 0)  # 14 accounts for ORIGINAL_EPUB
        # The PATH_LIMIT on windows already takes into account the doubling
        # (it is used to enforce the total path length limit, individual path
        # components can be much longer than the total path length would allow on
        # windows).
        l = (self.PATH_LIMIT) if iswindows else (self.PATH_LIMIT)
        if l < 5:
            raise ValueError('Extension length too long: %d' % extlen)
        author = ascii_filename(author)[:l]
        title  = ascii_filename(title.lstrip()).rstrip()
        if not title:
            title = 'Unknown'[:l]
        name   = '[' + author + ']' +title
        while name.endswith('.'):
            name = name[:l]
        if not name:
            name = ascii_filename(_('Unknown'))
        return name

经过这样改动后,无论是多长的文件名都可以原样保存,由于我是按照本子的命名格式调整的,如果有自己的想法也可以自行改动上面的第20行和第37行代码,分别对应文件夹命名和文件命名的。


6. 添加元数据刮取插件

E站本子元数据下载插件
项目地址:https://github.com/nonpricklycactus/Ehentai_metadata
从 Github 上下载插件后可以在 Calibre 中的首选项-插件-从文件中加载插件,进行导入。

导入后需要配置自己的E站Cookies和翻译的数据库,前者需要自己的账号,推荐使用里站的账号,毕竟有些本子外站搜索不到。而后者则可以在上面插件的项目地址中下载EhTagTranslation.db文件,在插件配置中填好路径即可。

使用Tips:

①本子的名字对于刮削来说非常重要,有时候搜索不到可以删掉一部分名字或者删除作者名。

②如果上述操作还是找不到本子,可以自己上E站尝试搜索,如果也搜不到说明画廊可能被删除或屏蔽,还有一种概率比较小的是本子此时没有被打 tag ,这种情况下插件依旧会返回错误。

③如果找得到但是插件搜索不到,可以开启插件的 Accurate_Label 选项,手动填写本子的链接。


7. 修改标签映射器

直接刮取下来的 Tag 大多为女性:xx,看起来不太美观,并且可能有些 Tag 所表述的意思是重复的,可以进行合并,又或者其中的一部分 Tag 是没有意义的,需要删除。此时可以使用 Calibre 的标签映射器来自动转换这些 Tag。

这个工具默认不显示出来,需要在首选项-工具栏与菜单-主工具栏左侧选择后,才能在上方的工具栏中看到它。

需要注意的是,当你进行改动后按下确定,会直接对当前显示的所有的文件的标签按规则进行整理,最好先做好测试以后再进行下一步操作。

当规则设置好后,可以按下面的保存,将当前的规则列表保存一份。之后在元数据获取配置里将规则进行同步,这样刮削后会直接按规则进行转换。


8. 重复文件检索

这里使用的是 Find Duplicates 插件,可以直接在 Calibre 的插件库中搜索到。这个软件可以通过比对作者名和文件名的相似程度来进行去重。

当你的本子库大到一定程度的情况下,这个插件是非常实用的,我目前1w5本的情况下,这个插件也仅需几秒便可检索完成。

Lanraragi的安装与使用

1. 安装软件

首先从Lanraragi下载页面选择对应的版本下载安装,windows的话直接下载.msi安装即可,如果是在linux上搭建的话,推荐使用dcoker,教程可以参考使用Docker安装LANraragi,打造你的漫画仓库,这个也是汉化过的,本人也是使用的这个镜像。

★软件的数据库和索引文件是独立出来的,运行时会经常读取这两个文件,推荐将这两个放在SSD中,可以有效提升使用体验。


2. 插件配置

大部分配置可以根据自己喜好选择,比如压缩图像质量,如果只是局域网使用便不用开启,如果想要在外网顺畅使用,则还是推荐开启。

插件方面,自带的几个插件也都比较实用,可以自己尝试一下,个人推荐开启下面两个插件的自动运行,开启自动运行的插件会自动将入库的文件进行刮削

ChineseMeta
E-Hentai_CN

其中E-Hentai_CN插件是一位大佬魔改后的,可以直接获取汉化版本的 Tag,安装方式也可以直接参考项目文档,值得一提的是大佬还做了一个英文转换中文的脚本,如果是通过其他插件获取的英文 Tag ,又或者是之前已经刮削过英文 Tag 的,都可以用这个脚本进行一件转化。

E-Hentai_CN
项目地址:https://github.com/zhy201810576/ETagConverter
ETagConverter
项目地址:https://github.com/zhy201810576/ETagConverter/releases/tag/alpha-0.0.1


3. 文件库设置

由于Lanraragi是会检索档案库的所有符合要求的压缩包文件,并且是以路径来整合数据库的,所以并不会改动原有文件和路径。因此可以直接将上面 Calibre 整理好的本子库作为 Lanraragi 的档案库使用,两者的优缺点刚好互补。

Calibre

优点: 文件管理方便,操作直观简洁。

缺点:在线阅读体验差,需要将整个文件缓存至本地,并且不会记录阅读进度。

Lanraragi

优点: 在线阅读体验良好,可记录阅读进度。可以实时监测档案库的文件变动。

缺点: 文件管理约等于没有,刮削插件需要文件命名标准化


开始整理文件吧!

上面两者都设置好后,就可以将本子库导入了。

  1. 将文件拖入 Calibre ,检查自动识别的名字和作者有无错漏
  2. 右键批量获取元数据,检查元数据是否对应,按确定进行改写
  3. 整理完成!
文章作者: 布丁布丁布
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 布丁の小窝
默认分类 本子 漫画 整理
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝