大家有没有用Anki的?小弟写了个可以在Org-mode里建Anki卡片的package

好像用不了哎…开始好像我的curl的问题,换了curl后,又提示

:ANKI_FAILURE_REASON: Got empty reply from AnkiConnect

我是更新了最新的插件ankiconnect,不知道楼主是否能有时间看一下

大家先临时把request降级到0.3.0吧,升到0.3.1确实有些问题,看request的commit log最近有些关于sync模式和字符编码的修改,我正在debug。

好像我的版本是0.3.0…

把request的log级别设为debug,把 *request-log* buffer里的内容贴出来大家一起看下。

debug了半天,发现request.el的sync模式坑了,它代码里的sleep-for貌似阻塞了回调的执行,导致外面循环结束不了,死循环了。。。

[debug] REQUEST
[debug] Run: C:\tools\msys2\usr\bin\curl.exe --silent --include --location --compressed --cookie c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective %{url_effective}) --data-binary @c:/Users/xx299/AppData/Local/Temp/emacs-request4uGLZa --request POST http://127.0.0.1:8765
[debug] REQUEST--CURL-CALLBACK event = finished

[debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
[debug] REQUEST--CURL-CALLBACK buffer = #<buffer  *request curl*-167308>
[debug] REQUEST--CURL-CALLBACK symbol-status = nil
[debug] REQUEST--CALLBACK
[debug] (buffer-string) =
HTTP/1.1 200 OK

Content-Type: text/json

Access-Control-Allow-Origin: *

Content-Length: 4



null
[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[debug] data = nil
[debug] symbol-status = success
[debug] Executing success callback.

windows自带的curl不行,于是搜索了半天,指定了一个curl

1 个赞

我可能表述有点问题 :joy: : 这是我已经指定后又出错的日志…

我刚才是理解错了,这种情况是AnkiConnect返回了空的结果,这个我想看看请求的内容,首先你确保AnkiConnect是最新的,然后打开addons对话框,选AnkiConnect,点类似查看文件的按钮,然后打开__init__.py文件,大概在41行有个API_LOG_PATH,等号右边的None改成一个路径,像下面这样,但是这个文件需要先手动建好,

API_VERSION = 6
API_LOG_PATH = 'C:\\Users\\xxx\\ankiconnect.log'

重试一下,把文件内容贴出来。

现在的情况是这样.

  1. 在元数据中指定卡牌时,提示如图所示, 在ankiconnect.log没有任何数据.

  2. 在属性中指定卡牌时,程序无响应,在ankiconnect.log同样没有任何数据.

下面是用Ctrl+g终止后request-log的内容

[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[error] Error from parser json-read: (json-readtable-error 40)
[debug] data = nil
[debug] symbol-status = parse-error
[debug] Executing error callback.
[debug] REQUEST
[debug] Run: C:\tools\msys2\usr\bin\curl.exe --silent --include --location --compressed --cookie c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective %{url_effective}) --data-binary @c:/Users/xx299/AppData/Local/Temp/emacs-requestzqQpwV --request POST http://127.0.0.1:8765
[debug] REQUEST--CURL-CALLBACK event = finished

[debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
[debug] REQUEST--CURL-CALLBACK buffer = #<buffer  *request curl*>
[debug] REQUEST--CURL-CALLBACK symbol-status = nil
[debug] REQUEST--CALLBACK
[debug] (buffer-string) =

(:num-redirects 0 :url-effective params:actions:[params:note:deckName:Default])
(:num-redirects 0 :url-effective params:actions:[params:note:modelName:Basic])HTTP/1.1 200 OK

Content-Type: text/json

Access-Control-Allow-Origin: *

Content-Length: 4



null
[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[error] Error from parser json-read: (json-readtable-error 40)
[debug] data = nil
[debug] symbol-status = parse-error
[debug] Executing error callback.
  1. 对于ankiconnect.log, 我用anki 划词助手时是有数据的.

之前的那种为空的信息复现不了了…

我的輸出 (用request 0.3.1 assumes utf-8 by dickmao · Pull Request #53 · louietan/anki-editor · GitHub)

关于anki 知道的不是很多 只是用过一段时间 没有深入使用

我觉得他的显示不好看(把它弄好看好像也比较麻烦)

后来发现了 reveal.js 觉得它挺好看的

我就想能不能用 reveal.js 做一个网页版的anki 效果和org-drill一样就行(org-drill是不是也有sm2算法呢?)

anki上有sqlite 网页上可以用web-socket和emacs交互 进而通过emacs再调用sqlite 这样就有数据库了

anki上能隐藏某些信息 这个对于浏览器来说 再简单不过

就是不知道reveal.js 如何实现向下滑动 好像一张ppt显示的内容有点少(难为ppt了)

关于请求卡住的问题,升级到最新的request.el,请求卡住的问题应该是没有了,但请求还是会失败,最终会报”Got empty reply from AnkiConnect"的错,这个我想大家试下把 global-auto-revert-mode 关掉试试,看能不能暂时解决这个问题。

我也遇到了这个问题,我的环境 os: win10 curl 来源 : msys2 我把 msys2 的 curl 删掉,然后用 scoop install curl 安装curl anki-editor 正常

1 个赞

天哪,我困扰了好久。在msys2,windows自带的curl反复折腾都没弄成,太感谢了。

我不确定题主在什么场景需要编辑org文件,然后生成html再上传到anki上。 对我来说,使用场景非常简单,想有道词典的查询结果直接上传到anki上,后续用来记单词。

有啊,比如把题库要转成ANKI

现在还是有 :ANKI_FAILURE_REASON: Error communicating with AnkiConnect using cURL: exited abnormally with code 52 这个问题

用了觉得很好,谢谢 我用着很正常,是WSL下的Emacs26.2 和windows 版的ANKI,MAC平台用了也正常。

可能有人用着报错可能是没有设置 (setq anki-editor-create-decks t) ,找不到DECK所以报错

我是mac,也设置为t了,都出现了上述报错,issue上说是ankiconnect的问题,更新ankiconnect后也不行,请问这种情况遇到过吗?

我的正常,开始报错,开request的跟踪看返回的是200,设置(setq anki-editor-create-decks t)后就可以了