掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 25945|回复: 355

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑
& N: F8 V+ m) K# V1 l( v; o
: r1 J: Z- I# x) J$ sFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。
" A8 g9 z; n3 S7 W8 ^5 G8 V论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。
1 G5 D2 Z3 B5 M$ X. x, [pdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复
& c  P' m: e7 @1 h) B$ q0 s% U
6 C; L2 J! B& ]* q& B2 a9 ]. E
文章中工具下载地址也放在这里:' S7 {7 ]6 w! g" X- V

; @+ e; c7 ^8 g- wmdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复

6 S2 d5 a6 h$ c; m! Y/ H# e; r$ T可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。) d3 t6 U# a+ _6 C9 u) F; k
. C* t3 G$ }# N
我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复
: G/ g6 u( c3 E' }5 p0 j
. w- {7 P1 M: g
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
% m/ e: J* t2 G& R% R) C
* s# }2 V$ |, Z$ T- L7 V
& C5 P+ X- M. \% `* P7 N6 a' O* J! d1 ~  u
3 c- I  c1 `: ?( D, ]

) U3 S) t+ g! j" C- a6 c上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。- a# S- M* U) _6 `: m

2 M8 w$ k1 }. C& ]  C/ Z+ d
5 D0 K$ m2 J/ }: J7 z! {  v8 \, h! U+ b' w$ E6 E& F9 S

) x- B3 z8 h# b5 G  y
, n; R( P$ ?7 Z. g: l8 o* |" |6 j5 O8 j: N" L
& D3 q. h3 Z' L8 J

3 x, a" `: E4 J) O7 i0 M# i

本帖子中包含更多资源

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

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 编辑
      L0 Q$ R" T8 X& R& P# G
    . ]5 u+ _6 j3 i2 {* r请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了
    0 V+ ?, }; j7 q( H+ L4 M- z: ohttps://ankiweb.net/shared/info/18072067483 v0 g8 y- A6 }+ [1 g+ g

    " H" }& `3 b) d8 y( [5 F' ^: L+ P+ S' A% H0 y! U
    + U% A- i, `' }1 h  H3 A
    5 O$ b- R. x8 v3 x, `! A# P

    / T! r2 F3 }9 @. Z" O0 z' Q3 N4 T  ?: `" X! N9 M- y& V
    我的anki版本是2.1.22
    " ?2 H* s' x$ z% U. R
    7 y; D1 F( P# s# q# |' n"
    1 j2 J: H. g+ ?& Q7 c7 j" ?6 r  b( z0 h' _  Z; ?

    2 F8 D# r: C& i. H1 r3 J& s! N  C5 W) J  R% F
    我在网上下载了一个朗文6,其中有这样5个文件4 g* I0 \2 {( w) R
    & j2 e( i. I& e8 G; L) g
    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
       
    $ t- v. |/ W6 Q7 h' w' `& E我可以用mdx-server 本地浏览,说明词典文件未损坏; n- @  J. _3 Y
    我也修改了LDOCE6.py 中词典文件地址+ K5 t: l9 c  Z; N( |+ S( Y( [$ Q
    ...( g- Z* T6 ^2 I1 o) p4 G
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'9 o" a8 g& W" ~# r% a
    ...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    & {+ V( y! x/ E& s8 `  x; |3 ~6 y  @9 X8 p
    我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错/ `" y' w# E' Z) [% t/ {5 n# z1 h
    现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?3 ^# M+ ~& u7 h1 J0 E, _, b" X

    4 H6 J$ y5 k& R2 ~C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错6 {# W. ^: L0 u4 _% _! e8 K
    9 x/ M* v% [7 J
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
    " z6 @& p8 Q& f. ]6 a9 O$ b2 \- ]/ dPlatform: Windows 10
    4 U7 w% x3 i" h) J" r; I8 W5 LFlags: frz=True ao=True sv=1
    ) A: p; {5 q) O6 F( ?Add-ons, last update check: 2020-05-01 11:26:580 j1 G5 l9 B3 b; N9 d" D
    , Z/ s  E! j. J, {4 B0 Q
    unexpected indent (mdict_query.py, line 15)
    2 A8 H* \  e! N+ a* @  m5 yTraceback (most recent call last):# g; f% w& O4 E0 n+ J. V" r
      File "aqt\main.py", line 248, in onOpenProfile
    - V5 `' j0 c, l% W/ d  File "aqt\main.py", line 370, in loadProfile
    ; i6 H6 I% ^+ Y/ M# K% ~  File "aqt\gui_hooks.py", line 1281, in __call__
    * ]$ K' W+ \5 u; Y4 g. D* X  File "lib\site-packages\anki\hooks.py", line 611, in runHook
    + }' h& j. k' ^4 F, d+ u  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here( g- s" y. Q0 q& b1 c
        from . import common as fastwq  X4 y6 i2 F9 a4 O
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>! L: s# u1 Y; s, z6 B
        from .gui import show_about_dialog, show_options  # , check_updates% J& t% m% h" V& k* \8 @5 E" A
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    $ E. r/ p) H. T+ s/ [7 A    from .common import *9 U! U8 t. ]) j
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>) j- Z0 z- e6 _% b, z7 |  s4 Y  F
        from ..service import service_manager, service_pool! {) E1 ^* ~/ G5 K' N8 S- {
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>
    0 s# k2 K$ n) T( z    from .manager import ServiceManager
    , @- t, h- l8 C5 `; N& f  A  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>! l2 L- B0 E3 H
        from .base import LocalService, MdxService, StardictService, WebService, service_wrap' F4 }( ~; J5 y* i! C) }
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>
    2 H8 b1 g$ k+ }0 g; d) i    from ..libs import MdxBuilder, StardictBuilder
    - t' h6 Y' G- B' g9 G  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>; r5 z) f# A( ^6 m1 r2 V
        from .mdict import IndexBuilder as MdxBuilder; g. |, @) W4 X1 ]3 x; D
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>; }6 y: G: T( _% {0 t, s# ^
        from .mdict_query import IndexBuilder
    # \* P: E3 S# L7 @7 t1 A1 x  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15
    ( ^; A; p: x& j; f6 D# |+ V% `4 |( b3 y* ~
    ; j4 C2 q# k1 R( d3 v
    * R% a6 R/ g! Z* j6 Z- D% y: Y* ?
    4 e' x' a& C8 g$ a& \
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    ) Z3 q+ k6 d' w; ]. V4 |! I
    6 o# Q9 l  Q, o" E. |5 ^$ }3 h) f#这个命令用来搜索符合设置值的第一个标签:  a# \+ O; ]4 }% t3 q, J
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})% v- S- K! a5 g6 c2 m9 J* i
    #这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:: E# n/ n" v; q5 S9 c' M  G0 s& 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
    7 G. `$ S& u8 Z! T, w$ _也可以把这些图片打包一下。。一直加载不出来。。

    8 e/ e; _7 I6 ^4 ]- r2 ]图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12; k/ P, F2 R6 S) ^. S, F
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    ) Q9 B! l- {/ b5 N: y9 k4 y嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12+ P7 u" b- m4 j2 F6 Y* J2 i
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    ) K5 M' f/ R% }- |4 d9 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& j* ^" B( y1 }/ P/ f$ W  v
    下面这个是否有误?好像一模一样。$ ?* O" h+ v% R6 u7 o0 h
    ' k3 A: g& x/ f$ L, {
    #这个命令用来搜索符合设置值的第一个标签:
    * h3 `  x$ N2 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 | 显示全部楼层
    - P1 I3 ?% ]# |" b; |+ S2 J4 o
    感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2024-12-13 12:50 , Processed in 0.096495 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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