zoukankan      html  css  js  c++  java
  • Linux下为Calibre书库打中文目录名与文件名补丁

    本文由来

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

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

    本文环境:Debian 10 + Calibre 3.39.1,据说5.2以后版本变化较大,方法可能不适应5.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

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

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

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

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

    搜索 construct_file_name ,注释了1200-1201行字样的两行

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

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

    小试牛刀

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

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

    本文参考:

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

  • 相关阅读:
    MFC Document/View 3
    MFC Document/View 2
    c++基本类型&&&c++string与c风格字符串的相互转化
    C++不同变量所在内存&&new malloc的区别
    C# 操作Excel 复选框
    prepareStatement与Statement的区别
    Oracle查询用户所有表、字段等信息
    同样的用户和密码,PL/SQL可以正常登录,C#程序却出现 ORA-1017 用户名/口令无效
    javascript原生态的同步异步请求实现
    SQL 数据库是否安全
  • 原文地址:https://www.cnblogs.com/hellxz/p/change-calibre-book-path-with-filename-in-chinese.html
Copyright © 2011-2022 走看看