掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 22226|回复: 341

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

  [复制链接]

该用户从未签到

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

* i6 \4 Y  l+ a& w; l4 ?5 U& k# k* ^! H1 u- L% b. F" M
文章中工具下载地址也放在这里:
& H3 _* v9 o2 o) b# w2 j" u$ d
& D: U) |) x9 \1 A* [( lmdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复

% d  P% W6 _" a3 F  I$ j可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。) P6 Q; W* k* k$ |. m: f

1 ]8 @& B4 ~6 S, m我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复

2 t! C) S1 L# Q7 A$ P$ h1 J8 M& h/ U6 D8 _8 p! P
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。
0 _2 d4 F5 |; N1 D. X, n/ P8 q) b- N+ ^% @" u

$ W6 G& ?; }0 q/ J- v4 k( I2 T, A. n5 X: m5 ]. C
  k' I% `* M5 E0 X* l- L+ `2 [

5 o# F5 m. r! Y5 ?" E: F4 w" i上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。
2 J( I0 P! e1 n3 `& X/ O1 m
. o" s" K: p: ]* A! T( Q' C3 l
, i% e; @, z- _: Z1 D2 f1 v* R$ J# s/ d" L

! W( D  \9 m7 E; \8 L* C. i( a: P) ]# `6 V+ B7 Q6 z
% a) Y2 y" B# U- f1 Q3 h! h

& H4 f. ~. K* q( |
8 [2 D- ^6 Z  M* N# O

本帖子中包含更多资源

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

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 编辑
    ! t6 E- a% L+ R, c+ w
    3 W6 S" l' v6 ]# J$ n4 j请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了7 b6 G/ t: K6 j. S7 G0 r
    https://ankiweb.net/shared/info/1807206748: g/ O4 i/ w" {; j9 G# N  ^

    " J2 y3 g% b2 P8 T' F
    7 x( N. k" K' q$ ^
    2 h7 G, M$ _8 y- D5 V, ^- M* ^) x, M! W; [1 s, @8 A

    6 m% J4 C! x: Q6 j/ X8 m! t; p0 }/ W5 Y7 Q3 E6 ^
    我的anki版本是2.1.22
    ' {- Q3 R4 J7 R3 X- i* ^% }2 m* {2 L, _: {
    "
    3 f! w& m  P/ h7 [8 N" b, X+ Q; F
    ( `& Y- M2 d% j8 r3 o; D7 D$ t. `  f$ D) o

    ) ?' `1 U# s3 O  `: L$ M. L我在网上下载了一个朗文6,其中有这样5个文件; |  r- Y' {5 c# y  V) `0 u
    - \5 Y) W% ~1 C7 m; \
    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) J' r$ J5 L, y2 b我可以用mdx-server 本地浏览,说明词典文件未损坏
    9 a. D) m$ ?7 a' C! C) H我也修改了LDOCE6.py 中词典文件地址5 e( B! ?( O% g! Q! M. K( B: w# Y
    ...
    , v. V8 u! _% U# n2 kDICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    7 h7 d# Y" ?( A) w, H( S; T...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目. R% U- Y1 |. ~
    + i' @9 v; T& k. W
    我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错
    " b( |2 }' c  R9 i现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?* M0 `5 f) n0 e; O8 L' M. c, X

    . Y% t1 e7 M+ u# z) w  X& rC:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    4 S) }6 w5 {8 ?% Z' [7 b
    * j' X0 ]+ u' i) z错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1+ y0 M2 B3 J! C, ?
    Platform: Windows 10
    5 n$ n; {/ y6 y" t  ~, n* |Flags: frz=True ao=True sv=1
    * e0 w! L; i) v; @1 m0 V3 Z1 HAdd-ons, last update check: 2020-05-01 11:26:58
    : s7 q7 U( u! K1 ]1 r8 o  W* R1 T/ M0 d3 d
    unexpected indent (mdict_query.py, line 15)  N+ I9 A- _& G3 s* S' E
    Traceback (most recent call last):. E: z1 _& e& G1 @7 ^$ ]
      File "aqt\main.py", line 248, in onOpenProfile/ A: R, Q% ^3 G) X/ m/ z
      File "aqt\main.py", line 370, in loadProfile0 O+ O( T0 j% t. y+ b6 o7 K
      File "aqt\gui_hooks.py", line 1281, in __call__( L  V6 r) C' s; x
      File "lib\site-packages\anki\hooks.py", line 611, in runHook9 d/ B3 }# N% x! m* q
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here
    ' b5 q" A7 y6 }    from . import common as fastwq
    . p" u0 K5 I$ w6 H5 ?/ E  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>
    6 E8 T$ R3 Z. f! t, b# I    from .gui import show_about_dialog, show_options  # , check_updates$ u  S& s% T9 p# e* L& C
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>
    ; @4 M1 F4 u* H/ |$ d/ K) J3 I% V    from .common import *+ v3 s; D+ w# i$ h* [
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>7 a/ ~* W1 H3 |* o/ v
        from ..service import service_manager, service_pool% K9 o5 m- Z# S! N
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>0 U9 N& S+ G- i& C+ y! e
        from .manager import ServiceManager5 R$ \- v! o! h' v9 u
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>9 X6 e; I% V7 Z) x/ ?' n
        from .base import LocalService, MdxService, StardictService, WebService, service_wrap1 p/ j5 T; L# A& }
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>; J( c: v& d8 u- L; }0 s0 o
        from ..libs import MdxBuilder, StardictBuilder; Z& j, n' {+ T2 h
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>1 L9 o- g4 f9 i* F7 [
        from .mdict import IndexBuilder as MdxBuilder6 D: p! d9 E$ m; K: _- j
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>% k: J, }2 e9 |1 A# \9 Y& x
        from .mdict_query import IndexBuilder
    * |; p* k! M' p4 o9 @; e+ K  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 154 l5 L# d+ N1 K

    : Z; z0 p8 ]1 m; @/ W: O5 q
    2 c6 w% Z( L# v. ?- z: ^( q0 @2 h# c4 \6 C) f- B6 c
    8 j. {" G* r+ D; z
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。
    % M( @* I5 S; L
    0 M+ j: Y! S4 `#这个命令用来搜索符合设置值的第一个标签:
    + D! K+ k, p+ V6 b' H6 gresult=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})
    * ^% l, k6 p8 h7 S7 }. L#这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:
    3 x  M) K6 y5 Q0 Sresult=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/ s4 Y1 \. F0 D% F0 N
    也可以把这些图片打包一下。。一直加载不出来。。
    ' r$ }6 p/ p& A5 b
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    4 z' U, T9 |: d( q图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    ' F* X. r7 ^* T( A9 V$ g: Y嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    + k' s6 w' _: A) b$ k: ?# ]图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    ' ~9 `; I& [1 I. X) o
    图片可以放到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/ @8 F$ W8 y* m  Q
    下面这个是否有误?好像一模一样。( r6 t0 X7 G4 Q# d/ z
      j; Y' J0 O) K1 n8 A* j
    #这个命令用来搜索符合设置值的第一个标签:
    " D! `/ T: g5 ~' V) m* H- \
    对,一个是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 | 显示全部楼层
      l2 S5 S7 `" K0 V. {
    感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2024-6-13 20:37 , Processed in 0.110471 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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