去年考研,发现了背诵神器Anki后,就一直在用它背各种东西,当然最主要的就是背单词了。Anki最大的好处就是背诵的卡牌内容可以自己随便定义,但在背单词时,每个单词都需要手动查询解释,然后再复制到Anki里实在是有点麻烦。刚开始每天背的单词量比较大,查单词录入Anki都要花去我大量的时间,为了提高效率,当时我就自己修改了一个Anki插件,实现了只需手动输入单词,然后自动批量生成单词解释的功能。 效率提高了不少,虽然没能帮我把英语考到70分。。

录取之后闲了下来,决定将这个小功能整理一下,做个独立的插件,方便大家使用,希望能够帮助用Anki背单词的小伙伴。插件编号:2074564812,欢迎下载试用

效果图如下

功能比较简单,源代码已经提交到git上,有兴趣的可以看看,或者帮我一起完善

  • github.com/dongshuai20…

因为Anki的插件开发文档不是很详细,下面简单讲一下模块的各种功能,以及开发中遇到的坑。

这里是将在Anki执行打开浏览界面时,在浏览界面的菜单栏插入一个我们插件的按钮“单词宝”。addHook相当于监听功能,在动作‘brower.setupMenus’发生时,调用我们的on_setup_menus插入菜单方法。

import ankianki.hooks.addHook('browser.setupMenus',on_setup_menus,
)
复制代码

这是具体的on_setup_menus方法。先创建一个menu,然后将menu插入到浏览界面的菜单browser.form.menubar.addMenu(menu)。 然后又在menu中定义了两个子菜单,科林次单和人人词典,用来分别用不同的词典来查询单词解释。

from PyQt5 import QtWidgetsdef on_setup_menus(browser):menu = QtWidgets.QMenu("单词宝", browser.form.menubar)
browser.form.menubar.addMenu(menu)def kelin():search_word(browser,type=0)
def renren():search_word(browser, type=1)action = menu.addAction("柯林辞典")
action.triggered.connect(kelin)
action = menu.addAction("人人辞典")
action.triggered.connect(renren)
复制代码

browser.selectedNotes()能够获取到当前浏览界面所选中的卡牌note_id,然后再通过mw.col.getNote(note_id)可以获取到卡牌的note。note中有两个比较重要的内容一个是note['Front'],和note['Back'],其中note['Front']是卡牌的问题页面内容即单词,note['Back']是卡牌翻开之后的解释即单词解释。我们要做的就是用note['Front']去查单词解释,然后将单词解释赋值给note['Back'],最后note.flash(),mw.reset()就能将更新写入Anki的数据库。

    from aqt import mwdef search_word(browser,type=0):# if type == 0:#     showInfo('科林辞典')# else:#     showInfo('人人词典')notes = [mw.col.getNote(note_id)for note_id in browser.selectedNotes()]total = len(notes)n = 0for note in notes:result = ''if type == 0:result = searchWord_kelin(note['Front'])else:result = searchWord_renren(note['Front'])if result == '':# showInfo('查询失败,可以尝试使用别的词典')n += 1else:# showInfo('查询成功'+note['Back'])note['Back'] = resultnote.flush()mw.reset()msg = '查询单词'+str(total)+'个,其中'+str(total-n)+'个成功,'+str(n)+'个失败'showInfo(msg)
复制代码

上面就是Anki的具体操作了,至于怎么获取到单词的解释就很简单了,我获取的词典网页内容,然后截取的字符串,有兴趣的可以看下代码,

  • github.com/dongshuai20…

