掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 21278|回复: 335

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑 ' f! w" Q/ g3 s6 R' f

! U% }. u( U8 O+ m' q4 VFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。7 g$ H% c( Z& m# D* g3 y5 }, S7 j
论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。
5 j5 q9 n; i3 J3 m7 a2 mpdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复

% c+ Y9 W9 l' V' b- C
; V5 w& k0 @# F" \1 C) w  {文章中工具下载地址也放在这里:9 s4 a9 j1 v% \& S1 l

4 s- r5 H/ e8 k9 i" umdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复
6 f4 ^0 T& h3 ^5 Y. F0 _, o: Z
可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。
, C% C$ A$ F6 m2 g5 K9 ~$ a1 v) Y1 w! B4 K; V9 a# [
我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复
, l1 P" j: r: o  ]

1 d& y4 @1 w6 C/ ]. t( `顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。: L( E3 ^: ^. x/ P/ g
. j1 b6 M, ^" |  M7 B0 d: h( f

" u% `# B! J! g6 c8 X, {" _: X6 r: N3 N

. D' {( v1 p9 F, N; S5 E# k* B* A/ x1 K& N) J
上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。9 X% k2 v% \& [) e6 s( {
: X6 L1 \% r3 I1 A

) Z& A9 `" e' N  R& P, E: Z5 N2 F" [! O1 J

$ B6 |+ B, E+ b- \* X; l, x, o( K* l. l. p& N

4 h# Y7 B: ]" y; Z
! t& Y4 u& V7 t9 \1 k# R. I+ i8 t; A! |+ u( y0 G

本帖子中包含更多资源

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

x

评分

6

查看全部评分

本帖被以下淘专辑推荐:

  • · anki相关|主题: 20, 订阅: 6
  • · 1|主题: 2, 订阅: 0
  • TA的每日心情
    开心
    2022-3-3 18:43
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2020-5-5 00:17:56 | 显示全部楼层
    本帖最后由 bdqq 于 2020-5-5 00:38 编辑
    4 n8 X) g; _9 Y& b+ F* c, ^! P* W, `* C; ^( j1 P
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了
    ; a+ ^# R& z) N% N2 Fhttps://ankiweb.net/shared/info/1807206748" k, r# i8 [/ E  p0 b

    ( g$ `8 M( c  _+ h! l- g  _+ H4 Q+ O. d& g3 q

    / b/ O: q0 [6 |+ t' v6 D6 v6 N* O9 Q- C
    6 `8 B3 O: V. d2 l  \

    " h& r7 e) v/ W/ t  H7 d; N我的anki版本是2.1.22
    # b  S6 Q: h/ z0 t% b
    + R3 _2 v4 I- v" U"
    / _* q/ P) O" \/ A6 W7 x9 j$ O! p: @! J0 X/ a8 P
    ' g+ M. o# |3 V  u5 k1 D7 `

    / L/ R" k: x8 s我在网上下载了一个朗文6,其中有这样5个文件
    ) N! e5 G& h3 `( S0 Q; Z0 e/ U6 g
    $ ], y3 }- P- P2 }/ J4 D
    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
       " e( e- j$ y3 X8 X3 I* `7 X
    我可以用mdx-server 本地浏览,说明词典文件未损坏
    % ~7 W$ P2 v5 _4 c. D7 R+ q我也修改了LDOCE6.py 中词典文件地址
    ) [9 e5 G: n' Z, j...
    , {7 Z  V; _2 G) gDICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'3 E- q$ D. y- a9 U
    ...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    " h1 i( v3 \9 z3 [, R
    . r. t3 Z  T+ y) G8 a- U我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    4 R% D! H$ y5 b6 y& T% f0 c+ a3 G现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?
    / ^" [. Q' X$ f% P
    . f8 g0 [! Q7 wC:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    4 R6 u- L3 H, |" p1 _; @; i, e5 \9 P
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
    , E9 {/ k  t: T" W% GPlatform: Windows 10% Y4 A6 R' Z! A1 E. S6 h. I
    Flags: frz=True ao=True sv=1  W2 D6 [5 D( u" e
    Add-ons, last update check: 2020-05-01 11:26:584 q1 L: l$ Z4 M
    ' C) J4 M" q- L# Q3 A' e
    unexpected indent (mdict_query.py, line 15): T$ B) I- R3 n8 }' p, B* @
    Traceback (most recent call last):; }" @. B- a9 c# K- R0 f' _
      File "aqt\main.py", line 248, in onOpenProfile
    7 @. I7 s. g3 s  File "aqt\main.py", line 370, in loadProfile; g  J; z# _* J* t4 t
      File "aqt\gui_hooks.py", line 1281, in __call__
    ( E* ^/ [/ K6 b; Q2 F6 _  File "lib\site-packages\anki\hooks.py", line 611, in runHook
    2 Q  h- o; p4 L5 S6 h7 r  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here
    " F$ g8 q7 A8 h# U    from . import common as fastwq. O5 }) D) J6 Q+ U1 l1 S* G- f7 v
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    : p& g6 x) R2 A1 X& c# O4 F) N    from .gui import show_about_dialog, show_options  # , check_updates
    & e  I4 b( s! W* K: p  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    3 ~% u: O, |; ^$ Y1 n) b; s! l    from .common import *
    3 S' i1 f/ G8 K% y  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>  f: C/ n( ~7 K3 Y+ k+ v
        from ..service import service_manager, service_pool
    . a6 c9 u, D' G3 x& z  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>0 A* y9 O/ y/ W* q; d6 c9 ~
        from .manager import ServiceManager
    7 d4 v; Y2 Z. E  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>
    : f- Y0 O7 y+ ?( i4 `    from .base import LocalService, MdxService, StardictService, WebService, service_wrap! W( Y6 Y* t9 H; M0 y7 c
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>
    ! _2 d+ C0 ~$ n* I* q$ z- A    from ..libs import MdxBuilder, StardictBuilder" H3 y6 y  k' L+ d% B) q# d" u/ t
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>/ e8 |( B  l4 `: d+ H. Z7 F& f
        from .mdict import IndexBuilder as MdxBuilder
    % q' `( O* p* c3 A" ^# ^  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>
    3 d! V7 Z7 r, l    from .mdict_query import IndexBuilder
    ; ]. S; {' k) j* A2 Q( n; k% s) }  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15
    1 d% B7 @2 W3 S) |9 g0 `- s7 |0 f5 ]' ?& T! v, i

    - g& z( b% P( K: D5 \$ t
    8 j+ j% A6 L& E& w' ?- R; ?5 ?/ m3 q! \
      b" [( d3 d. [" K5 L0 l4 X" t
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    4 N/ \" ?& @1 n( g, L9 i
    5 `. d9 e- _- |0 r6 H#这个命令用来搜索符合设置值的第一个标签:
    4 e& K9 J( `- \+ {8 T& C: p3 E& a( s' ^result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})
    0 }! y+ q7 S+ f6 F7 U* w* k, p8 ?#这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:) Q* o* l# R: D  i, ?: m0 n5 f
    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. S4 X" t6 C" ?: \$ x3 K9 F) d+ B
    也可以把这些图片打包一下。。一直加载不出来。。

    0 A2 c9 H* J0 K图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:128 Q. }% x3 y9 L2 B
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    $ ~4 [# U  r: u" M) @* k嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12* u( i6 g# a! d6 e  y
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    7 l& V# ], Y4 `2 T7 X图片可以放到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
    9 y' F0 \  B' k/ m* K下面这个是否有误?好像一模一样。8 x* Z. n+ q8 m" ]7 W8 I- p9 k* r

    7 y0 `1 \7 d- u2 ?4 }/ p% E#这个命令用来搜索符合设置值的第一个标签:

    7 d9 H8 J  |9 z* W7 W# R对,一个是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 | 显示全部楼层
    ! j1 ]8 u* h1 d' A- g# V
    感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2024-4-17 06:45 , Processed in 0.052528 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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