新插件:calibredb.el 用 emacs 管理你的 ebooks(其实可以任何文件)

INVALID LIBRARY代表路径里面可能没有 metadata.db,所以才提示 INVALID LIBRARY.

我确定 Calibre Library/ 目录下是有 metadata.db 的。

我尝试了更新的版本,依然是同样的问题。和原来一样。 以下是我的软件版本号:

calibredb --versioncalibredb (calibre 4.17)

我尝试了以下删掉 ~/Calibre Library/ 整个目录,然后重建一个,添加一本电子书。重新尝试 calibredb.el 还是一样的问题。

肯定是 string-match-p 判断语句里面 正则的问题,我看到值 line 就不包含 ^C. 所以返回肯定是nil,而 calibredb-candidates 返回nil,然后也就 INVALID DATABASE 了。

你看看我视频中edebug时line的值,调整下正则?

好的,你能把line内容复制给我吗,我想看看中间的分隔符是什么字符,好奇怪,看你的图片,为什么你的分隔符会变成空格?如果用空格做分隔解析不了内容,必须要用一个不常用的分隔符才可以。

配置分隔符可以看到line里面有分隔符吗?

(setq calibredb-sql-separator "::::::::")

刚看了一个帖子,sqlite - overriding .sqliterc .mode on sqlite3 batch mode - Stack Overflow

可能是受系统的.sqliterc影响了,我明天试试sqlite的-list选项。

我也没想到这个。哈哈,这是我的 .sqliterc

-- [beautiful views]
-- .header on
-- .headers on
.mode column
.nullvalue "Null"
-- .separator "|"
-- .prompt "sqlite> " "   ...> "
-- .echo off

在取消上面两个设置项后,calibredb正确工作了。 line值确实能看到 ^C 了。 奇怪的是,我想要测试到底是sqliterc文件哪个选项导致了这个问题时,发现我重新启用那两个选项,calibredb还是正常的。。。。无语了。。。是由于缓存的缘故么?

我修改了最新的代码,现在不会受.sqliterc影响了。。是因为mode要是list才行,因为column模式下无视separator

终于问题解决了,感谢感谢!!!

2 个赞

有兴趣的话,可以看看我最新的Develop分支,版本1.9.0,对BibTex和Org-ref的支持。现在初步功能是,将整个库导出到一个BibTex文件,org-ref通过读取该Bib文件从而实现互动,欢迎反馈。晚点稳定了,就合到Master里面。

M-x calibredb-list开始,好像得一本一本确认?几百本有点太累了,有没有方式直接确认导出全部书?谢谢

另外能不能设置在*calibredb-search里隐藏显示comment部分哪?

不太懂直接确认全部书什么意思。默认就是全部书导出,不用确认。

如果要隐藏,可以配置

(setq calibredb-comment-width 0),大于0,就是限制的长度,-1就是原长,其他元素类似。

1 个赞

谢谢!

我指的是当M-x calibredb-list之后,minibuffer依次出现每本Description: XXXXXXXXXXXX (就是每本书的名字),然后按Enter,就出现下一本书的。因为我的书有上百本,所以按了,比如5次Enter后,我用C-g C-g中断,然后就会出现*calibredb-list*的buffer,里面只有5本书的记录。

注:我是从melpa安装的calibredb.el,应该不是git HEAD。

calibredb-list 导出是需要点时间的,书库越大,需要的时间越久,不需要按回车确认(难道是 Bug?但是我测试了,没有需要用户按回车的情况,还是你想要这个功能?),等完成后,你可以将该buffer另存为一个普通的 org 文件。

Version 2.0.0 发布:

  1. 修改部分按键:DEL, RETvVM-nM-p .
  2. calibredb-add支持多个marked同时添加(暂时只支持 ivy 标记多个文件)。
  3. calibredb-open-dired打开当前光标下的文件, 进入 Dired 后方便从文件系统处理 Ebook。
  4. 添加 all-the-icons 的文档, (setq calibredb-format-icons t),开启图标支持。
  5. 添加 width 配置的文档。

不是我想要这个功能,而是在我使用时就这样。我上个回复补了张图(那是我的第一本书),每个minibuffer中的Description是可以编辑的,所以不按Enter就会永远停在那里。

你的不会?那很奇怪啊,我再查查看。谢啦

我知道为什么了,是org-insert-link的问题,我明天修复一下。谢谢反馈~

1 个赞

好了,修复好了。

1 个赞

2.0.0 全面支持所有Calibre支持的字段输出到 BibTex 文件,并与org-ref互动。

(require 'org-ref)
(setq calibredb-ref-default-bibliography (concat (file-name-as-directory calibredb-root-dir) "catalog.bib"))
(add-to-list 'org-ref-default-bibliography calibredb-ref-default-bibliography)
(setq org-ref-get-pdf-filename-function 'org-ref-get-mendeley-filename)

附上演示和对比图: bib

1 个赞