自己写Anki插件-单词宝相关推荐

  1. 写笔记插件_梁宝川:这11条anki插件的使用常识分享给你

    每日写一篇文章的第2年195天 anki考研找梁宝川 在我们编辑anki笔记的过程当中,插件我担任着一个非常重要的角色. 因为插件可以帮我们将笔记形式变得更加丰富. 并且,也可以我们更加方便的操作an ...

  2. chrono0.10插件离线版_梁宝川:这11条anki插件的使用常识分享给你

    每日写一篇文章的第2年195天 anki考研找梁宝川 在我们编辑anki笔记的过程当中,插件我担任着一个非常重要的角色. 因为插件可以帮我们将笔记形式变得更加丰富. 并且,也可以我们更加方便的操作an ...

  3. 看各路单词APP不顺手 索性自己写一个背单词系统

         作者:王木一      来源:恰好恰好 本文约 3500 字 预计阅读需要 8 分钟 https://github.com/Benature/WordReview 开门见山 先放重点 如果嫌 ...

  4. 看各路单词APP不顺手?索性自己写一个背单词系统

    本文约 3500 字 预计阅读需要 8 分钟 https://github.com/Benature/WordReview 开门见山 先放重点 懒人目录 1. 背单词方法论 / 痛点 2. WordR ...

  5. 1个人,3个月业余时间,采用Flutter,居然仿写了一个淘宝电商开源项目

    来源 | https://www.jianshu.com/p/194448388ce9 前言 Flutter现在如火如荼,Google也在大力推广,是到了学习Flutter的时候了,今天推荐一款用Fl ...

  6. Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法

    Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...

  7. 写JQuery 插件 什么?你还不会写JQuery 插件

    http://www.cnblogs.com/Leo_wl/p/3409083.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui ...

  8. 锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]

    1.表单验证插件Validation   2.表单插件Form   3.动态事件绑定插件livequery 可以为后来的元素绑定事件   类似于jQuery中的live()方法     4.jQuer ...

  9. 插件怎么用_【Anki插件篇】(01)插件介绍

    https://www.bilibili.com/video/av59953393​www.bilibili.com Anki的插件是anki相较于其他flashcard软件最大的优点之一,得益于an ...

最新文章

  1. python【蓝桥杯vip练习题库】ADV-120 6-17复数四则运算
  2. Django使用MySQL笔记
  3. 盛佳:搜索是有目的的发现,发现是无目的的搜索
  4. paramterType和resultType的区别
  5. Java线程之守护线程(Daemon)
  6. 今天学了瀑布流的js方法
  7. 技术讲坛新模式,积分制
  8. 岭南师范C语言程序设计真题_2021南京师范大学现代教育技术考研经验分享
  9. html与css游戏开发工具,分享15个最佳的HTML/CSS设计和开发框架
  10. 【带权并查集题目汇总】
  11. 阿里开女性创业者大会 马云:世界因为女性而美好
  12. weblogic安装与配置注意事项
  13. 物种多样性学习 之Alpha多样性
  14. 8.5.3耳麦拔插事件调用流程分析
  15. 学习SEO就到SEOWHY,SEO十万个为什…
  16. Error response from daemon: removal of container XXXXXis already in progress解决方法
  17. VA525紧凑型嵌入式流量计0695 5250_A1_B1_C1_D1_E1_F1_G1_H1_I1_J1_K1_L1_M1_R1
  18. 我的PLSQL学习之路-基础
  19. php超清壁纸,美得让人不能呼吸、4K超清壁纸3840×2160p超多图[小水管勿进]
  20. Linux系统查看物理CPU个数、CPU核数及逻辑CPU个数

热门文章

  1. 极客时间限时免费开放全部课程!别纠结了选这几门!
  2. 你的设备遇到问题,需要重启;我们只收集某些错误信息,然后为你重新启动。
  3. php如何截取出视频中的指定帧作为图片
  4. 关于Pycharm主题Darcula下使用jupyter显示图片的颜色错误
  5. 和平精英有了氪金系统,玩家再也不敢开挂了?网友:你到亚服看看
  6. python常用图形绘图(matplotlib,pyecharts)
  7. python3 + wxpython 实现RSA加密聊天室
  8. 阿里云物联网平台-数据解析脚本详解
  9. python入门书籍推荐,看这篇文章就够,请!
  10. 用户输入一个整数,求出它的各个位数,并求各位数之和