掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 55422|回复: 370

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑
3 w) h$ G6 C4 e( y: U- u/ _
) Z3 _+ ]0 A0 HFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。
! q& G" k; ~$ }/ T3 i% n论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。# P6 [8 j' V9 k, |( r
pdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复
9 d; p/ D4 m2 e/ T: @3 _5 a
- I% h1 d' y! p* Y
文章中工具下载地址也放在这里:
! Q; _& `# h1 j+ x( D6 U1 A
% G4 v$ B# s( w& @  f6 W( |, t4 [mdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复

" f* C+ A+ }# l2 X; ?2 G" z. a可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。) y" m, p+ p7 m
1 ^& \5 s% p. E  R$ f7 h: u
我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复
& L  J! S' V6 x
& j$ y" ~5 F5 U* L9 J! A
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
% F: n* Y$ ]+ j" g: E3 o- M% Z) l9 k) G  m. n. k

' ?# `+ v' D9 Z" h6 h8 p/ l0 s# i( ?8 e. E) u/ N$ B: E
. w9 w- v; c- t2 Z* m" Q( X

/ k% P. `  K* q8 C7 R上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。
, ^+ p" _) I2 N, u! b/ s# B& Y4 z3 V# A

0 T) `9 `8 ^5 t5 u1 x0 l% l5 Y* B5 `8 X0 N

  H  H; p* w+ \- O1 D
! o7 g1 O0 f$ e: _3 V' a9 N5 Y) D# J* L2 q
1 r/ |! ^5 H# |' w0 v. Y( t

5 L) R. w6 W! Z  G- c- g

本帖子中包含更多资源

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

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 编辑
    7 d& a8 f* B) [- l. }1 y1 }3 I* Z% d& Y6 p% O9 ?
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了' B- i, O9 I7 E% Z: [6 }& X
    https://ankiweb.net/shared/info/1807206748( |) l: {3 M  }, w# }. V; k
    ! u& J& z4 M$ H' K$ ?5 M0 @

    1 T% H; v& f/ w/ y) t: o! f! D( ^- P' h; [7 }

    6 X$ L2 ~: k  N. p1 A+ [3 m& l6 R4 W4 e2 O+ D  I3 U
    1 p. m+ e" s2 Q+ o5 @* ~8 A4 q
    我的anki版本是2.1.22) `- c: P2 I+ K
    ( H$ a+ U6 Q# ]! w9 a2 g
    " 5 m$ Z% f5 b3 L- |8 @% o2 L
    * Q5 W5 I7 m+ g/ s# l! [

    " n" |6 K6 j! L$ F) X/ N" |: O$ E! Q0 O' x2 m9 A, ]6 t# R
    我在网上下载了一个朗文6,其中有这样5个文件0 Y/ `# h/ m  G5 r. X, R! E+ `

    ' r0 k; j, F! }! U/ d) l1 ?
    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
       
    0 U3 I: N  v; @# B! O我可以用mdx-server 本地浏览,说明词典文件未损坏
    7 H6 s  I% R# Y我也修改了LDOCE6.py 中词典文件地址
    + p+ m4 p* a5 W9 l- A! e4 x# ?...1 t) l/ I+ `2 U0 W7 v) k% M  G
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    6 g- W' R- E" e/ _; P...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目9 x- J; l) P; i

    : y0 A# w. d& E/ d& G我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    3 C% c. g; g3 Q) C5 t2 {2 ~, Y现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?7 r& p4 _: E' a7 w. ^5 ~
    & i) D" [( ?! ^- i% t
    C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    9 O: F( {+ N9 Q7 h  d' Z, {) \4 L9 G, k
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1& a7 f) s; C  ^0 p, T
    Platform: Windows 10
    3 R4 ~, u. V; `+ d$ {0 J+ _Flags: frz=True ao=True sv=1. U* _/ B+ y! o- }, R: m
    Add-ons, last update check: 2020-05-01 11:26:58. r' V! m. a- d# ^# [: h
    4 p; q9 B. ~+ ]+ H
    unexpected indent (mdict_query.py, line 15); Q% F4 o  l' b& y: A# @
    Traceback (most recent call last):3 _  X/ n* |" W2 J3 _& X& i# C
      File "aqt\main.py", line 248, in onOpenProfile, @  L- Z. E" K3 V& n
      File "aqt\main.py", line 370, in loadProfile; q1 {0 p6 y( V- ~7 s7 M
      File "aqt\gui_hooks.py", line 1281, in __call__
    6 o% s0 \  y/ T7 B% [& N) |  File "lib\site-packages\anki\hooks.py", line 611, in runHook
    ' v2 d; ?7 r+ O5 ?" g$ ]9 q: |9 N  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here
    ; n& @7 O6 H# \8 `! V    from . import common as fastwq6 I: K$ T; O5 `# o
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    3 P+ U* W7 |/ a" W/ h' b! d    from .gui import show_about_dialog, show_options  # , check_updates1 z- w/ h, y" M
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    7 U& |8 J' R  m2 d* i    from .common import *7 a' A- b- g4 l, I9 v) E
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>
    ( n1 W% @4 s2 V    from ..service import service_manager, service_pool( A0 r- ~- c% E1 J6 L
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>
    6 U# f* \* i8 u, H4 ]1 ?- R$ h    from .manager import ServiceManager! f+ a6 I) c$ ^- H6 Q/ s$ _& G* H. S
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>) C( C/ t& `0 `/ U# X( n
        from .base import LocalService, MdxService, StardictService, WebService, service_wrap# B; _4 [3 m/ g' F
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>
    2 F9 a) J8 h6 D, w    from ..libs import MdxBuilder, StardictBuilder
    / a6 {2 V- r; R- n4 z0 w  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>! N) k. p5 C# Q
        from .mdict import IndexBuilder as MdxBuilder' ~" E+ U* X( _+ z( J
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>! n  n7 t. L4 Q; I1 l
        from .mdict_query import IndexBuilder- S1 j8 Q0 ?4 s. W
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15  W' n  N/ O6 [: a
    7 E1 M& _3 ]4 j$ H# L
    ; s8 Y3 s5 z8 P. B6 q
    , ^' C6 s& d4 t) H  i

    % ?& G# ]) T5 Q  O8 \& I" I
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    " w( D1 N  n" `, m6 B2 x' Q$ L
    + i. d: M+ \! r% n2 c#这个命令用来搜索符合设置值的第一个标签:2 T3 S3 M+ d/ s
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})! k8 S9 i5 |3 K; W8 F
    #这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:, ^" S, Y* a' g3 O; V
    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
    ' P$ f: f" h' ]+ s- c  M+ [也可以把这些图片打包一下。。一直加载不出来。。

    / F# }2 A6 k' Z: y& y6 v9 Z& Q图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12+ V/ J. H4 \1 Q4 R5 [; X
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    ) c  {+ j3 G4 l0 F: K& i' ]' r
    嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    1 [+ P  T7 N' e4 |图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    3 f# o- ]; b8 ]% U0 R9 t图片可以放到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# ?9 K6 F8 `  g. C
    下面这个是否有误?好像一模一样。
    - A! Y; D" m; e' V
    ; a1 {, S  a/ ]( D% j#这个命令用来搜索符合设置值的第一个标签:

    6 x6 d- I% e0 k对,一个是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 | 显示全部楼层

    0 ?: `5 v) k) a6 W/ [感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2026-8-14 07:07 , Processed in 0.025137 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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