Linux下为Calibre书库打中文目录名与文件名补丁

摘要:
这篇文章就要下班了,我突然看到一篇关于知乎修补Calibre中文目录和文件名的文章。使用过Calibre的学生应该知道,添加到图书馆的书籍相当于来自外部的副本。该方法可能不适用于5.2版及更高版本。以下两个数字是关于添加书籍以及它们在文件管理器中的样子:你需要下载源代码,更改它,编译它,并替换Calibre正在使用的文件。

本文由来

临近下班突然看到知乎上有篇文章是给Calibre打中文目录与文件名补丁的,想起我之前为啥放弃Calibre的——存进书库里书的名称都变成了拼音!手动找起来或者搜索工具找起来太麻烦了(有时想不起用Calibre,直接用搜索软件+PDF阅读器就看了),用过Calibre的同学应该知道——添加到书库里的书相当于从外边复制过来的,每本书都存两份很占空间呀!万一用不习惯还能卸载,不用每本书都改回一次名!

既然有这么做成功的,Windows行,Mac行,那Linux也一定行!

本文环境:Debian 10 + Calibre 3.39.1,据说5.2以后版本变化较大,方法可能不适应5.2版本以上

下面两张图是添加书籍以及在文件管理器中的样子:

Linux下为Calibre书库打中文目录名与文件名补丁第1张

Linux下为Calibre书库打中文目录名与文件名补丁第2张

一步跳进坑

根据那篇文章所说的,需要下载源码改完编译后替换Calibre在用的文件,那个待修改的源码文件是 src/calibre/db/backend.py,需要编译成 backend.pyo 再去装到pylib.zip中,我改完了编译完了想去替换时犯了难:在Debian下这个文件放哪了??那篇文章里明明有 pylib.zip 压缩包,我 find / -name "pylib.zip" 也没有,想着要不二进制安装下试试?

没错,我又折腾了一阵二进制安装,无果。

回过头想想,问题出在哪呢?

渐入佳境

回到家,用手机又查了下,发现有文章用Mac改的源码,然后替换的位置和Windows下也不一样。灵光一闪,这 pylib.zip 在Linux下应该是没有的,我搜一下不就好了?搜啥呢?

打开命令行,问了下命令 whereis calibre

Linux下为Calibre书库打中文目录名与文件名补丁第3张

可能有的地方可能在 /usr/lib/calibre/usr/share/calibre 目录中,进入 /usr/lib/calibre 目录后,我突然发现:这目录结构不就是源码么!只是没了src这层,我一下子就找到了源码 calibre/db/backend.py,另外发现有个.pyc结尾的文件,查了下Bing发现这是和.pyo类似的字节码文件

Linux下为Calibre书库打中文目录名与文件名补丁第4张

备份了 backend.py 与 backend.pyc 后,开始动手改

sudo vim /usr/lib/calibre/db/backend.py

搜索 construct_path_name,注释1172-1173行字样的两行

Linux下为Calibre书库打中文目录名与文件名补丁第5张

Linux下为Calibre书库打中文目录名与文件名补丁第6张

搜索 construct_file_name ,注释了1200-1201行字样的两行
Linux下为Calibre书库打中文目录名与文件名补丁第7张

Linux下为Calibre书库打中文目录名与文件名补丁第8张

保存退出,开始编译.pyc,之前看这文件头上有python2.7字样,编译也是用python2.7编译的

sudo python2.7 -O -m py_compile /usr/lib/calibre/db/backend.py

小试牛刀

Linux下为Calibre书库打中文目录名与文件名补丁第9张

如图,中文目录和中文文件名都正常了,又能与 Calibre 愉快地玩耍了~

Calibre作者将这些中文等unicode转成拼音这种字母型是为了方便迁移到无unicode支持的环境中而不至于乱码,对于我们而言是不必要的。

本文参考:

本文首发自博客园 Hellxz博客,同步于CSDN 拾级而上

免责声明:文章转载自《Linux下为Calibre书库打中文目录名与文件名补丁》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu 安装source insight3.5PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringBoot入门及YML文件详解

SpringBoot 简介 微框架,与 Spring4 一起诞生,基于约定、生来为了简化 spring 的配置 优点 可以快速的上手,整合了一些子项目(开源框架或者第三方开源库) 可以依赖很少的配置快速的搭建项目 基于 spring 使开发者快速入门,门槛很低。 可以创建独立运行的应用而不需要依赖容器 提供很多 maven 极简配置,缺点是会引入很多不需...

vue-resource+element upload上传(遇到formData总是变为object格式)

文件上传这种业务需求很常见,但是最近用了element,仔细看了文档,按照demo写了上传,与后台传参调取接口时,控制台总是显示未获取到文件,想了又想,发现一开始思路就跑遍了。。。 写此博记录下遇到的问题。 传参给后台需要formdata格式的,这种格式也很常见,如下: // FormData 对象 var form = new FormData();...

Mybatis3源码笔记(一)环境搭建

1. 源码下载 地址:https://github.com/mybatis/mybatis-3.git。 国内访问有时确实有点慢,像我就直接先fork。然后从git上同步到国内的gitte上,然后在idea上一波clone下来,速度就比较理想了。 2. mybatis-parent 项目依赖mybatis-parent,下载mybatis-parent。...

Modbus抄表中应用到CRC8+CRC16+CRC32源码

#ifdef _C51#define _flash code#define _FLASH _flash#endif #ifdef _C32#define _flash const#define _FLASH _flash#endif #ifdef _CRC8// X^8 + X^2 + X^1 + 1u8 _flash CRC8_TAB[256] = {0...

OCR2:tesseract字库训练

由于tesseract的中文语言包“chi_sim”对中文字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。 工具: Java虚拟机,由于jTessBoxEditor的运行依赖Java运行时环境,所以需要安装Java虚拟机。下载地址:http://www.oracle.co...

JXL操作Excel

      jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,...