美文网首页电子书制作技巧
calibre修改仓库存储的文件名支持中文

calibre修改仓库存储的文件名支持中文

作者: wpb | 来源:发表于2019-04-24 19:39 被阅读0次

    背景


    • 使用calibre管理本地书籍,然后使用margin note 、ClearView直接打开书库的文件
    • calibre为了保证跨平台兼容,会把存入本地仓库的书籍中文名称解析成拼音,从而导致在margin note 、ClearView看到的文件名比较诡异。
    • 由于个人没有跨平台的需求,因此希望本地仓库也是用中文存储书籍而不是拼音

    calibre 源码仓库


    相关代码


    • src/calibre/db/backend.py中可以看到construct_file_name等函数中使用calibre.utils.filenames.ascii_filename进行文件名称的编码,实现中文转拼音的操作

    • 修改源码

      • 修改backend.py中的construct_file_name函数 去掉ascii_filename调用及decode调用

         def construct_file_name(self, book_id, title, author, extlen):
                '''
                Construct the file name for this book based on its metadata.
                '''
                extlen = max(extlen, 14)  # 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 - (extlen // 2) - 2) if iswindows else ((self.PATH_LIMIT - extlen - 2) // 2)
                if l < 5:
                    raise ValueError('Extension length too long: %d' % extlen)
                author = author[:l]
                title  = title.lstrip()[:l].rstrip()
                if not title:
                    title = 'Unknown'[:l]
                name   = title + ' - ' + author
                while name.endswith('.'):
                    name = name[:-1]
                if not name:
                    name = _('Unknown').decode('ascii', 'replace')
                return name
        
    • 修改源码后进行编译

      cd src && python2 -O -m compileall .
      
    • 更新文件

      cp ./calibre/db/backend.pyo /Applications/calibre.app/Contents/Resources/Python/site-packages/calibre/db/backend.pyo
      
    • 已经导入的书籍名称更新

      • 在calibre中选择数据,双击触发重命名操作后直接回车保存即可

        image-20190424190515880.png
      image-20190424190529705.png

    参考资料


    相关文章

      网友评论

        本文标题:calibre修改仓库存储的文件名支持中文

        本文链接:https://www.haomeiwen.com/subject/mosngqtx.html