掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 47953|回复: 369

[经验交流] 如何给FastWordQuery写扩展插件以支持其他mdx词典

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑 8 T5 H0 O1 _% B1 B0 |# \

8 t8 @% B* x/ |! o; t% [& L2 D7 wFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。+ R) s8 W9 c6 v
论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。
% v' e, p9 O) N* {# ^9 jpdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复

. R3 Y. |5 g3 q% U
% D5 t7 B+ X/ ~9 z( l$ t文章中工具下载地址也放在这里:
) T8 W5 W: V. f% L5 ]" q. J
5 X# v# P- z' Y; Z, L/ C& ]mdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复

" v2 U/ o8 W1 K6 y可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。: q2 D) ?' V# |) b, s( p7 n  E
2 J) C+ u/ m1 j. A9 h$ |" Z
我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复

: _4 B' j% {# h1 w$ l' X, \8 E
# A4 A$ ^0 v! b, v顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
3 L9 e$ Z% r+ y9 o+ L  f, j5 T! u6 Z6 ]0 C

9 f/ R3 c: L0 S/ ~) i! a- W; Y
: G8 n" `- h9 \( T3 W
% l* O$ N" C6 k. @% F3 Q- a
" I& V. J4 o, M1 d* J, x* p& I  Q上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。' J. u9 w$ ~4 X# ?7 H+ H
: V( P& ]$ C, y( ~  @

" F2 Z$ }" U, ~
5 B4 B9 a' V- |1 ~8 l7 D* b! x9 z( s. f" X& X
# v7 h$ i, h7 o; O
2 W) Z' B" o0 Q* X. B

