Commit graph

23 commits

Author SHA1 Message Date
Damien Elmes
8095ad8e4b use isort to tidy up imports 2019-12-20 19:19:29 +10:00
Damien Elmes
dc0fdaeea5 add a bunch of annotations for mypy 2019-12-20 15:07:40 +10:00
Damien Elmes
60afbcf62d daemonize helper threads so that sys.exit() during startup works
with daemonize set to False, the app hangs waiting on the helper threads
2019-04-29 14:36:44 +10:00
Damien Elmes
442600daf8 Merge pull request #288 from glutanimate/mediasrv-addon-support
Extend mediasrv to also serve media files in addons directory
2019-03-04 18:03:48 +10:00
Damien Elmes
71f2b0627d fix inconsistent indentation 2019-03-04 16:54:22 +10:00
Glutanimate
37da78f4c6 Refactor: re.match --> re.fullmatch 2019-03-03 17:04:01 +01:00
Glutanimate
a01679266b Allow add-on authors to set a whitelist of webview-accessible files
Extends the AddonManager API with two new methods, setWebExports and
getWebExports. setWebExports expects an add-on module name and a
valid RegEx pattern to match subpaths in the add-on folder against.

Any matching subpaths will be accessible in Anki's web views by
referencing them with /_addons/{addon_id}/{subpath}.

For instance, to allow access to .css and .png files in your add-on's
user_files directory you would call:

> mw.addonManager.setWebExports(__name__, r"user_files/.+(\.png|\.css)")

You could then reference these files in web views as such:

> <img src="/_addons/{addon_id}/user_files/test.png">

Please note that this bypasses the default security policies used
in Anki webviews. You should take care to construct your RegEx
patterns specific enough so that they do not match any sensitive
files of our add-on.
2019-03-02 18:57:51 +01:00
Glutanimate
0bdd18f352 Extend mediasrv to also serve media files in addons directory
RequestsHandler now rewrites "/_addons" references to addons folder.
2019-02-26 13:08:15 +01:00
Damien Elmes
a7eb6bb357 update copyright and clarify licenses 2019-02-05 14:01:33 +10:00
Damien Elmes
66a38ca9c8 catch maxpath error in mediasrv
https://anki.tenderapp.com/discussions/ankidesktop/30729-valueerror-in-ospathisdir-call-in-mediasrvpy-for-elements-with-long-strings-as-src
2018-11-12 19:35:23 +10:00
Kerrick Staley
47dc2eb464 Bind mediaserver on 127.0.0.1 instead of localhost 2017-12-24 23:10:07 -08:00
Damien Elmes
5142ff0ccd don't die on _anki.png et al
https://anki.tenderapp.com/discussions/beta-testing/747-anki-210-beta-16/page/2#comment_43769227
2017-10-16 15:02:16 +10:00
Damien Elmes
50fb6945e3 work around python not handling non-latin hostname
https://anki.tenderapp.com/discussions/beta-testing/763-anki-does-not-seem-to-start-on-windows-10
2017-09-16 12:19:44 +10:00
Damien Elmes
94f6d8a70d force correct css mime type
fixes broken styling on machines with an incorrect mime type
2017-09-07 14:52:46 +10:00
Damien Elmes
7b93d8423f make sure media server can handle a flood of requests
fixes intermittent failures when loading js/css files, especially during
startup
2017-08-30 16:05:39 +10:00
Damien Elmes
c74cbf6108 fix media server port allocation
the old code was allowing the main thread to read .port before it had
been updated, and was binding to sockets that were already in use on
Windows. instead, we use a system-assigned free port and block the main
thread until it's been allocated
2017-08-08 14:56:34 +10:00
Damien Elmes
bee6931dc9 fix issues with media server not going away
- use a non-daemonized python thread
- shut the server down on exit, including from profile manager
- use a timeout on requests, or the connection that webengine holds open
will block the thread and prevent it from exiting when anki closes
2017-08-08 12:55:30 +10:00
Damien Elmes
0543a4533b add devMode flag to utils
also remove the extra toolbar call in loadProfile(), as we require a
restart to update the translations anyway
2017-08-01 14:28:13 +10:00
Damien Elmes
7ad6966943 split js code out into separate files, mathjax improvements
- js code that was previously bundled in .py files is now in the
web folder
- add helpers to create links to bundled files, and update
stdHtml() to accept a list of javascript files to include
instead of text
- render MathJax in card layout and preview screens - these should be
updated in the future to update the document dynamically like the
reviewer does
- start media server earlier so it can be used to serve content for
the toolbar, etc
- work around a bug in WebEngine on Windows that could cause the
media server to hang
2017-07-28 16:35:45 +10:00
Damien Elmes
3d9d792dd4 bundle web folder 2017-07-27 12:28:44 +10:00
Damien Elmes
0f04744f7e fix embedded fonts 2017-02-21 13:27:29 +10:00
Damien Elmes
53f7457d4c swallow http server errors 2016-07-08 13:22:36 +10:00
Damien Elmes
a8e2f992c8 image support 2016-07-07 23:39:48 +10:00