掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 28821|回复: 360

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

  [复制链接]

该用户从未签到

发表于 2020-4-5 01:29:47 | 显示全部楼层 |阅读模式
本帖最后由 那一种想念 于 2020-4-6 11:07 编辑
# T6 ~+ ^. {4 G$ O
5 M% C7 l3 W4 W, qFastWordQuery(以下简称fwq)是Anki2.1以后的版本中非常不错的工具,可以极大简化批量建卡的过程,但现在网上能找到的被fwq支持的mdx词典只有朗文,而且是全英的朗文,用起来不方便,所以就自己写了一个扩展插件。在此把教程写出来,以便一起学习,以下均在win10、anki2.1.21上正常使用。
; t' G* J3 n; t9 |! a' Y# o1 u0 s, N# k论坛的编辑器写起来好麻烦,我做成了pdf,截了图在这里可以看,也可以下载pdf看。& i9 d( ~+ l: x
pdf下载地址:https://pan.baidu.com/s/1Eft29mx76MOYDsJG-cJ2Fg
游客,如果您要查看本帖隐藏内容请回复

3 }. v! T  W, |( f, O( l  e# e/ S. c; j( K1 x8 F+ @$ B6 u
文章中工具下载地址也放在这里:
/ _# j" J) J, z* d8 h/ t
( \- ]# e- U* U( nmdx_server:https://pan.baidu.com/s/1h0QmBL8e3cxWUXOpDx6x0A
游客,如果您要查看本帖隐藏内容请回复
8 ~8 E. @, ^6 a! A" ~
可以用cmd在该目录下运行命令mdx_server.py -fn [mdx文件地址] -mp 8000来运行mdx服务器,然后浏览器输入localhost:8000/test,如果显示词典内容说明运行成功。
& }, H( g. K; X) _$ u
8 c% h9 F, q6 z' p' s( c/ P我修改过的fwq的工具,里面有两个示例可以参考:https://pan.baidu.com/s/1PDO2BQBsmgWj7Q7Jbj4LCQ
游客,如果您要查看本帖隐藏内容请回复

" Q, V' q* k  _, X" {% n0 W; g  e7 C  L' \3 M- Y( N9 g: y
顺便问一下最开始上传的图片不能显示,但我找不到地方删除怎么办。。。' U, l& v0 ^  d! I  j) N/ o4 x, [6 f
( N" j3 Y+ y% S5 m: T
  c" ~  }, i) v- ~; E

: y# J6 G+ d/ j% z1 }+ i) w: p
6 ?7 m4 O8 H$ g8 S: u& a- f, G8 f+ n) j+ ]" P
上图的两个find,一个是find,一个是find_all,写法是一样的,返回值不同,具体看例子里面就可以看到区别。
! Y1 T( Y$ l' c8 X$ G+ @% h' o" ^
) t1 B4 f- k, G/ d& Z1 |$ K
( n4 B% P7 @2 s  K+ f% T
7 t6 M8 `5 p% j# L
! J9 x9 c4 K  J' \9 O- _0 h; m3 l" `9 B1 A. q. L  Y" f
, Q+ y3 }) U. c; {6 p# F% I$ u( r' H

. ?& y& r1 v* p; D6 k0 T4 k
, ^, H7 _) z( R6 i$ H; k  }6 j

本帖子中包含更多资源

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

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 编辑 / d; j6 H7 P( B. L( j# q
    / ]! u- |; s4 E1 [9 z: Z2 O
    请求fast wq 可以支持的 英文 朗文6 地址,我用windows10, anki ,安装了
    : h9 a0 e) ~# I, jhttps://ankiweb.net/shared/info/1807206748
    6 B5 J& @& M( w! D6 r" c2 \. _: Y  l' i) Z  x' n2 _

    ( y% n  d7 `/ v' z- t; h) A. P3 r& X: M
    $ G7 Z+ J* S9 ?4 y! m3 ?6 J7 Z

    & Z) M7 G% t6 N! ^2 i6 i: q  I( I6 f, m, ]' R
    我的anki版本是2.1.22% X# l: f0 Q2 E5 }, Y, a' _2 |1 E# B
    : h. f9 H8 ?+ O8 F% i
    "
    0 k7 W9 q4 x: j8 n* f. B9 p/ h: A; D- I

    : t" Y' M, P4 y, t( [& _- I+ u$ f9 Y2 V: A. Y- E1 s4 \
    我在网上下载了一个朗文6,其中有这样5个文件6 D5 ?0 |% p. h
    * y& K) {% n; S5 y5 ?% ]  n
    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
       
    5 x8 f1 r; q" v, `2 i0 R* }1 ?我可以用mdx-server 本地浏览,说明词典文件未损坏
    ' C$ u% I1 G% Z我也修改了LDOCE6.py 中词典文件地址
    & G) q1 i! M+ x2 f, @; [...4 H4 \) {) h9 I& p$ p3 q( @
    DICT_PATH = u'' # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
    + A/ K* ~9 o+ p7 }3 E! }& o" `7 V/ A...但在Faswq- options 界面中下拉列表框中,没有 mdx-ldoce6 条目
    ' E' @' k/ W  ?( K% Y7 D
    & `; h! ^7 r4 R+ @( p我也试着把那个压缩包打开,放置文件与目录在anki中手动添加addon 但启动出错% m! }4 ^# H( j2 Q
    现在我fastwq中朗文6无分项,只 有default 一项。请问我该如何做?是不是我的词典文件不对?8 x/ h, {8 F, [
    ( f7 B5 B$ s3 b# P3 V+ ]  {; |+ `
    C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py我也试过删除上面文件12行的 #号.结果是出错
    5 b! ~6 G. _- d8 ]1 Q$ e4 h. U3 C3 H2 i& P7 ^
    错误
    有一个错误发生了.请在按住shift键的同时启动Anki,这样可以临时的忽略掉你已经安装的插件。
    如果仅仅是因为插件引起的问题,请选择工具>插件菜单项来将出错的的插件设置成失效,然后重启Anki,重复以上的步骤直到你发现了具体是哪个插件引起的问题。
    当你已经发现是因为插件引起的问题,请在我们的支持网站上 add-ons section 上报告问题。
    调试信息
    Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1* Y! v$ P( Q1 i4 ?- H
    Platform: Windows 10
    6 _' z) {* [+ ^0 T9 a) w" @# LFlags: frz=True ao=True sv=1
    8 I# y: i0 ?% K% ^: xAdd-ons, last update check: 2020-05-01 11:26:584 @; ^0 a9 x8 o% [3 v

    " p/ l2 s2 N6 p0 ?unexpected indent (mdict_query.py, line 15)( ]- @7 v5 C6 x5 f$ Y  h
    Traceback (most recent call last):3 @  _! V- J' d! N* A! {
      File "aqt\main.py", line 248, in onOpenProfile
    * p: x# u0 Y- ?; ~  File "aqt\main.py", line 370, in loadProfile* o* E9 r: Z; R( l
      File "aqt\gui_hooks.py", line 1281, in __call__* X, y1 L, T1 M& t. e/ y2 T
      File "lib\site-packages\anki\hooks.py", line 611, in runHook3 e9 q5 H" e& j& ^$ {
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\__init__.py", line 37, in start_here8 d# c5 f/ |1 H2 f0 @2 Y: x
        from . import common as fastwq8 i; m3 J: U! Q  V" P
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\common.py", line 29, in <module>8 ?) b' X3 X+ d  f: H6 u+ C) a
        from .gui import show_about_dialog, show_options  # , check_updates
    + U9 \. a% t* ?. @  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\__init__.py", line 3, in <module>7 H* X( e5 R' ]3 r. |8 ^
        from .common import *
    " P- J7 a, A! D  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\gui\common.py", line 28, in <module>
    - o% k) x2 d- |2 I2 q1 y! Z    from ..service import service_manager, service_pool
    - ~  C: [7 e  j" G  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\__init__.py", line 20, in <module>2 A7 `6 g* C# R! P$ ^2 [. L. N0 Z
        from .manager import ServiceManager
    8 p3 ]5 p1 i5 i1 j# q5 I7 i  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\manager.py", line 24, in <module>
    # ?4 q/ F0 N% F/ o- O2 I( v$ |    from .base import LocalService, MdxService, StardictService, WebService, service_wrap; G5 h2 Z) |+ g5 |/ t
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\service\base.py", line 44, in <module>: [$ Q  S! Z. ~$ _4 d
        from ..libs import MdxBuilder, StardictBuilder4 m( ?$ S' }8 K
      File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\__init__.py", line 1, in <module>
    , K; h. N& i& j  V9 m0 Q    from .mdict import IndexBuilder as MdxBuilder
    9 Z: u( r/ C5 L: j; d  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\__init__.py", line 1, in <module>
    , K4 c- P9 Z8 k; S, a( P0 e    from .mdict_query import IndexBuilder
    ( r& P6 N# M( j- ]6 K) I  File "C:\Users\admin\AppData\Roaming\Anki2\addons21\1807206748\libs\mdict\mdict_query.py", line 15
    + q' s7 U7 {( R* C) K$ G
    . F) j$ O; X) T9 k9 ?0 [
    ' |/ E2 \7 |: i1 o( f6 C( q$ K: _% y. X2 {/ R
    6 T, u) N6 i: o- P
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-4-5 23:09:45 | 显示全部楼层
    下面这个是否有误?好像一模一样。) x- E9 Z; K* p- D

    9 v+ [0 k, Y8 [( K0 l/ @4 `8 i#这个命令用来搜索符合设置值的第一个标签:
      T& n7 b: @+ @" W" ^# Sresult=prase_obj.find("标签名",id="id值",class_="标签类名",attrs={"特殊属性名":"特殊属性值"})
    ) C' M/ \: F% \; v- }' Q! D$ y9 G. M#这个命令用来搜索符合设置值的所有标签,设置与上一致,只有返回值不同:
    0 H4 s3 k9 {; N' [* V7 |- J: jresult=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
    2 x9 g" D% y7 [# n+ H% s8 r2 U: ^也可以把这些图片打包一下。。一直加载不出来。。
    ' h0 h0 E3 [( ?  K: R, j# O
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法

    该用户从未签到

    发表于 2020-4-5 13:13:44 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12% ~2 l: s. M! j8 T2 o" X; Y
    图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...

    * Z4 g. n5 K3 @  |$ L9 K嗯。。就是把图片打包放到百度网盘看看~
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2020-4-5 13:39:12 | 显示全部楼层
    那一种想念 发表于 2020-4-5 13:12
    . `' j: m* f* R. X' V图片我是真没办法,折腾图片就将近40分钟,一会这个不显示,一会那个不显示,我想想办法 ...
    4 k9 M6 L9 a+ Z* |
    图片可以放到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
    2 @) T3 Q& D" L+ V9 `下面这个是否有误?好像一模一样。
    4 d3 \1 O- i! H2 F0 ^9 b
    4 Q( h- d7 g9 f#这个命令用来搜索符合设置值的第一个标签:

    + K7 h$ @* j  K( G对,一个是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 | 显示全部楼层
    ( ^' {. q- j, ~. k. |3 I
    感谢楼主分享,,,期待成品
  • TA的每日心情
    开心
    2024-1-16 10:51
  • 签到天数: 125 天

    [LV.7]常住居民III

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

    本版积分规则

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

    GMT+8, 2025-5-2 10:54 , Processed in 0.025890 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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