! ~5 S  g, I, M- M1 J; }9 {4 l+ w1 a

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

6

查看全部评分

本帖被以下淘专辑推荐:

  • · anki相关|主题: 20, 订阅: 7
  • · 1|主题: 2, 订阅: 0
  • TA的每日心情

    2026-1-13 17:21
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2020-5-5 00:17:56 | 显示全部楼层
    本帖最后由 bdqq 于 2020-5-5 00:38 编辑
    ; }4 c: p( @0 L. s0 k3 Q0 b0 Y6 S6 w& j) x! ]! p
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了: X, s& F0 ?, p: b  B5 V$ o% W
    https://ankiweb.net/shared/info/18072067481 ?0 {+ o; ]" R# D3 X! d8 w

    % }7 T9 p3 a) M9 F& M7 e
    ( x9 @" a+ L- y9 T
    # j( M8 ]: |; Z3 o; c8 S! C: M/ D
    ' j! l7 h& R, Q) j- F" `* Y$ `: H
    ' E1 c: F+ E9 A8 x! t# X
    我的anki版本是2.1.22
    : H# A$ e. Y( t. k2 j  D
    3 q, z0 ]8 H9 Q3 ?. B4 z" ) V6 z% r$ I5 B- M

    " a5 c  P: x, i2 K  c$ G, Q
    8 I# o* M% b2 u  q" h. Y5 L
    6 {# S4 |% B5 v) O我在网上下载了一个朗文6,其中有这样5个文件
    . @$ \0 i* y6 r- z2 \6 U& ^. o5 D% e/ \0 D" {7 Z5 o( |( x! i
    entry.js   
    1,206
    L6mp3.mdd  
    1,297,932,816
    L6mp3.mdx
    124,057,083
    LDOCE6.css
    12,642
    拷贝wquery目录和wordquery.py文件到addon目录里.zip
    90,860
       7 N4 h9 ^4 E, `: a
    我可以用mdx-server 本地浏览,说明词典文件未损坏5 W% |: n4 @+ P$ _$ s
    我也修改了LDOCE6.py 中词典文件地址
    " B! S& _$ \1 D3 @0 p3 d...& b* z: @2 j4 S$ \
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    6 w* h3 q1 W8 `0 O...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目' S1 [8 S/ A: y+ N3 ?; e
    # b1 Y' ^* R) w/ e1 g* u$ D3 ?
    我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    9 F* R3 q8 x3 v5 e6 {现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?$ _8 C1 E- k. J( j

    & ^0 k# j- y! x7 i8 m3 k8 d- Q' |7 nC:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    9 W6 j/ T4 D, f* C8 w" c1 h- U2 l! _
    6 \: Z) W$ p. [* h, u( b错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
    : Y' ?7 P& \# |' D( x5 Q( W; DPlatform: Windows 10- y" [% P9 E: a5 P' @0 o
    Flags: frz=True ao=True sv=1
    / U$ ~9 p0 x+ ]: V8 v! BAdd-ons, last update check: 2020-05-01 11:26:58
    / f: y, L' a7 O$ A8 [" b' Q9 P- C% l: P8 K
    unexpected indent (mdict_query.py, line 15)) b0 _7 ~. d* F$ o+ U
    Traceback (most recent call last):/ [& b4 D0 e+ S7 c1 q+ m/ |8 ?
      File "aqt\main.py", line 248, in onOpenProfile
      u( F- T! d5 `; d, F* j; |  File "aqt\main.py", line 370, in loadProfile
    5 m' A: s+ V5 d6 v3 i5 x; z3 ^7 e  File "aqt\gui_hooks.py", line 1281, in __call__
    2 f9 r" F$ L5 R. M7 k( i1 u  File "lib\site-packages\anki\hooks.py", line 611, in runHook& b, S3 d* G6 `' j" f
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here
    4 W" Q6 g8 j& a. N6 D! M5 p    from . import common as fastwq; [, W9 n; \9 }* @' {1 L
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    7 _) v. u9 r( O2 g9 f  Y    from .gui import show_about_dialog, show_options  # , check_updates8 z; b' g% h6 H9 M0 O
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    0 _; s7 h) h8 V1 ?) q    from .common import *
    8 Z! W* I6 ~5 l4 k& ~  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>" I* d8 B7 c+ j: \5 n  l% ^, _
        from ..service import service_manager, service_pool
      ^5 }1 b( l  [% T( t; g  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>
    1 p, }* ^  w: t    from .manager import ServiceManager
    : Y( Q; y$ {2 [  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>
    ) ]4 }1 G( [0 f) X# N    from .base import LocalService, MdxService, StardictService, WebService, service_wrap
    ' B. k2 q& B' r$ j$ y  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>0 c/ y" h- j" p7 U. R, ~
        from ..libs import MdxBuilder, StardictBuilder
    * k5 b$ ^8 p! {, `  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>% l3 a' T4 q: R4 `3 Q9 ~. y
        from .mdict import IndexBuilder as MdxBuilder. q# W' z3 e: i: l5 h
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>/ c* Y0 k7 ~3 z' @1 N9 z: c
        from .mdict_query import IndexBuilder
    0 C8 z% ], e  i# i+ t! C. {7 g  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15) {% q1 w) r! V  i
    ) A9 ?  u7 m, _( g/ c+ @# c: O

    . T+ ~0 q3 f5 Z
    * ?0 T. `; z/ t6 c4 j/ l- o. d( n; }5 f
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。9 H( u* V* t0 m% Y/ ]3 B8 t1 b

    4 k* d0 Z# ]0 S2 s( B4 Z" L; ^/ h( l; w3 _#这个命令用来搜索符合设置值的第一个标签:% z. r8 {+ S# Q9 ?) {4 A
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})
    7 a+ D& F! M: b#这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:2 y! H; ^: r/ Y( t) M
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})

    该用户从未签到

    发表于 2022-9-24 08:10:56 | 显示全部楼层
    谢谢大佬                                                               
  • TA的每日心情
    开心
    2021-4-3 09:18
  • 签到天数: 91 天

    [LV.6]常住居民II

    发表于 2020-4-5 10:10:20 | 显示全部楼层
    学到了,感谢分享

    该用户从未签到

    发表于 2020-4-5 11:10:22 | 显示全部楼层
    谢谢教程超级好

    该用户从未签到

    发表于 2020-4-5 11:48:07 | 显示全部楼层
    也可以把这些图片打包一下。。一直加载不出来。。
  • TA的每日心情

    2023-3-4 11:05
  • 签到天数: 113 天

    [LV.6]常住居民II

    发表于 2020-4-5 12:00:45 | 显示全部楼层
    这个世界已经背懂计算机编程的人占领了,我们只有做牛做马的份……

    该用户从未签到

     楼主| 发表于 2020-4-5 13:12:48 | 显示全部楼层
    youyoulu 发表于 2020-4-5 11:48! o6 s  P! q- g( e$ G, z
    也可以把这些图片打包一下。。一直加载不出来。。

    ) U  u$ V, P/ M# y4 S1 N图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    + E2 O& r! D5 M# V% o: D; t! a图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    * {( m, b+ e6 p( b% I' ^嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:120 u+ G* p) m) }( |! v5 v1 s( E6 M
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    0 D% l) C& \0 }图片可以放到sm.ms然后引用外链
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 15:34:08 | 显示全部楼层
    感谢分享经验,之前我都是先将词典拆开,然后使用FWQ。

    该用户从未签到

    发表于 2020-4-5 15:42:55 | 显示全部楼层
    感谢作者分享
  • TA的每日心情

    2020-5-6 21:36
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2020-4-5 22:38:02 | 显示全部楼层
    好东西,学习学习

    该用户从未签到

     楼主| 发表于 2020-4-6 11:00:15 | 显示全部楼层
    VimVim 发表于 2020-4-5 23:09% L) u5 g. N( u
    下面这个是否有误?好像一模一样。8 [- O/ w8 v: \" w5 x" `
    3 n# L" Q5 Y+ V! K
    #这个命令用来搜索符合设置值的第一个标签:

    5 p$ H% I0 x+ l5 B/ |" \对,一个是find_all,两者用法是一样的,只是返回值不一样。
  • TA的每日心情
    奋斗
    2023-12-14 15:58
  • 签到天数: 874 天

    [LV.10]以坛为家III

    发表于 2020-4-6 11:33:01 | 显示全部楼层
    感谢分享!解决了困扰我很久的问题
  • TA的每日心情
    开心
    2020-2-25 13:55
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2020-4-7 17:52:56 | 显示全部楼层
    学习一下,看看。谢谢。
  • TA的每日心情
    开心
    2023-2-22 11:08
  • 签到天数: 54 天

    [LV.5]常住居民I

    发表于 2020-4-8 08:38:56 | 显示全部楼层
    看看,不知道难不难。学习一下。
  • TA的每日心情
    擦汗
    2021-1-25 09:39
  • 签到天数: 255 天

    [LV.8]以坛为家I

    发表于 2020-4-12 08:31:56 | 显示全部楼层
    感谢楼主分享

    该用户从未签到

    发表于 2020-4-12 13:22:35 | 显示全部楼层
    非常感谢楼主,非常需要
  • TA的每日心情

    2020-4-15 16:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-4-13 00:24:07 | 显示全部楼层
    感谢楼主分享
  • TA的每日心情
    开心
    2018-12-12 23:00
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-4-14 23:46:43 | 显示全部楼层
    哇,这个真心厉害。正需要这个呢。
  • TA的每日心情
    擦汗
    2020-6-6 16:10
  • 签到天数: 164 天

    [LV.7]常住居民III

    发表于 2020-4-16 09:56:42 | 显示全部楼层

    ' y0 D; g2 h; _' R感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

    发表于 2020-4-16 18:51:15 | 显示全部楼层
    回复支持楼主
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-6-30 05:28 , Processed in 0.024997 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表