jdlorimer/chinese-support-redux

Add-on crashing upon autofill using modified Chinese (Advanced) type

Closed this issue · 1 comments

Describe the bug
Crashing upon autofill

To Reproduce
Using a modified "Chinese (advanced)" note type [I added some fields (as Bopomofo, Ruby, Traditional) and added some new ones (Image, Cloze)]

Specs (please complete the following information):
Error
An error occurred. Please start Anki while holding down the shift key, which will temporarily disable the add-ons you have installed.
If the issue only occurs when add-ons are enabled, please use the Tools > Add-ons menu item to disable some add-ons and restart Anki, repeating until you discover the add-on that is causing the problem.
When you've discovered the add-on that is causing the problem, please report the issue on the add-on support site.
Debug info:
Anki 2.1.22 (0ecc189a) Python 3.8.0 Qt 5.14.1 PyQt 5.14.1
Platform: Windows 10
Flags: frz=True ao=True sv=1
Add-ons, last update check: 2020-08-17 07:34:33

--- Logging error ---
Traceback (most recent call last):
File "logging_init_.py", line 1084, in emit
File "C:\python38\lib\encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 96-97: character maps to
Call stack:
File "runanki", line 4, in
File "aqt_init_.py", line 349, in run
File "aqt_init_.py", line 488, in run
File "aqt\webview.py", line 31, in cmd
File "aqt\webview.py", line 97, in onCmd
File "aqt\webview.py", line 500, in onBridgeCmd
File "aqt\editor.py", line 363, in onBridgeCmd
File "aqt\gui_hooks.py", line 1006, in call
File "lib\site-packages\anki\hooks.py", line 622, in runFilter
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\edit.py", line 74, in onFocusLost
if update_fields(note, field, allFields):
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 270, in update_fields
fill_sound(hanzi, copy)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 169, in fill_sound
s = sound(hanzi, config['speech'])
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\sound.py", line 51, in sound
return '[sound:%s]' % AudioDownloader(hanzi, source).download()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 50, in download
self.func()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 56, in get_google
tts.save(self.path)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\lib\gtts\tts.py", line 243, in save
self.write_to_fp(f)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\lib\gtts\tts.py", line 200, in write_to_fp
log.debug("payload-%i: %s", idx, payload)
File "logging_init
.py", line 1422, in debug
File "logging_init
.py", line 1577, in log
File "logging_init
.py", line 1587, in handle
File "logging_init
.py", line 1649, in callHandlers
File "logging_init_.py", line 950, in handle
File "logging_init_.py", line 1183, in emit
File "logging_init_.py", line 1089, in emit
Message: 'payload-%i: %s'
Arguments: (0, {'ie': 'UTF-8', 'q': '解释', 'tl': 'zh-cn', 'ttsspeed': 1, 'total': 1, 'idx': 0, 'client': 'tw-ob', 'textlen': 2, 'tk': '468362.122906'})
--- Logging error ---
Traceback (most recent call last):
File "logging_init_.py", line 1084, in emit
File "C:\python38\lib\encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 174-175: character maps to
Call stack:
File "runanki", line 4, in
File "aqt_init_.py", line 349, in run
File "aqt_init_.py", line 488, in run
File "aqt\webview.py", line 31, in cmd
File "aqt\webview.py", line 97, in onCmd
File "aqt\webview.py", line 500, in onBridgeCmd
File "aqt\editor.py", line 363, in onBridgeCmd
File "aqt\gui_hooks.py", line 1006, in call
File "lib\site-packages\anki\hooks.py", line 622, in runFilter
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\edit.py", line 74, in onFocusLost
if update_fields(note, field, allFields):
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 270, in update_fields
fill_sound(hanzi, copy)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 169, in fill_sound
s = sound(hanzi, config['speech'])
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\sound.py", line 51, in sound
return '[sound:%s]' % AudioDownloader(hanzi, source).download()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 50, in download
self.func()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 56, in get_google
tts.save(self.path)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\lib\gtts\tts.py", line 243, in save
self.write_to_fp(f)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\lib\gtts\tts.py", line 226, in write_to_fp
log.debug("part-%i written to %s", idx, fp)
File "logging_init
.py", line 1422, in debug
File "logging_init
.py", line 1577, in log
File "logging_init
.py", line 1587, in handle
File "logging_init
.py", line 1649, in callHandlers
File "logging_init_.py", line 950, in handle
File "logging_init_.py", line 1183, in emit
File "logging_init_.py", line 1089, in emit
Message: 'part-%i written to %s'
Arguments: (0, <io.BufferedWriter name='C:\Users\ezioa\AppData\Roaming\Anki2\Tony\collection.media\解释_google_zh-cn.mp3'>)
--- Logging error ---
Traceback (most recent call last):
File "logging_init
.py", line 1084, in emit
File "C:\python38\lib\encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 124-125: character maps to
Call stack:
File "runanki", line 4, in
File "aqt_init_.py", line 349, in run
File "aqt_init_.py", line 488, in run
File "aqt\webview.py", line 31, in cmd
File "aqt\webview.py", line 97, in onCmd
File "aqt\webview.py", line 500, in onBridgeCmd
File "aqt\editor.py", line 363, in onBridgeCmd
File "aqt\gui_hooks.py", line 1006, in call
File "lib\site-packages\anki\hooks.py", line 622, in runFilter
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\edit.py", line 74, in onFocusLost
if update_fields(note, field, allFields):
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 270, in update_fields
fill_sound(hanzi, copy)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\behavior.py", line 169, in fill_sound
s = sound(hanzi, config['speech'])
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\sound.py", line 51, in sound
return '[sound:%s]' % AudioDownloader(hanzi, source).download()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 50, in download
self.func()
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\tts.py", line 56, in get_google
tts.save(self.path)
File "C:\Users\ezioa\AppData\Roaming\Anki2\addons21\1128979221\lib\gtts\tts.py", line 244, in save
log.debug("Saved to %s", savefile)
File "logging_init
.py", line 1422, in debug
File "logging_init
.py", line 1577, in log
File "logging_init
.py", line 1587, in handle
File "logging_init
.py", line 1649, in callHandlers
File "logging_init_.py", line 950, in handle
File "logging_init_.py", line 1183, in emit
File "logging_init_.py", line 1089, in emit
Message: 'Saved to %s'
Arguments: ('C:\Users\ezioa\AppData\Roaming\Anki2\Tony\collection.media\解释_google_zh-cn.mp3',)

This seems to have been related to the (hopefully) resolved gTTS situation. If not, please continue discussion in #183