最近新增下载了一些漫画但从来没有看过,就想着要怎么管理。
经过网络搜索漫画管理软件并进行对比和试用了解过后,主流的一般向漫画管理有kavitakomgacalibre等。
其中komga相对于不规则的命名比较好友好,大部分的漫画都能扫描出来。有一点就是不支持rar5的压缩包文件,听说新版本已经可以很好支持了。komga使用简单但对我来说界面相对不那么美观,交互起来有点奇怪。但生态很不错,可以发现已有方案很多。
calibre实际上是把漫画作为单独的电子书进行管理,说实话管理起来十分费劲,并且漫画信息缺失过多,导致较新的篇章无法正常管理。
Kavita的wiki看上去界面相对完整友好。电子书有固定的结构和命名方式,用过plex\Emby的玩家应该比较熟悉。相对地,坑感觉比komga要更多一些。但做好标准化命名确实能稍微看着舒服一些。

主页1.png

  • 第一次使用时:

尽管某系列下的所有漫画都在同一个文件夹内:你会发现会扫描出来多个不同的系列,实际上我希望他们都在同一个漫画系列中;是的,就算在同一个文件夹下,它的扫描器仍会扫描单个文件的文件名作为标题使用,和文件夹名的标题不同的情况下,会产生新的系列标题。

  • 漫画系列扫描会忽略带括号的内容:

所以[name][artist][publisher][volume/chapter]等标准发布的文件夹名或漫画的文件名是无法正确识别的。

  • 一般对于卷命名:

漫画文件在命名为[name][artist][publisher][volume/chapter][...]Vol.1.zip是可以识别成"卷1"的。
如果文件夹名没有有效的命名,它的系列名就会变成Vol.1;
如果对应系列文件夹没有有效命名,漫画文件在命名为name Vol.1.zip的情况,系列名称则为name;
如果文件夹名是有效命名和文件同时是有效命名,单个漫画文件的命名优先;
所以最理想的情况下,系列文件夹名为有效命名,单个漫画文件只使用Vol进行表示。以便保证系列有更新时的一致性。
卷-结构.jpg
详情页.png
特刊.png

  • 对于章节漫画:

有些漫画以单章节或连续章节打包文件常用Chap命名。和卷文件命名Vol不同的是,以Chapter命名的漫画文件不会识别系列文件夹命名;也就是说,对于章节漫画,必须使用统一的漫画文件命名,这是最麻烦的。冒出一堆名为[Ch.1的系列名真的很辣眼睛。
话-结构.jpg
话.jpg
话-特刊.jpg
Kavita同时支持一个文件有多章节的命名结构。
连续话-结构.jpg
连续话.jpg

  • 特别地:

Kavita也预设了一些关键字给特殊文件夹。Plex\Emby用户应该很熟悉的Specials文件夹,还有Extra、Preview、Bonus等。
这里以系列文件夹下级的Specials文件夹为例:Specials下的文件(除了有卷信息的文件)可以显示完整的命名不会收到扫描器的影响;也就是说,非标准命名文件放在Specials文件夹下,就能够正常显示它原本的文件名而不是经过处理过的不完整的名字。一般来说番外篇、单卷完结漫画就很适合这种情况。相对来说可以有一些比较好的体验。

我现在0.8.2.0版本更新后好像有些问题,原本能用的格式在SP中也开始报错,同时发现了titlepublisher.zip的全括号的格式无法直接被读取。

  • 遇到一些其他的坑:

系列名不能有数字短横数字:"藤本树短篇集「17-21」 [ID=347264]" -->> "藤本树短篇集「17"。
系列名不能有关键字:"Fate Extra CCC 妖狐传 [ID=90423]" -->> "Fate CCC 妖狐传"
系列名不能带v+数字,会被识别成分卷:"LV1魔王与独居废勇者 [ID=313133]" -->> "L"
系列名不能使用_,所以不能它代替特殊字符或空格:"W_為美好的世界獻上爆焰!" -->> "W"
系列名不能使用"空格+数字":"Fate/kaleid liner 魔法少女☆伊莉雅 2wei! [ID=37540]" -->> "Fate/kaleid liner 魔法少女☆伊莉雅"

  • 其他的特性:

Kavita支持文件内的元数据读取:Comics and Manga Metadata,某些发布者会对漫画元数据进行编辑,这是好的;使用压缩软件打开后会发现有类似comicinfo.xml的文件存在,但现在它似乎还没有普及开。也会使得我的库中同系列已刮削和未刮削的漫画进行分离。所以我需要删除已刮削好的xml元数据内容文件以保证我的结构完整性。也希望能够越来越普及吧。
Kavita支持开启OPDS服务,可以通过移动端第三方软件阅读;例如IOS的Aidoku,Android的Mihon等。

由于komf插件是基于系列名进行的匹配,不标准的bangumi系列标题命名会导致匹配失败;我添加上BGM的漫画系列ID仅供自己勘误使用,不会对命名和匹配有影响。而作为数据源的bangumi的api对于权重不高的漫画匹配度很差。各种下来说实话体验只能说勉强够用。

关于Kavita的安装就不说了,需要的只是做好漫画文件夹结构命名并尽量避免这些坑。

关于如何快速重命名文件

我们可以通过qbittorrent下载任务后自动运行任务来对文件内容进行标准化。
我不懂代码,所有代码由ChatGPT、通译灵码编写
rename_files.py
将以上脚本文件下载至qb的config文件夹内。并在qb的webui添加完成下载后运行

python3 /config/rename_files.py --path "%F"

完成运行.png
下载完运行后:
对比.png
这个脚本会匹配卷或章节信息并删除其他多余的内容,没有匹配到的文件会放入Specials文件夹中使用原名展示;如果目标是单个文件,则会为其创建同名文件夹以满足Kavita的文件结构要求。
暂时没有对"name_1.zip"和"name 1.zip"和“name_1 part.zip”等命名的匹配,这个格式的匹配问题感觉会比较多。
最开始这个脚本其实是只会修改分卷信息部分的,同时保留文件名的其他部分信息。但操作下来例如清理不干净、有更新分卷要入库时由于新卷、章打包结构不同就会产生冲突,所以采用全部替换。
由于发现某些漫画同时存在以0卷命名的特别篇和以0卷命名的正片,为了明显发现这个错误。会在冲突的Vol后添加原文件名的length作为区分。
然后只要修改文件夹名就可以正常识别分卷Vol啦;然而对于Chap章节,由于以上提到过的原因。还需要在确认系列名之后给漫画文件单独添加系列名。不知道Kaivta作者会不会修。不过已经标准命名分卷、章节了,接下来任意搭配其他脚本或要求CHATGPT基于手动匹配后的文件夹名继续修改文件命名或通过Bangumi的API进行查询并匹配也应该不是问题。

一个设想

发现了bangumi有现成的数据导出,项目地址:bangumi/Archive
至少在以系列文件夹名查询失败时,手动修改系列命名为Bgmid并匹配subject数据进行重命名入库是可以简单做到了。
但要如何直接编辑kavita元数据还没了解过。

标签: none

评论已关闭