finalion / WordQuery

word fast-querying addon for anki
https://ankiweb.net/shared/info/775418273
GNU General Public License v3.0
291 stars 61 forks source link

mdict词典查询成功后,各field的窗口不能编辑 #10

Closed TheKiteRunning closed 7 years ago

TheKiteRunning commented 7 years ago

你好,如题,详情:

「编辑」窗口是指:

image

所采用的词典为:

image

非常感谢!

TheKiteRunning commented 7 years ago

更有趣了,电脑上虽然可以preview,但是复习的时候反面不显示(mdict的释义字段在反面)。手机上可以显示出来,但有很短暂的缓冲过程。见下图中的蓝色矩形上面的省略号,请问大致是什么问题造成的呢,感谢!

screenshot_2017-03-03-09-15-26-538_com ichi2 anki

finalion commented 7 years ago

这个应该是字典的问题。Merriam Webster's Collegiate Dictionary and Thesaurus 2015 这个字典,添加释义后,不能显示,但是可以review。后来检查应该是它的html有问题。 这三个字典你可以单独看看到底是哪个造成的。

TheKiteRunning commented 7 years ago

感谢回复,的确应该一个一个地检查,之前担心更改option出新的bug,一直不敢动。试了一下手头的词典,windows上不能正常显示的有:

效果比较好的有:

finalion commented 7 years ago

是的,字典太多了,想统一太难。所以你可以按预留的几个接口扩展字典。

不要怕嘛,有问题才好解决:)

WeiChienHsing commented 7 years ago

想问那个@@@link=.这个要怎么解决啊.我用的一个日文字典查询出来都是这个.

finalion commented 7 years ago

@WeiChienHsing 没注意这个。是不是字典的问题,能把你的字典发出来看下?

WeiChienHsing commented 7 years ago

@finalion 好像是字典redirect的问题.@@@LINK那个第一张图Dictionary字段也出现了. 我的想法是对查询结果进行判断出现@@@LINK=XXX的时候,用后面的XXX再进行查询.没接触过PY,不知道怎么改...

finalion commented 7 years ago

@WeiChienHsing 我手头没有这种字典,我按你说的改一下,你帮忙测试看看

finalion commented 7 years ago

@WeiChienHsing 改好了,dev分支。 https://github.com/finalion/WordQuery/archive/dev.zip

WeiChienHsing commented 7 years ago

@finalion 感谢.在你分支上稍微改了改.我的问题解决了.

finalion commented 7 years ago

@WeiChienHsing 怎么改的发上来啊,我这也更新一下

WeiChienHsing commented 7 years ago
    @export(u"完整解释", 0)
    def fld_whole(self):
        if not self.builder:
            self.index()
        result = self.builder.mdx_lookup(self.word)
        if result:
            if result[0].find("@@@LINK") > -1 :
                self.word = result[0][8:-2]
                return self.fld_whole()
            else :
                ss = self.adapt_to_anki(result[0])
                # open('d:\\wmu.html', 'wb').write(ss)
                return QueryResult(result=ss[0], js=ss[1])
        return self.default_result

我的改法,但是我没验证过其他的字典。不知道会不会有问题。 @finalion

finalion commented 7 years ago

@WeiChienHsing 递归前那里为什么取-2索引?如果这里没什么问题的话,我就合并了

WeiChienHsing commented 7 years ago

@finalion 这个问题有点吊诡。我也不大清楚,我刚开始是把@@@LINK=XX中的@@@LINK=给替换掉了。用showInfo来看确实是只剩下XX这两个字符。但是查询不到结果。后来用了一下len函数。发现结果是5个字符,所以就从后面往前两个试了一下。就可以正常查询到了,我猜是换行符/r/n之类的。

finalion commented 7 years ago

@WeiChienHsing 没有其他有意义字符就行了,换行符空格啥的strip一下就行了。result[0][8:].strip()

GarrisonBaird commented 7 years ago

Stop using magic number, PLEASE!!! result[0][len("@@@LINK="):].strip()

Python 2.7.9 (default, Jun 29 2016, 13:08:31) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> len("@@@LINK=")
14
>>> "@@@LINK=XX\r\n"[8:].strip()
'\xa0LINK=XX'
>>> "@@@LINK=XX\r\n"[len("@@@LINK="):].strip()
'XX'
>>> 
TheKiteRunning commented 7 years ago

百词斩取音频还挺好用的,只是不知道为甚么,出现几个bug:

image

image

image

image

推测可能的原因是这些单词都不是原型,并没有查到,然后错误的下载了某些部分。然后check media的时候,这些文件也始终显示在card里面没法删掉,后来只好先去掉下载发音这个选项。

不知道有没有解决办法,感谢!

finalion commented 7 years ago

@TheKiteRunning 已更新。