Damien Elmes
0f7fc1e960
add proper version
2020-02-17 08:40:16 +10:00
Damien Elmes
6a64c8dfcc
use enums for some common errors
2020-02-17 08:40:16 +10:00
Damien Elmes
8d97f862a4
defer media DB load until media action performed
...
This means a corrupt media DB will not prevent collection load.
2020-02-17 08:40:16 +10:00
Damien Elmes
ec9abf1ce5
pass in endpoint
2020-02-17 08:40:16 +10:00
Damien Elmes
ea4de9a6de
connect media sync progress to Python, add a progress dialog
2020-02-17 08:40:16 +10:00
Damien Elmes
c82cff3836
add progress hook to media sync
2020-02-17 08:40:16 +10:00
Damien Elmes
d0ee95c4cd
send removed files to the trash
...
The way the trash crate implements deletion on a Mac is ugly, and
we may need to look into alternatives.
2020-02-17 08:40:16 +10:00
Damien Elmes
5e5906f183
store sync state in a struct, and reuse ctx across methods
2020-02-17 08:40:16 +10:00
Damien Elmes
f20b5b8db6
media sync working, but unpolished
2020-02-17 08:40:16 +10:00
Damien Elmes
1974981b94
bump nightly for the unwrap source line fix
2020-02-17 08:40:16 +10:00
Damien Elmes
ec8a91b493
more refactoring
2020-02-17 08:40:16 +10:00
Damien Elmes
10f64d54b8
rearrange some methods to make structure clearer
2020-02-17 08:40:16 +10:00
Damien Elmes
01470c4854
backend init can now fail, and update media db when file is added
...
- Adding files inside Anki now updates the media DB, so a full file
scan at sync time is no longer required if no other changes have been
made.
- Use a protobuf message for backend initialization, and return a
string error if initialization fails.
2020-02-17 08:40:16 +10:00
Damien Elmes
96f0a5cc3c
port change tracking
2020-02-17 08:40:16 +10:00
Damien Elmes
7d42da67c6
make sure results are checked
2020-02-17 08:40:16 +10:00
Damien Elmes
056c2d3fd1
initial rs implementation of media database
2020-02-17 08:40:16 +10:00
Damien Elmes
4096d21c07
add add_file() and write_data()
2020-02-17 08:40:16 +10:00
Damien Elmes
41266f46f1
add another implementation of media.addFile() and cleanFilename() et al
...
Instead of adding an incrementing number in the conflict case,
the file hash is appended.
2020-02-17 08:40:16 +10:00
Damien Elmes
bd96c27096
show which side the template error occurred on
2020-02-08 11:54:08 +10:00
Damien Elmes
ed8c1ae9c5
clearer error when closing tags transposed
2020-02-08 10:32:34 +10:00
Damien Elmes
c075191697
reuse reveal_cloze_text() for LaTeX cloze expansion
2020-01-28 07:40:44 +10:00
Damien Elmes
9ad80f4d2c
move cloze-related code into a separate file
2020-01-27 20:41:23 +10:00
Damien Elmes
21cbb5a766
support speed control in tts tags
2020-01-26 14:31:07 +10:00
Damien Elmes
17ebdfc099
extract and flag AV tags as part of the render process
...
We can now show replay buttons for the audio contained in {{FrontSide}}
without having to play it again when the answer is shown.
The template code now always defers FrontSide rendering, as it wasn't
a big saving, and meant the logic had to be implemented twice.
2020-01-24 11:06:11 +10:00
Damien Elmes
de3fe320c0
look through negated conditionals instead of just ignoring them
...
https://anki.tenderapp.com/discussions/ankidesktop/38220-bug-in-2119-regarding-computation-of-req
2020-01-23 17:27:07 +10:00
Damien Elmes
4fb227ca4c
added flag_av_tags() for replay button support
2020-01-21 14:44:27 +10:00
Damien Elmes
c713683f63
add rank handling to TTS; parse TTS args in get_av_tags()
2020-01-21 12:41:37 +10:00
Damien Elmes
66e277e44b
more TTS and sound work
...
- use provided language and voices when playing on Mac
- fix hang in waiting for termination
- allow players to return a rank for a given tag,
which will allow for the best matching player to be chosen
depending on the context (eg, prioritize one player for videos,
one tts player for certain voices, etc)
2020-01-21 11:34:25 +10:00
Damien Elmes
0942ffbff6
add a simple TTS field filter
...
This simply wraps the field in extra text that the frontend will
deal with. Also added some helpers for extracting and stripping
audio and TTS tags from the rendered text.
2020-01-20 19:16:24 +10:00
Damien Elmes
fbf0f94bcc
workflow fix
2020-01-19 15:02:08 +10:00
Damien Elmes
bead03e858
drop plus_one test
2020-01-17 18:54:38 -07:00
Damien Elmes
12c60f20fe
_localOffsetForDate() was broken
...
It was including the elapsed time of day when calculating
the offset, leading to incorrect results
2020-01-17 18:52:36 -07:00
Damien Elmes
cddfddf1c8
save filters and field name separately
2020-01-16 18:47:21 +10:00
Damien Elmes
bdac937802
show missing field errors in the same way as the other errors
2020-01-16 18:47:21 +10:00
Damien Elmes
b56c9591c0
more useful template error message
2020-01-16 18:47:21 +10:00
Damien Elmes
99c45c5fbc
allow an empty field name if filters are provided
...
This is to make it easier for add-ons to provide extra content that
degrades nicely on platforms that don't have the add-on.
2020-01-15 18:48:23 +10:00
Damien Elmes
9d84f8fb70
fix overlapping clozes
2020-01-14 07:07:21 +10:00
Damien Elmes
9bb0348fdd
more template rendering tweaks
...
- The front and back are rendered in one call now. If the front
side contains no custom filters, we can bake {{FrontSide}} into the
rear side. If it did contain custom filters, we return the partially
complete rear template instead, and the calling code can inject
the FrontSide in after it has been fully rendered.
- Instead of modifying "cloze" into something like "cq-2", the card
ordinal and whether we're rendering the question or answer are now
passed in to the rendering filters as context.
- The Rust code doesn't need to support filter names split on '-'
anymore.
- Drop the "Show" part of hint descriptions so i18n support can be
deferred.
- Ignore blank filter names caused by user using two colons instead
of one.
- Fixed hint field and text transposition.
2020-01-12 21:34:07 +10:00
Damien Elmes
84d22046d4
fix type:cloze handling
2020-01-11 19:38:41 +10:00
Damien Elmes
7cde51e884
ignore extra { chars in replacement
...
This will still show a trailing } with {{{field}}}, but will at
least show the field content instead of 'unknown field'.
2020-01-11 18:02:24 +10:00
Damien Elmes
feb0a31bba
static->const
2020-01-11 13:06:48 +10:00
Damien Elmes
0ccc9e98a8
drop unnecessary capitalized cloze handling
2020-01-11 13:03:43 +10:00
Damien Elmes
389bf07b52
handle mathjax+cloze case
...
instead of trying to selectively change clozes from c to C, just
strip HTML from inside the mathjax sections instead
2020-01-11 12:57:32 +10:00
Damien Elmes
cc09ca34d4
cloze: support
...
MathJax still to do
2020-01-11 12:07:06 +10:00
Damien Elmes
94a72f970a
type: and hint: support
...
We may need to keep handling hints in the Python code for now until
i18n is sorted out.
2020-01-11 09:35:41 +10:00
Damien Elmes
7d7656d86f
add ruby filters
2020-01-10 21:04:52 +10:00
Damien Elmes
d4553e9488
add some text helpers
2020-01-10 21:01:23 +10:00
Damien Elmes
96c8784024
add copyright headers to some files
2020-01-10 21:00:48 +10:00
Damien Elmes
deca82ca9d
skip rslib doctests, we don't use them and they're slower
2020-01-10 18:06:21 +10:00
Damien Elmes
3f724e5c98
replace fields and apply standard filters in rslib
...
The filters still need to be implemented.
2020-01-10 18:02:26 +10:00