Damien Elmes
e759e6ef83
Merge pull request #718 from phwoo/typehints-for-qt-profiles
...
Added typehints for qt profiles
2020-07-31 14:04:29 +10:00
Damien Elmes
0edb043f53
i18n some card template strings
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
cd72d6807a
refresh tag list after clearing unused
2020-07-31 13:33:41 +10:00
ANH
9b0d509e74
just forgot to regenerate gui_hooks.py to fix typo
2020-07-31 04:47:31 +03:00
Matt Krump
10f2f9c037
Turn on check_untyped_defs for aqt.emptycards
2020-07-30 18:43:57 -06:00
Matt Krump
7d8f856060
Turn on check_untyped_defs for aqt.addons
2020-07-30 18:43:57 -06:00
Matt Krump
a56690bc08
Turn on check_untyped_defs for aqt.webview
2020-07-30 18:43:57 -06:00
ANH
b4604873c4
document hooks
2020-07-31 03:06:13 +03:00
ANH
b4b12f1642
add reviewer_will_play_question_sounds and reviewer_will_play_answer_sounds hooks
2020-07-30 22:20:19 +03:00
ANH
43620b0a30
use 'Preview Settings' as a label for the new options button
2020-07-30 18:04:50 +03:00
Fabian Wood
79e8076685
Added typehints for qt profiles
...
* `Any` used for pickle methods, this could probably be improved
with some kind of Callable
* str used for self.base, though this may be a problem for
different OSes. Some type of os.PathLike might be good.
* Line 75, type ignored: mypy was complaining about no. of args,
and kwargs there didn't seem to be needed. Separate issue to test,
though.
2020-07-31 00:56:48 +10:00
ANH
03a80e596a
add night mode and mobile class toggles in card layout screen
2020-07-30 15:39:02 +03:00
Damien Elmes
215413ce25
Merge pull request #715 from phwoo/typehints-for-qt-modelchooser
...
Added typehints to qt/aqt/modelchooser.py, updated qt/mypy.ini
2020-07-30 17:00:58 +10:00
Damien Elmes
f52a25d80a
Merge branch 'master' into add-type-hints-for-qt-models
2020-07-30 16:05:55 +10:00
Fabian Wood
c4f9bf62fd
added typehints to modelchooser, updated mypy.ini
2020-07-30 15:25:25 +10:00
Fabian Wood
e49a00fdeb
added type hints to qt models
2020-07-30 13:28:52 +10:00
Adam Plaice
d6fb4acd38
Re-add previously supported file extensions for media
...
(They had been removed in 2ae342592c
).
2020-07-29 15:08:33 +02:00
Damien Elmes
93ada5d374
Merge pull request #703 from ANH25/master
...
fix help-wanted#13
2020-07-29 14:14:57 +10:00
Damien Elmes
6d0d210130
Merge branch 'master' into help-wanted-4-add-type-hints-5
2020-07-29 13:56:57 +10:00
Damien Elmes
7e7f2d0be4
clearer message when template error is preventing save
2020-07-29 12:53:03 +10:00
Matt Krump
24e7156991
Turn on check_untyped_defs for aqt.editor
...
* Turn on check_untyped_defs for aqt.browser
* Add type hints
2020-07-28 18:42:22 -06:00
Damien Elmes
a239b9330d
Merge pull request #706 from mkrump/help-wanted-4-add-type-hints-4
...
Turn on check_untyped_defs for aqt.taglimit, aqt.update and aqt.browser
2020-07-28 13:16:49 +10:00
Damien Elmes
f45627dbd3
don't throw error on empty path
...
https://forums.ankiweb.net/t/anki-2-1-28-error-message-when-reviewing-cards/1439
2020-07-27 11:28:32 +10:00
Matt Krump
baa033bc78
Fix browser.py import sorting
2020-07-26 13:16:06 -06:00
Matt Krump
4239c2dfdc
Cast set to list to fix mypy failure in browser.py
2020-07-26 13:00:06 -06:00
Damien Elmes
dbbdd16f0f
apply AltGr workaround on qt 5.14 as well
2020-07-26 10:13:53 +10:00
Matt Krump
b5222f935d
Turn on check_untyped_defs for aqt.browser
...
* Turn on check_untyped_defs for aqt.browser
* Add type hints to browser
2020-07-25 17:31:49 -06:00
Matt Krump
b2cbe10d7e
Turn on check_untyped_defs for aqt.update
...
* Turn on check_untyped_defs for aqt.update
2020-07-25 17:31:44 -06:00
Matt Krump
7356756868
Turn on check_untyped_defs for aqt.taglimit
...
* Add type hints taglimit
* Turn on check_untyped_defs for aqt.taglimit
2020-07-25 15:45:31 -06:00
ANH
671b1c76cb
Merge branch 'master' into master
2020-07-25 05:24:45 +03:00
Damien Elmes
b3ec8046bf
Merge branch 'master' into help-wanted-4-add-type-hints-3
2020-07-25 11:43:46 +10:00
Matt Krump
a844a8b0c5
Add type hints to importing
...
* Add type hints to importing
* Turn on type checking for aqt.importing
2020-07-24 12:38:34 -06:00
Matt Krump
186f1c7720
Add type hints to errors
...
* Add type hints to errors
* Turn on type checking for aqt.errors
2020-07-24 11:20:54 -06:00
Matt Krump
b0dd85f87e
Add type hints to aqt.models
...
* Add type hints to aqt.models
* Turn on type checking for aqt.models
2020-07-24 10:59:45 -06:00
ANH
fd0c3cf57e
add missing string r flag
2020-07-24 09:18:05 +03:00
ANH
da3761341e
formatting
2020-07-24 09:00:34 +03:00
ANH
e122534ba4
avoid string concatenation
2020-07-24 08:12:46 +03:00
Matt Krump
b3b4d23f9d
Add type hints for apt.deckconf
...
* Add type hints for apt.deckconf
* Turn on check_untyped_defs for apt.deckconf
2020-07-23 21:53:12 -06:00
ANH
eaf935c3ff
fix ankitects/help-wanted#13
2020-07-24 06:00:55 +03:00
Damien Elmes
61e8611b7b
fix lint issue in previewer, and drop unused code
...
No add-ons appear to be using the removed code, and Anki wasn't
using it either.
2020-07-24 12:18:37 +10:00
Damien Elmes
2cba721702
formatting and debug statement tweak
2020-07-24 11:57:37 +10:00
Damien Elmes
26426cb11e
fix preview not updating on edit
...
https://forums.ankiweb.net/t/modification-and-preview/1331
2020-07-24 11:57:22 +10:00
Damien Elmes
c3266ea060
enable AltGr workaround by default
...
5.15.1 may still be another month away
2020-07-24 10:32:50 +10:00
Damien Elmes
80a2bfa642
ask user to check db when graphs fail to load
2020-07-24 09:56:28 +10:00
Damien Elmes
ad628d0f36
Merge pull request #702 from mkrump/help-wanted-4-add-type-hints
...
Add type hints for apt.dyndeckconf
2020-07-24 09:01:07 +10:00
Matt Krump
4bc98cd0ca
Add type hints for apt.dyndeckconf
...
* Add type hints for apt.dyndeckconf
* Turn on check_untyped_defs for apt.dyndeckconf
2020-07-23 16:04:46 -06:00
kelciour
f2027cca96
Add --no-autoload-files option to mpv
2020-07-23 14:28:47 +03:00
Damien Elmes
2ff1a27b04
fix misaligned deck heading in RTL languages
...
https://forums.ankiweb.net/t/anki-2-1-29-beta/1220/2?u=dae
2020-07-22 11:00:39 +10:00
Damien Elmes
1b441f5050
fix pylint failing in CI
2020-07-21 16:16:34 +10:00
Damien Elmes
86fc7446b0
protect against exception on initial recording wait
2020-07-21 16:07:58 +10:00
Damien Elmes
3337c96fdb
trigger recording permission on newer macOS SDKs
2020-07-21 15:54:04 +10:00
Damien Elmes
1e6a37e0e6
formatting
2020-07-21 14:17:56 +10:00
Damien Elmes
01ff6ab55d
apply rtl dir to webviews
...
https://forums.ankiweb.net/t/gui-problems-with-right-to-left-languages/1205
2020-07-21 11:52:25 +10:00
Damien Elmes
b5cbfe3bbb
full sync terminates media sync; start it again afterwards
...
https://forums.ankiweb.net/t/media-files-not-downloaded-in-first-full-sync-v2-1-28/1198/3
2020-07-21 11:26:41 +10:00
Damien Elmes
67abb98993
Merge pull request #692 from Arthur-Milchior/remove_useles_variables
...
Remove useless variables
2020-07-20 11:35:40 +10:00
Damien Elmes
c203410307
split add-ons window title from menu bar action
...
https://anki.tenderapp.com/discussions/private/4781-print-mistake
2020-07-19 09:49:36 +10:00
Damien Elmes
f22aa4c199
catch SIGTERM, and respond more quickly
2020-07-18 11:26:04 +10:00
Arthur Milchior
452daf8d80
Remove useless variables
2020-07-17 08:38:48 +02:00
Damien Elmes
bfbab8b498
i18n downgrade&quit button
2020-07-17 15:06:14 +10:00
Damien Elmes
f741b05f56
Merge pull request #690 from glutanimate/stats-will-show-hooks
...
Add a couple of hooks to trigger add-on actions before showing stats
2020-07-17 14:38:41 +10:00
Glutanimate
0fedf5c825
Fix type annotation for old stats dialog class
2020-07-17 03:08:09 +02:00
Glutanimate
b89811bfba
Add a couple of hooks to trigger add-on actions before showing stats
2020-07-16 21:48:46 +02:00
Glutanimate
fe81da9b8a
Make sure to set domDone to False before loading URLs
...
Fixes an issue where JS would be evaluated prematurely in views
directly loaded from URLs.
2020-07-16 19:56:57 +02:00
Damien Elmes
2824be25f0
formatting
2020-07-16 13:55:53 +10:00
Damien Elmes
fa239be124
add platform version back into sync metadata
2020-07-16 10:12:41 +10:00
Damien Elmes
320b56ae43
can't rely on stdout to handle unicode
2020-07-15 09:36:29 +10:00
Damien Elmes
eb91ff7421
Revert "Added parameter/return types, fixed possible logic error and typo"
2020-07-13 21:25:44 +10:00
Damien Elmes
5c6ca55e42
Merge pull request #686 from zerrs/master
...
Added parameter/return types, fixed possible logic error and typo
2020-07-13 21:25:16 +10:00
Damien Elmes
2af1d68b05
Update customstudy.py
2020-07-13 21:24:18 +10:00
Damien Elmes
c3800b6f9a
Merge pull request #684 from flagist0/select-note-type-with-ctrl-plus-digit-key
...
Allow to choose note type from list by pressing ctrl + row number
2020-07-13 21:23:35 +10:00
Alexander Presnyakov
364725a528
Don't call setCurrentRow if row didn't change
2020-07-13 12:33:36 +03:00
zzzz
d6d952d0fd
Added some return and parameter types in customstudy.py, also fixed a possible logic error in plus function and a small typo
2020-07-13 01:32:08 -04:00
kelciour
ef1d61e35c
Scroll media sync log to the last line
2020-07-13 03:06:44 +03:00
Alexander Presnyakov
e092dadc9a
Allow to choose note type from list by pressing ctrl + row number
2020-07-12 22:15:58 +03:00
Damien Elmes
bc5b6dfb63
mediasrv symlink fix
...
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/39
2020-07-11 10:53:41 +10:00
Glutanimate
15fd3a4856
Add top_toolbar_did_redraw hook
...
Notifies add-ons of the top toolbar being redrawn
2020-07-10 17:38:40 +02:00
Damien Elmes
93425be839
formatting
2020-07-07 13:28:30 +10:00
Damien Elmes
85cbd263da
tidy up logging
2020-07-07 10:50:12 +10:00
Damien Elmes
4ab9d04c95
if webexports does not match, return 403
2020-07-07 10:50:03 +10:00
evandrocoan
121725390d
Fix _addons/ URL prefix not being removed on Windows systems
...
Anki 2.1.28 Beta
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/26
> Did the requirements on how to expose resources on the internal server change? Because scripts, css files and the like, registered with setWebExports, do not work anymore with beta2.
> A look at the console shows the following for all resources:
> Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)
**\Anki2\addons21\someaddon\__init__.py**
```py
from aqt import mw
import aqt
# assuming add-on folder is named "test"
# and assuming a 'test.js' is in the same folder
addon_id = "someaddon"
port = mw.mediaServer.getPort()
mw.addonManager.setWebExports(addon_id, ".*\\.js$")
print("Hello")
aqt.editor._html += f"""
<script>
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://127.0.0.1:{port}/_addons/{addon_id}/test.js ';
document.body.appendChild(script);
</script>"""
```
2020-07-06 13:51:37 -03:00
Andreas Reis
e8ddd17fec
Always use standard QT color dialog on Linux
...
On Linux only Gnome uses its own color dialog, and it's inferior to QT's own: See the same issue @ https://github.com/OpenShot/openshot-qt/pull/2425
(This is/was visible only on some distributions' packaged versions of Anki, not via ./run.)
isLin check since QT on Windows already uses the default, whereas Mac's own picker seems superior (from what I can judge by screenshots).
2020-07-05 13:21:38 +02:00
Damien Elmes
4033f00988
don't stuff mw into function objects
...
Using the global is preferable to fighting against mypy to insert mw
into a function object.
2020-07-03 10:55:29 +10:00
Damien Elmes
14602be0ca
port previous css workaround to flask
2020-07-03 10:40:23 +10:00
Damien Elmes
e45c939649
Merge pull request #554 from evandroforks/fix_html5_media_support
...
Fixed HTML5 media tags
2020-07-03 10:25:43 +10:00
evandrocoan
476b881987
Replaced flask.Response by flask.make_response to simplify the
...
implementation and because make_response is preferred over Response
as it respects the server defined Response type.
2020-07-02 20:39:03 -03:00
evandrocoan
a99e455414
Removed duplicated mediasrv.py security check and fixed invalid
...
command/path error message.
2020-07-02 20:39:03 -03:00
evandrocoan
1218d109e8
Fix jest unit tests after merge
...
# Conflicts:
# qt/aqt/mediasrv.py
# qt/ts/src/ankimedia.ts
# qt/ts/src/reviewer-exceptions.test.ts
# qt/ts/src/reviewer.test.ts
# ts/package.json
2020-07-02 14:30:43 -03:00
evandrocoan
0142ac3ca2
Replaced send_from_directory by send_file to simplify the code
2020-07-02 13:52:07 -03:00
evandrocoan
1e6fa5f8eb
Ensure protection against directory transversal
...
https://security.openstack.org/guidelines/dg_using-file-paths.html
2020-07-02 13:52:03 -03:00
evandrocoan
be10da58d9
Fixed aqt/mediasrv.py:14: error: unused 'type: ignore' comment
...
from waitress.server import create_server # type: ignore
https://github.com/evandroforks/anki/runs/743801391#step:25:1129
2020-07-02 13:51:59 -03:00
evandrocoan
020415efb9
Replaced the mediasrv.py SimpleHttp server by flask and waitress,
...
fixing HTML5 media support.
https://stackoverflow.com/questions/37044064/html-audio-cant-set-currenttime
https://stackoverflow.com/questions/21956683/enable-access-control-on-simple-http-server
https://stackoverflow.com/questions/5052635/what-is-relation-between-content-length-and-byte-ranges-in-http-1-1
https://stackoverflow.com/questions/16725907/google-app-engine-serving-mp3-for-audio-element-needs-content-range-header
I was trying to use HTML5 audio tag to display audios like:
```html
<audio id="elem_audio" src="myfile.mp3" controls></audio>
```
![image](https://user-images.githubusercontent.com/5332158/79063321-565b5500-7c77-11ea-9f8d-6e1df6f07892.png )
But the progress bar seek was not working. After researching, I found the problem was the HTML server not properly responding to the HTML5 header requests. The HTML server should respond to quite complicated things as 206 partial, properly handle keep-alive, provide media ranges and other HTTP headers: https://stackoverflow.com/questions/37044064/html-audio-cant-set-currenttime
To implement all these on the Simple HTTP server would be quite complicated. Then, instead, I imported the `flask` web server, which is quite simple and straight forward to use. Now, the back-end is using a secure complaint HTTP back-end:
1. https://palletsprojects.com/p/flask/
> Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks.
>
> Flask offers suggestions, but doesn't enforce any dependencies or project layout. It is up to the developer to choose the tools and libraries they want to use. There are many extensions provided by the community that make adding new functionality easy.
1. https://docs.pylonsproject.org/projects/waitress/en/latest/
> Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library. It runs on CPython on Unix and Windows under Python 2.7+ and Python 3.5+. It is also known to run on PyPy 1.6.0 on UNIX. It supports HTTP/1.0 and HTTP/1.1.
Right now, anki does not support fields passing file names directly to HTML audio tags, but this can be easily done with (https://github.com/ankitects/anki/pull 540 - Added arguments to the sound tag) plus the commit 826a97df61
, the HTML5 audio tag can be used like this:
```html
// Audio = [sound:myfile.mp3|onlyfilename]
<audio id="elem_audio" src="{{Audio}}" controls controlsList="nodownload"></audio>
```
![image](https://user-images.githubusercontent.com/5332158/79063736-c539ad80-7c79-11ea-8420-40b72185f4e7.png )
# Conflicts:
# qt/aqt/mediasrv.py
2020-07-02 13:51:49 -03:00
Damien Elmes
48b6510aef
dump error on profile load fail
...
may help diagnose
https://forums.ankiweb.net/t/i-couldnt-open-anki-resetting-corrupt-global/190
2020-07-02 10:35:01 +10:00
Damien Elmes
04b1ca7559
defer top toolbar drawing until after add-ons loaded
...
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/13
2020-07-02 10:23:14 +10:00
Damien Elmes
4d23a69e9a
formatting
2020-07-01 14:01:24 +10:00
Damien Elmes
bedd9dadb1
add option to disable media syncing
...
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:35:24 +10:00
Damien Elmes
05fb67d409
show clearer error when media db locked
...
should not happen frequently during a sync, but may happen during
the initial change checking stage
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:19:06 +10:00
Damien Elmes
40f270c386
shift+click on the graphs button to access old graphs for now
2020-06-30 20:07:46 +10:00
Damien Elmes
101deb002b
graphs now work in night mode
2020-06-30 16:23:46 +10:00
Damien Elmes
f3febea4b0
update edited/changed column labels
...
https://github.com/ankitects/anki/pull/674/files
2020-06-29 18:34:03 +10:00
Damien Elmes
52cd9fc4b8
plug new graphs code into GUI
...
Still some work to do. Feedback welcome!
2020-06-29 15:53:56 +10:00