掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 55417|回复: 370

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑 + V7 p0 ^; H$ K7 v7 r; I9 D
3 d1 ]; |0 s# d+ X5 ~4 O" D! q+ v- Q) q
FastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。
' ~9 j* A. a) i/ M, h论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。
4 ^# R6 x) t8 \9 Kpdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复
. [7 c1 ~* J, {  r; |/ u0 j

7 t8 k0 I' n2 l7 r& {* T9 z文章中工具下载地址也放在这里:2 Z- E1 P2 W% J6 P9 p

$ i- z/ O& M3 L+ T6 Nmdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复

9 |2 K7 f* c/ ^& W9 f" C. P2 ^1 H可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。
* ?, h7 e9 E7 M1 D7 f7 s& I$ L, ~- p
! M1 p. J9 u3 {8 b( ^$ }" {) M我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复

/ q2 s6 _, V8 V0 @) q8 A5 u) G/ R2 I0 h+ ^3 g; }: H, f# J, `/ S$ n
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
" r7 u! l* c5 w8 H
+ k# \8 [# h+ J* k) \! L" y( D& q  k. \) N( K  X

# X' g2 ~9 I: ]8 H2 G$ q( M6 q
9 @. |# `$ d) n0 u" I  F# N& }9 F  @; N! d
上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。6 o7 D. G* \( I: s; [+ j

" Y6 w: p& ~2 S3 g6 a! _2 n
; v) G' c, o! Z. L$ L7 z1 X" N! B* l. O, `, C! \1 |
/ N$ \: @8 C5 [

" \, R3 C; _8 K) T- a7 m3 {
, W3 F5 j/ Q2 C+ o4 D' J3 h
! n* _2 J  J  J' `, T% z0 N! a
$ O# z9 }4 m6 z8 ^$ ~8 t# t

本帖子中包含更多资源

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

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 编辑
    ! E5 L6 A5 G: P2 T! o0 S6 m( y! [1 |  E. `' I
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了: f0 B9 s  X2 k/ {7 |. [$ u
    https://ankiweb.net/shared/info/1807206748
    8 E; y8 d" G- s  X6 s( a
    $ ^& p$ n3 E) |3 g9 f' x( m
    : n- @: [6 z, Q5 s4 b9 r$ w0 u0 Y, Z1 g% I& r8 [

      n: \6 W2 s; [+ K9 x% ^5 h* _+ m) a
    1 t2 ~; D( S% A  @; j8 @! E5 O
    我的anki版本是2.1.22& ]1 H7 z* W, g

    6 x) L6 F6 ]7 W8 W+ Y' Q"
    ; U* P& t- b, J7 o" p5 @0 {+ _9 i. p3 A  v% j( W( m
    3 t, k3 D8 F0 A6 G9 X! s5 B
    5 c& i* x2 `" T$ F
    我在网上下载了一个朗文6,其中有这样5个文件( Q- ^: h  a& X! l! q) x* P

    2 t! H' g$ q4 [
    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
       
    ' b% b0 R% {% _) X  s8 c我可以用mdx-server 本地浏览,说明词典文件未损坏
    & f0 b0 o8 V4 Z9 \8 i我也修改了LDOCE6.py 中词典文件地址" m+ y5 L& U1 B& G! `. h: m0 h5 y9 C9 o
    ...& \) r, L3 S' ~! s
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'- k, U$ g# O. w" Y5 G
    ...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    3 A3 c7 K  M: @2 b  Y( |7 v) |/ Z/ u+ ^, `! |
    我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    7 r2 s" @: h$ n& `" ]# ?0 K! l: s现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?
    7 C: y! b2 }4 C$ v: z" P$ F/ w+ V8 i# ^
    C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错% ^$ W- d. V: B. @
    $ `2 `& z  K9 T* k0 G3 [$ S& I+ Y
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
    , A0 W& p: u4 a' z, [! Y0 h: {Platform: Windows 10
    0 F  i/ w3 ?7 v/ G5 mFlags: frz=True ao=True sv=12 o8 @7 O2 z- X/ X1 {7 G
    Add-ons, last update check: 2020-05-01 11:26:58
    + G" [5 D- t, _" z
    $ a9 r- R7 e' R. Kunexpected indent (mdict_query.py, line 15)6 q$ M) W! D) Z2 v* V+ |; k8 d& s
    Traceback (most recent call last):
    9 [( {$ k, X8 l' I  V8 j0 W1 w  File "aqt\main.py", line 248, in onOpenProfile
    7 q& \: C. _: y  File "aqt\main.py", line 370, in loadProfile
    : k4 L- R0 k' d" k) z1 J! ]  File "aqt\gui_hooks.py", line 1281, in __call__
    ; _( a6 s- a- }. Q- a$ C, z+ p* r# D8 s  File "lib\site-packages\anki\hooks.py", line 611, in runHook4 j( a. s  D6 b7 T! t
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here4 c0 n6 A8 K& i) a. w0 |
        from . import common as fastwq$ E1 S7 Y( F1 b* @9 y
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    5 z: i% x2 n( I    from .gui import show_about_dialog, show_options  # , check_updates! n! o, T# g; {. K
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    - ?& u4 ]4 x: ^& V4 }$ }" t    from .common import *
    * b- G' l7 z- r$ L  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>) \$ V/ k  Y! I( t9 W/ S
        from ..service import service_manager, service_pool# x# p  R0 q' u
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>1 s) K* t) y" k* Y' q) k6 l
        from .manager import ServiceManager
    # B# h, N( S2 s) q  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>
    + i2 R/ w: m: G3 A& I) m* z' i    from .base import LocalService, MdxService, StardictService, WebService, service_wrap7 K. W: _5 a" u
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>
      T* S: z3 Q* u: }3 S    from ..libs import MdxBuilder, StardictBuilder! x: S) l) [# E  h8 L# N
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>7 e+ M$ G/ L1 u9 N8 |' H4 X( F
        from .mdict import IndexBuilder as MdxBuilder
    , k3 t% G" B/ m- H5 H7 b  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>
    4 M1 R' E3 j3 o. Z    from .mdict_query import IndexBuilder
    - Y/ z: b, B. l  d5 a  z  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15: F/ \+ N- g: P3 j4 n3 q

    + S. L* X# L: S5 Y
    5 X2 S' N8 [! k7 \1 y  h# L1 T$ D$ C; v2 a: L

    : U% i# v- I5 G/ w6 X* c8 L. M/ z
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    2 `$ a0 Z  O% U& {/ o: |9 H: m' |* G! q, R
    #这个命令用来搜索符合设置值的第一个标签:0 }8 }9 q: |* e) N) b( l
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})+ a# ~# D+ s7 V$ G' v: Q
    #这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:( l- `% V) {! S0 y: o. t% O
    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% \3 u( q+ Z# o; s) L6 v/ P
    也可以把这些图片打包一下。。一直加载不出来。。
    6 A6 E. t- [4 {- V3 b  r* f9 ~
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:127 r% |- e8 [# r$ K# f& V2 G
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    2 d* H- ?) K$ M: a
    嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    # X4 [4 K" H3 p, C: ?# {图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    $ L; B, o+ @2 e! b" O" R) p$ E图片可以放到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
    & u5 _& e' I" i7 _3 {% }下面这个是否有误?好像一模一样。- r% }! I, G* L, }( m

    ; T1 ]; p4 s7 g, W) w  R#这个命令用来搜索符合设置值的第一个标签:
    4 j8 L+ d. q3 p
    对,一个是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 | 显示全部楼层

    ; x/ v9 `5 L" L) k' N; s感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2026-8-14 06:36 , Processed in 0.025763 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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