掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 47956|回复: 369

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑   X) q: P5 ~7 C

" w) m: ^) p# r$ n7 XFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。' c# y6 i0 G0 F! o( C0 f
论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。: Z4 ^1 p+ s% E  G, I3 T
pdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复
5 }5 w6 c+ _& U0 X7 F1 {

0 j5 Z# j+ n9 g8 e文章中工具下载地址也放在这里:+ N# L9 C! E: e: b

# l( A9 L* w6 h! N1 Pmdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复
3 k5 C. o; q% l2 h6 [: R0 L8 K
可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。
1 C9 t- _1 [6 ?8 |! @
) l# S4 q9 j2 q" S我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复
( v2 G# I) b' {& c5 r! e7 F6 y
  n' @  I7 H) D! ]! t, P
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
7 q2 s# m; w+ R- N$ w( G% ?
: _- ~1 e; b; J$ Z+ q. J& j) M0 o) ]; D) D. @- |4 m0 S* h
' F( z# P: _0 [* @

4 \# u+ Q: u/ h. x! l' w: l2 s8 K% `+ l, k
上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。% N; U. b9 \7 ?0 M7 Q4 A$ ?

& m" i( b8 X$ b
5 A, D: o7 s. z, V. H# O, o  I" v/ N8 z$ l& c

* S: \3 w% i/ j+ W
% }, E) Z" c- `8 v
5 M* C# I6 @% n7 a: _. J5 F6 T) C; w4 G) V$ g+ o* S, [
( M) W+ r4 `2 j0 F/ b

本帖子中包含更多资源

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

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 编辑
    : u' c1 y  E: s2 C& d% h: _( S  ]: L1 w( l3 s# {1 C
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了0 D$ Z2 y+ |/ {6 D, J: n/ G
    https://ankiweb.net/shared/info/1807206748
    0 `0 a8 W4 E  C6 s# n9 N5 i& g
    6 }. g# C7 B" u: X- i/ o/ v& k4 \) _- ?7 P' ?7 K/ S

    , b9 j" `0 |8 C4 T0 j' a4 }- L$ V$ W. p! l  f" g: w

    7 Z* N/ E" L% I$ F6 B; `
    1 E  K  y3 e1 E8 u1 R6 v. \, D我的anki版本是2.1.22
    / v5 E3 {. W; ^, Z# T, J0 d9 E, X* o  V
    " / F8 Z6 g7 Q, x3 s' F

    ' \9 G9 I5 X# w% m8 \2 _
    2 Y/ ^6 O# o9 ]" c  W& W, l5 }; U" S/ a# h: h
    我在网上下载了一个朗文6,其中有这样5个文件) I, T- q/ O- M& }
    - {& ^; Q# S$ K6 i# ?3 @: b
    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
       2 W! ?8 y3 c% J; f( h! i* e
    我可以用mdx-server 本地浏览,说明词典文件未损坏: \! X9 J9 U& a2 Q6 M1 f) p
    我也修改了LDOCE6.py 中词典文件地址
    ( F& `  H0 n3 w! t4 B7 j...
    ! L' z6 k& \/ j7 Y$ X4 R, X5 `1 H3 V3 eDICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'4 S7 T( ]: U: g6 S5 q2 {
    ...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    ! ]! [' T  D4 S6 M( `% q  y  q) U- O' E6 Q' K' @
    我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    7 m7 f; c. d4 X) U6 K  P/ }现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?" S, J9 T+ d/ C% w  _

    " W6 B1 S- {! B0 iC:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    ) r6 E/ f5 b. E& O. ?4 I
    % m9 s: j, H" z: D! ~6 f1 g/ Z) b错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1+ y2 g+ K9 ]; n% f2 R
    Platform: Windows 10
    $ G* Z4 o) @0 n; U% D; YFlags: frz=True ao=True sv=1
    8 {* g" `! g( Z. |Add-ons, last update check: 2020-05-01 11:26:58' y: @# P+ x  }

    6 d8 d9 t3 }- }3 b2 ^unexpected indent (mdict_query.py, line 15)9 w9 h, b8 _! Y
    Traceback (most recent call last):6 o, A0 g5 ^4 H2 ?) M, @- C
      File "aqt\main.py", line 248, in onOpenProfile$ B& m: h; U0 ?1 c5 r( m
      File "aqt\main.py", line 370, in loadProfile
    , Z& D; u6 _/ @% m- ~) Y* M2 U4 ?  File "aqt\gui_hooks.py", line 1281, in __call__
    5 Z' E' A  ^6 j, x7 z) A' b  File "lib\site-packages\anki\hooks.py", line 611, in runHook
    " F  J9 |8 z* A% Q7 g& }8 m  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here" X: @0 m/ k; P: G. c& G
        from . import common as fastwq
    ) e" V* g5 c. }! M  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>: l0 V7 m3 r' [+ [
        from .gui import show_about_dialog, show_options  # , check_updates, n6 ^, p9 e$ G
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    & v5 U5 P7 C$ P' j1 N( Q    from .common import *% i' J" J) J5 I, X
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>
    ( K+ M: k1 g5 V* d0 p+ q* A    from ..service import service_manager, service_pool% Q. ?5 N- F, \$ k" r/ T
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>
    ; Y8 Q$ O8 D2 r    from .manager import ServiceManager( N, J9 t6 D' Y* f& Y6 S
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>
    2 |2 a1 F& \! f) P! r# U0 ~* d% }6 O    from .base import LocalService, MdxService, StardictService, WebService, service_wrap1 _# J" C( Q! l# a
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>) S, M, I" Z2 U) |
        from ..libs import MdxBuilder, StardictBuilder4 R% ~& B7 B3 }4 A5 g
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>
    % c1 b6 @6 ^5 x8 `! R  h: R/ k    from .mdict import IndexBuilder as MdxBuilder
    4 ^% ^# M5 N! Z$ A  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>
    $ o& H7 x, A5 N: y    from .mdict_query import IndexBuilder1 {0 a9 T/ _- B: j) v
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15
    6 ^9 y" W6 c/ ~  x* N9 R) C% m3 h& Z7 Z8 K
    " N! N  H- _5 c  _& H

    * _0 M, ?* C6 e" \! Q, G6 U0 o" z+ U0 B5 s
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    6 o3 T5 h9 q3 V+ e, G+ t2 V7 F" w( k- N, g! _' f$ Y
    #这个命令用来搜索符合设置值的第一个标签:
    & Y* m! O4 o* O) Q2 Lresult=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})% ]! n* L1 C7 n' K# W0 A
    #这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:2 m1 Y9 U$ r5 ]4 [: Y
    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:483 {  t' g- ]5 ]( L1 q
    也可以把这些图片打包一下。。一直加载不出来。。

    9 [4 D: U: O& U! {% C1 n图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12" A7 ^4 }$ v, q( ~5 e9 h  T9 h# z
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    . V/ y. t$ m% g- x" `, b
    嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12/ c% q& Y* S% i: g" V5 E
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    ; O/ Z4 i8 B. f* o! G0 F( h图片可以放到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
    - e6 B: u( M0 D9 L! G+ A下面这个是否有误?好像一模一样。& ^9 \) F0 ~* [) k  b' M

    7 w; ?6 s+ ?# K% c7 i1 x3 u) N#这个命令用来搜索符合设置值的第一个标签:

    2 n! ^) v& F1 n, y& g对,一个是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 | 显示全部楼层

    : W6 `; j3 F. S6 ]5 p感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2026-6-30 06:24 , Processed in 0.029456 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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