Calibre管理电子书怎样和原来的命名规则相结合?
10 个回答
1.使用源代码启动Calibre,如何做,见官网Setting up a calibre development environment
2.修改代码。在backend.py中发现调用了construct_path_name,接着发现:construct_file_name,直接将author、title注释掉即可。
3.会有一点问题,如果书名从电子书中提取的话,主要是对"\:"等字符问题。
参考我的博文:
2018.12.16补充:
解决上述文件名、路径中非法字符的问题,这样就不报错了:
1.添加一个自定义函数
def replace_invalid_filename_char(filename, replaced_char=''):
'''Replace the invalid characaters in the filename with specified characater.
The default replaced characater is '_'.
e.g.
C/C++ -> C_C++
'''
valid_filename = filename
invalid_characaters = '\\/:*?"<>|'
for c in invalid_characaters:
#print 'c:', c
valid_filename = valid_filename.replace(c, replaced_char)
return valid_filename
2.把存在于construct_path_name,和construct_file_name函数中的author、title修改为:
author=replace_invalid_filename_char(author)
title=replace_invalid_filename_char(title)
calibre的设计理念中希望到达用户不用关心物理文件的目标,所以一些信息都应该在calibre书库中进行维护。无须纠结被改得无法识别的拼音文件名。
“扫描版”“带书签”这些书籍信息,可以以自定义元数据字段的方式在calibre书库中得到管理。也可以通过给书籍加标签的方式来得到有效的管理。但这些信息总不该出现在“书名”中。
如果需要把这些信息在导出文件时体现在文件名中,可以通过配置保存文件时所用的文件名模板实现。如果需要把这些信息在转到阅读器时在阅读器上的书名中体现,可以通过设置元数据控制板实现。