掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 37177|回复: 362

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑 " l- G% ^1 h: G2 c" R: ~! B
# k, w; @2 f8 z: A& x: R, }
FastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。, g9 b- n- f, h4 p( Q/ o
论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。
3 P( D+ I5 c; t- u, ^+ E8 c* {' Npdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复

/ V% |8 i0 j3 S8 m) G' p' L6 `
! d6 f% a, w7 S文章中工具下载地址也放在这里:
* @/ [0 f' a' V1 l  |6 M! a% i# G" N& C
mdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复
3 I' L$ N( l9 c9 g3 `$ |
可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。
* s0 f  X/ O" U& O% Y5 l: y
+ e$ q9 q+ Q8 f" C我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复
6 A% K: o2 G/ |* E
! e9 T5 ?2 f8 {3 c$ l
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。. x$ u* Y8 e% \7 ~
' i6 z' D: o4 M3 I" E' a) p  V

/ _+ G. Y, [7 R/ J& F: L
" {5 i9 m1 n( _9 H/ a! H; {. U: s+ \: s% b8 J7 A

& F8 e& }. h; ~8 T6 g上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。) i$ T) u% |. Y. ]2 v

, {; I3 t! ]' Z1 Q( l. I1 c( s" s2 Z) v0 M1 `
2 _- ~9 A) o% X0 m" p/ \2 [) m
7 t- |+ c( S' J3 X
: {1 R. K7 g4 @! J0 Q

+ k0 F+ z! u/ K# K& h6 G
! F" q* c% R. F- Q8 Z! }1 V
& m- F/ K# K% f7 H6 z5 Y- G: F

本帖子中包含更多资源

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

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 编辑   s# F2 ^. t5 T# e

    - F* l3 L' C( d2 N; {" L0 K+ P请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了7 |- B! k- C) Z
    https://ankiweb.net/shared/info/18072067481 Z. Y$ y9 S* T# t
    - ^8 V: k. i9 n8 O1 ^' D

    1 K8 O4 I& ^0 W  @: n4 q8 q) N/ [3 {: r  w; ]1 q$ ~' }

    : f! G9 r7 z/ ^- O  N% y1 e( D9 s% f! g; ?
    ) L* I( V" k2 w  l  v& d" e
    我的anki版本是2.1.22
    ' U5 `9 L# N) ?0 g3 C' S. K- r) f$ u( T/ n2 X$ y8 l  `, z, ]8 C
    "
    8 V- c' E( r5 z8 F7 ~6 N2 F3 y( x9 Q

    7 w. ~" ^  c! z2 V) y# {
    2 f9 v. p. |) Z5 T+ V我在网上下载了一个朗文6,其中有这样5个文件
    # T" F" L2 x" e8 J+ J
    7 v- k0 v% e9 O; I6 h$ o
    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
       " p# ^* o/ \- L7 ^( p
    我可以用mdx-server 本地浏览,说明词典文件未损坏7 Y7 C1 M3 R# k' V8 j% R: ^
    我也修改了LDOCE6.py 中词典文件地址/ H/ m2 O1 c% x) s4 Q8 Z
    ...% ]5 X* f% e" x' W" G
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    ) {; n# S: \0 }' k. x; ?5 ]...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    8 s) F! H6 d5 ^! i
    3 a3 K, i/ U+ c5 C& A2 S& l' e7 J我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错5 j* s- x% z) g/ Y9 h; K/ ~6 f
    现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?* t0 C" ^+ H$ q4 I9 ^* N& i) V4 I

    " v) J3 f2 B. \6 p- Y& zC:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    # y2 D9 i, N7 S/ I) t% `
    & P0 s3 _+ h0 x错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
    ; n- }4 ]! Y4 U4 _* JPlatform: Windows 107 s( P3 r' X$ [+ Y0 M
    Flags: frz=True ao=True sv=1- r8 j' F0 j1 Q+ G# P  y5 E
    Add-ons, last update check: 2020-05-01 11:26:584 O7 s9 v5 {# r7 M% r2 j

    & ?% M! u) d9 J  Bunexpected indent (mdict_query.py, line 15)
    3 e) q' G; P  c* jTraceback (most recent call last):; g5 A4 F! O0 s( }/ t( k7 w
      File "aqt\main.py", line 248, in onOpenProfile
    / F! Q8 `* N8 B: p5 k/ e( \! o1 G  File "aqt\main.py", line 370, in loadProfile. n. W' W, l2 o  T* b0 p
      File "aqt\gui_hooks.py", line 1281, in __call__4 d, l& J: `" R; `( d/ L. e
      File "lib\site-packages\anki\hooks.py", line 611, in runHook( K/ `  ?& H7 M' y/ O1 p" \
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here& Q: D- ?# m# y, s9 ^7 x  F
        from . import common as fastwq
    0 A4 x2 H% H+ Y  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>2 @) |( p9 A' s, D/ N) {
        from .gui import show_about_dialog, show_options  # , check_updates5 S  |& m+ |, ~; \# ], H
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>0 u5 G+ m+ |! }" V, L0 ~2 J; a
        from .common import *- C/ b' t; Q$ S+ q. R
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>6 u2 @9 {' G  y! E+ a
        from ..service import service_manager, service_pool
    ! ?- [. H: E+ K* z  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>
    3 U/ k) l3 n' U9 n: K    from .manager import ServiceManager$ g/ p( F  m& H4 c# t7 P) m
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>2 M% k. K3 R. h' G# {! o
        from .base import LocalService, MdxService, StardictService, WebService, service_wrap- j0 Z1 _5 e' p3 ?) o! f
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>
    * K* K* K* b; q    from ..libs import MdxBuilder, StardictBuilder4 Z. M0 |2 u# \# H( S
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>
    . ?1 G6 y3 r$ W! M! G4 P    from .mdict import IndexBuilder as MdxBuilder
    5 b+ R8 s7 N. ~& K" R6 N7 G  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>
    1 M/ W( e# G/ V# Y. X! C5 V0 |. u    from .mdict_query import IndexBuilder6 p/ P; l8 x: w! O
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15
    % O+ p& t- O; R' x
    4 l: Z1 F( w% ]+ }1 K4 o, ]$ c; n  d& f& U3 I) |

    5 w: V- r% v7 C' C8 G( s
    3 O9 Y2 J/ C6 D( J& t. m- H, J# P2 o
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    9 @- e5 @. _3 c+ L/ l  E. M  }* F7 k# T; |2 u
    #这个命令用来搜索符合设置值的第一个标签:
    - o1 _- r7 |1 a) Vresult=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})
    5 Q+ _" c" P6 k# z; b#这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:, ~" x3 T- r7 G" K9 d6 I" ]
    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
    * M. S# N- D1 }3 n' t+ }5 U# X) q9 s也可以把这些图片打包一下。。一直加载不出来。。
    8 N% F5 N0 }; Y+ B: U
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    ) y" x- x/ L8 A6 u$ h图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    1 v9 |6 F( t( G# {8 T
    嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    . w( {6 T6 c$ w8 n, O8 e2 V! S图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    6 Y. Q" ?1 w" s; O, i3 \% M
    图片可以放到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
    $ S( ~0 `. v$ N8 J+ E下面这个是否有误?好像一模一样。
    9 p8 d) r  f8 D. [# K' N8 I' v/ l$ v: V
    #这个命令用来搜索符合设置值的第一个标签:

    ) w/ e  q* w7 x对,一个是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 B- e1 Z2 V; V感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2025-6-16 14:08 , Processed in 0.025683 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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