掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 21462|回复: 336

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

  [复制链接]

该用户从未签到

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

* s  w# V' i  U/ g; U
2 s, H7 Q  K' J  R2 ]+ f0 l文章中工具下载地址也放在这里:, G: `% g0 _* S0 @
, {; Q; Q# y- D! T/ Y) s1 B  d
mdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复
; T' e6 o5 a7 ~# |4 f" W+ H
可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。* S; x' M" P+ j6 e; d+ V6 I
7 C3 r# i  t/ K
我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复

: w& l5 Y7 X! m/ H; T5 i! S
' g4 h& m9 f3 C9 V, U顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
% f8 x3 ^7 U6 b5 ]# ~8 i
8 V) Y& `  ]* I5 }" g9 t
/ e5 V* q5 x8 P0 L5 j( u
% U! k: c5 l& p9 a/ |5 u4 N* e- \" _* n& t. n6 E! y0 C
  g: j' G( X  ~
上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。
0 K: k) a, O$ h% o; }, a7 `+ b2 C& O' f+ I. ~) g

3 |) k7 j: U  E6 A  W# S, V
2 c3 @6 u+ i1 C1 f
4 W% [- y, ]2 }, g1 ^& K/ w, k
/ O" P7 ~7 U# g4 A7 V3 o& r: k( g% G6 s6 W& Y. P; @

& k6 V5 E! P4 d" X: d' E" B7 m4 O0 z2 C7 S& S

本帖子中包含更多资源

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

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 编辑 0 |5 y! ?7 c9 ~3 R9 i* U
    : V6 c0 A( i0 ]; t8 V8 w$ Z- m
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了
    1 b( {( U, h8 e8 z4 C/ Dhttps://ankiweb.net/shared/info/1807206748
    / I- l/ ~% G7 z7 Y- `$ F# D
    $ g4 C6 v6 Y8 F1 ]: n3 b8 ]
    9 u( ~$ u" K+ I4 a2 h8 r4 }' b, f

    " m7 D% l% f7 A9 \& C  [! a$ E# Z+ ]+ p6 p3 O& s5 f
    6 i% y; R+ M2 H3 [7 k1 t
    我的anki版本是2.1.22
    7 ~3 S. J+ G! e" }
    ) r; k5 u* b. {1 ^" Y0 s" . E9 Q' I) C; @$ t2 F

    2 s- X% N( U& I
      |( Q+ B& h% S2 J
    4 L1 F# P+ s4 A! ^. F7 O& P4 p& F我在网上下载了一个朗文6,其中有这样5个文件
    # `5 {6 x+ O4 w  s
    7 r$ I$ V/ B. }$ ]9 E$ [+ B
    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 V9 _" Y! l' X2 j4 E4 a) S, z  M8 d
    我可以用mdx-server 本地浏览,说明词典文件未损坏) ^! Y3 y# P  p/ y: @
    我也修改了LDOCE6.py 中词典文件地址7 B0 i8 G; v. A1 F# P  O
    ...1 }9 J# J. ^# J2 ^0 i+ `/ M
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    9 U6 a) Z9 s9 [; E: m( E# M...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    3 t( ~# @$ y9 C" Y4 t/ R
    9 J# R" V: N- E0 ~  D我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    9 L+ A: I+ T3 |/ A% ?现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?
    2 g# F  u0 ~9 O6 w* D3 o! Q3 o7 r% H$ v; c; f" t
    C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错$ q* i! l' P+ o' [! f3 }. y
    & _' i8 l0 O8 v/ O, r
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.18 g6 C* b+ R3 \, v
    Platform: Windows 105 ~: H" h8 R; z" M
    Flags: frz=True ao=True sv=1
    9 ~& c8 m! d; q& A8 R3 XAdd-ons, last update check: 2020-05-01 11:26:58
    ! b" r# x$ V, u- Y! M- O, x9 g1 Q: [4 i  y' k
    unexpected indent (mdict_query.py, line 15)
    8 D1 I) ?4 f  G3 K7 p. ?, F  g# ATraceback (most recent call last):( b5 ]8 ^& u1 \( y# P% A
      File "aqt\main.py", line 248, in onOpenProfile
    ; B" @! A- o3 d# D+ _/ _  File "aqt\main.py", line 370, in loadProfile/ D( [0 k2 }1 A7 ~' G5 o
      File "aqt\gui_hooks.py", line 1281, in __call__
    9 L1 n% X3 ^4 ]0 n/ o  L% ^% U  File "lib\site-packages\anki\hooks.py", line 611, in runHook
    / S* ]* B8 p! G2 s' G  ~( @8 e3 i  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here
    ) |" z6 ?$ }5 V/ b' ~( L    from . import common as fastwq
    % s) Q0 `$ N7 i7 }" u$ C; d; n  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    7 W1 t) P' M0 ?: ?    from .gui import show_about_dialog, show_options  # , check_updates
    , X. ?1 E1 O6 g% D; ]  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    % N  Z" X! Z5 r; `& \! ^# |    from .common import *
    3 s0 q  ~1 G- t" ?* o' l  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>
    7 Z4 N; U5 ~6 r; F2 N    from ..service import service_manager, service_pool$ }. b6 t+ h/ @/ }2 L: o
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>2 C- n  z7 E3 L- @! O# |* s+ F
        from .manager import ServiceManager8 N% h) f. F. _& r! T
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>1 _. E( F0 ^5 Q' J3 T) ^
        from .base import LocalService, MdxService, StardictService, WebService, service_wrap3 Z# S; m4 ^) _" ~8 C
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>0 ^/ P; P. t. l' k2 l( y$ u
        from ..libs import MdxBuilder, StardictBuilder
    " `) z2 f' }" M3 O% q  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>
    5 U8 q. q8 N. [( u0 \4 ?    from .mdict import IndexBuilder as MdxBuilder2 }) V" E5 Y; o( m) r7 u
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>: e/ w7 v+ V, l7 z: j, Z! h( Z
        from .mdict_query import IndexBuilder4 _2 y$ }: f) X: o$ j/ t& n8 x( R
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 154 `. s3 ]/ ?& l& R

    3 M! B2 b: p2 s9 ?. O1 @* @# B! r; f% _, _2 t" w

    , {) _( [- j7 F. V3 i& i# `$ `" k
    / v3 x  @' k/ K8 i. `. W" u# c8 d5 V
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。2 v$ n/ a! Y0 ^  y

    1 m+ _: n8 A0 @! L#这个命令用来搜索符合设置值的第一个标签:% Y$ J( f8 W6 t& a$ z( l4 J0 a
    result=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})  @9 c+ s% d4 ?. m/ A8 [, P
    #这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:8 x. D4 m9 b& H' y
    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' r( @4 m+ S, q, l+ q2 U, E8 w
    也可以把这些图片打包一下。。一直加载不出来。。

    7 p3 h9 f: n, q3 g0 g3 g4 H图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12- n; Z& R3 D3 ]7 {
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    3 c  V! c) k. V# K9 {嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12& ?3 |( N7 W! ]& D3 _3 F
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    " f7 g; }4 e- r) m3 V0 e) Q图片可以放到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:099 D% F$ _9 G( X) M4 _4 ?8 |2 E
    下面这个是否有误?好像一模一样。
    # J- [+ g7 @$ o: C. |
    5 H" @+ O* k7 \8 w+ [$ p. y#这个命令用来搜索符合设置值的第一个标签:
    8 J6 ~6 j/ |8 m
    对,一个是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 | 显示全部楼层
      A: r. x3 y# ~. O, Z5 y" f% E6 B
    感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2024-4-28 00:48 , Processed in 0.130124 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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