Damien Elmes
0cc1938657
move empty card check into template code
2020-02-17 08:40:17 +10:00
Damien Elmes
33367c8edf
make template errors translatable
2020-02-17 08:40:17 +10:00
Damien Elmes
6240bd613d
update media DB when adding LaTeX images
2020-02-17 08:40:17 +10:00
Damien Elmes
d73fec3280
shorten add_file_to_media_folder
2020-02-17 08:40:17 +10:00
Damien Elmes
4c0f216df2
use media.trash for unused media deletion as well
2020-02-17 08:40:17 +10:00
Damien Elmes
0c27126817
fix latex render progress; display more frequently
2020-02-17 08:40:17 +10:00
Damien Elmes
2d0499580f
if latex fails to render in bulk, show the user the problem
2020-02-17 08:40:17 +10:00
Damien Elmes
9df2a08cb0
new render_all_latex() + gui button; remove some old code
2020-02-17 08:40:17 +10:00
Damien Elmes
7f365faf3f
add extract_latex to backend; use it for latex build
2020-02-17 08:40:17 +10:00
Damien Elmes
79c1732b00
stripLatex() does not appear to be used anywhere
2020-02-17 08:40:17 +10:00
Damien Elmes
6f158c8555
plug new media check in
2020-02-17 08:40:17 +10:00
Damien Elmes
aa832e9117
backend stores media folder/db locations; don't need to pass them in
2020-02-17 08:40:17 +10:00
Damien Elmes
5fe1bfc5b4
simplify code by accumulating stats at the source
2020-02-17 08:40:17 +10:00
Damien Elmes
6a64c8dfcc
use enums for some common errors
2020-02-17 08:40:16 +10:00
Damien Elmes
347ac80086
remove unused code
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
00f431d94e
use separate fn to init backend, for future pyo3 0.9 release compat
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
d94a86930f
drop support for vfat
2020-02-17 08:40:16 +10:00
Damien Elmes
e5f2e0df92
drop support for the early 2.0 release media db format
2020-02-17 08:40:16 +10:00
Damien Elmes
78f20d05a9
drop the clean* funcs
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
Arthur Milchior
fcfa78bba3
Hook card_is_being_flushed
...
It often arrives that I want to know when a card is going to be
flushed and in this case change it.
This could be the case if I want to change the scheduler without
implementing a whole scheduler. It simply reads the card history and
change interval and due date.
It's also the case for the "'trigger -> action' rules", which apply
some coded actions when some event occurs. E.g. suspend/unsuspend a
sibling when card become mature/is forgotten.
2020-02-14 00:59:32 -08:00
Arthur Milchior
81daad878e
Factorizing card's flush
2020-02-14 00:59:32 -08:00
Arthur Milchior
b2ef003207
hook note_is_being_flushed
...
I created multiple add-ons which want to transform a note before it is
being saved. For example, one add-on trim it, and remove useless line
break which arrived by accident.
Another add-on want to compile LaTeX as soon as the note is done, and
warn the user if LaTeX can't be compiled.
Having a hook in pre-flush would be useful here
2020-02-14 00:57:27 -08:00
Damien Elmes
f7ebb8c28f
Merge pull request #433 from Arthur-Milchior/ints
...
Constants
2020-02-14 08:37:31 +10:00
Damien Elmes
36201a5448
remove redundant declaration
2020-02-12 08:06:35 +10:00
Arthur Milchior
b5fed631d5
deckIds return deck of selected cards
2020-02-11 10:50:59 -08:00
Arthur Milchior
e70a317ac5
ofCids: returns did of all cids
2020-02-11 10:50:59 -08:00
Arthur Milchior
d48111af68
inverse if/else in deckIds
2020-02-11 10:50:59 -08:00
Arthur Milchior
c02ff8593a
cardIds return cids if it is set
2020-02-11 10:50:59 -08:00
Arthur Milchior
9fdc885d82
anki.exporter takes extra argument cids
2020-02-11 10:50:58 -08:00
Arthur Milchior
d8669835d8
aqt.exporter takes extra argument cid
2020-02-11 10:49:13 -08:00
Damien Elmes
ed4731127d
pylint fix
2020-02-08 15:49:41 +10:00
Damien Elmes
c42619efeb
formatting
2020-02-08 15:48:42 +10:00
Damien Elmes
bd96c27096
show which side the template error occurred on
2020-02-08 11:54:08 +10:00
Damien Elmes
58c643d5bf
fix rendering of question/answer column in browse screen
2020-02-08 09:29:34 +10:00
Arthur Milchior
fc5c1fd16a
correct missing french translation
2020-02-05 20:48:30 -08:00
Arthur Milchior
961c741f66
remove "typing.FOO" and import foo
...
According to grep, they were the only two instances
2020-02-04 08:49:53 -08:00
Arthur Milchior
35c8f21eb6
Reformatting through black
2020-02-04 08:47:36 -08:00
Arthur Milchior
957f0c8e8b
QUEUE and TYPE day learn, relearn
2020-02-04 08:47:36 -08:00
Arthur Milchior
7b7b71c0e1
QUEUE_TYPE_PREVIEW
2020-02-04 08:47:36 -08:00
Arthur Milchior
45bf763238
QUEUE_TYPE_REV and CARD_TYPE_REV
2020-02-04 08:47:36 -08:00
Arthur Milchior
7d4506afdb
QUEUE_TYPE_SUSPENDED
2020-02-04 08:47:36 -08:00
Arthur Milchior
9fc3f17f5c
QUEUE_TYPE_SIBLING_BURIED
2020-02-04 08:47:36 -08:00
Arthur Milchior
4a21911d74
QUEUE_USER_BURIED
2020-02-04 08:47:36 -08:00
Arthur Milchior
69436643fe
CARD_TYPE_LRN and QUEUE_TYPE_LRN
2020-02-04 08:47:35 -08:00
Damien Elmes
9cd5df4529
Merge pull request #434 from Arthur-Milchior/didInExport
...
anki.exporting.AnkiExporter.deckIds
2020-02-04 16:59:39 +10:00
Arthur Milchior
a1cc0787d2
QUEUE_TYPE_NEW and CARD_TYPE_NEW
2020-02-03 02:24:37 -08:00
Arthur Milchior
cd86fee03f
Card and queue type
2020-02-03 02:24:37 -08:00
Arthur Milchior
871de0f543
PERIOD_LIFE
2020-02-03 02:24:37 -08:00
Arthur Milchior
c6013c40c5
PERIOD_YEAR
2020-02-03 02:24:37 -08:00
Arthur Milchior
3fa0a07e2e
PERIOD_MONTH
2020-02-03 02:24:37 -08:00
Arthur Milchior
600c70edcb
REVLOG_CRAM
2020-02-03 02:24:37 -08:00
Arthur Milchior
e1a283b168
REVLOG_RELRN
2020-02-03 02:24:37 -08:00
Arthur Milchior
dd5d73f3a3
REVLOG_REV
2020-02-03 02:24:37 -08:00
Arthur Milchior
dca1cd03d1
REVLOG_LRN
2020-02-03 02:24:37 -08:00
Arthur Milchior
dd258ca62c
Add revlog constants
2020-02-03 02:24:37 -08:00
Arthur Milchior
4d088e14c7
BUTTON_FOUR
2020-02-03 02:24:37 -08:00
Arthur Milchior
e4022eeb47
BUTTON_THREE
2020-02-03 02:24:37 -08:00
Arthur Milchior
4fb0a48962
BUTTON_TWO
2020-02-03 02:24:37 -08:00
Arthur Milchior
5104cac97f
BUTTON_ONE
2020-02-03 02:24:37 -08:00
Arthur Milchior
be148ce8a1
Adding constants for buttons
...
The point being that, when we read BUTTON_ONE, we know that the type
of the element is: a button
2020-02-03 02:24:37 -08:00
Arthur Milchior
8264be1964
LEECH_TAGONLY
2020-02-03 02:24:37 -08:00
Arthur Milchior
dadf9042f7
LEECH_SUSPEND
2020-02-03 02:24:37 -08:00
Arthur Milchior
72f8ae7b33
Add leech constants
2020-02-03 02:24:37 -08:00
Arthur Milchior
8eaed49fd4
ADD_MODE
2020-02-03 02:24:37 -08:00
Arthur Milchior
cb7429c433
IGNORE_MODE
2020-02-03 02:24:37 -08:00
Arthur Milchior
a2eea7a1bb
UPDATE_MODE
2020-02-03 02:24:37 -08:00
Arthur Milchior
957dc51fca
DECK_DYN
2020-02-03 02:24:37 -08:00
Arthur Milchior
98e55e26bc
use DECK_STD
2020-02-03 02:24:37 -08:00
Arthur Milchior
a473908dca
Adding constants for decks' type
2020-02-03 02:24:37 -08:00
Arthur Milchior
14cfe57b74
anki.exporting.AnkiExporter.deckIds
...
This change would help me simplify the code of
https://ankiweb.net/shared/info/1983204951
It would allow my exporter to use the code of AnkiExporter while
selecting which decks I export, instead of exporting all decks as I
was doing until today. (I never realized I was exporting all deck
actually, until someone sent me a bug report)
2020-02-03 01:36:27 -08:00
Damien Elmes
fe493e31c4
ugly fix for suspended cards being unsuspended when filtered deck emptied
...
https://anki.tenderapp.com/discussions/ankidesktop/38247-bug-suspended-cards-automatically-included-in-the-filtered-decks
2020-02-03 08:10:20 +10:00
Damien Elmes
8752b050ce
add schedv2_did_answer_review_card hook
2020-01-31 07:30:13 +10:00
Damien Elmes
4da89eb38e
better help link for blank cards
2020-01-28 07:53:55 +10:00
Damien Elmes
c075191697
reuse reveal_cloze_text() for LaTeX cloze expansion
2020-01-28 07:40:44 +10:00
Damien Elmes
21cbb5a766
support speed control in tts tags
2020-01-26 14:31:07 +10:00
Damien Elmes
f6ef553ba5
move strip_av_refs() into anki.sound
2020-01-24 15:48:40 +10:00
Damien Elmes
f900f24f60
more changes to the template code
...
- _renderQA() has moved to template.py:render_card()
- dropped QAData in favour of a properly typed dict
- render_card() returns a TemplateRenderOutput struct instead of a dict
- card_did_render now takes that output as the first arg, and can
mutate it
- TemplateRenderContext now stores the original card, so it can return
a card even in the add screen case
The old mungeFields and mungeQA hook have been removed as part of this
change. mungeQA can be replaced with the card_did_render hook.
In the mungeFields case, please switch to using field_filter instead.
2020-01-24 13:44:13 +10:00
Damien Elmes
836213e587
renderQA() wasn't used in the codebase
2020-01-24 11:09:38 +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
406c58a109
inject legacy funcs referencing aqt in GUI load
2020-01-23 18:20:19 +10:00
Damien Elmes
7bb7d5391b
fix lint
2020-01-23 18:12:57 +10:00
Damien Elmes
9548df1c0f
update reqs test to reflect new behaviour
2020-01-23 17:32:17 +10:00
Damien Elmes
7dcbc7efec
basic night mode support
...
Forces the Fusion theme when running night mode, so we don't need
to work around platform themes that don't respond to the defined
palette.
Feedback/suggestions on the chosen colours welcome - _vars.scss is the
file to change if you want to experiment with adjustments.
2020-01-23 17:27:07 +10:00
Yngve Høiseth
82fdce32f2
Type hint RemoteServer._run
2020-01-22 23:33:37 +01:00
Damien Elmes
cc02e95049
fix pylib checks failing when aqt unavailable
2020-01-22 16:11:40 +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
707ac587ec
rework the audio player API and add a simpler player implementation
...
- the new API operates on AVTags so it can support TTS as well as
audio files
- added a simple "run for each file" implementation for mpv and mplayer.
- will need to test handling of unicode filenames on Windows
- the old mpv and mplayer code is currently not active
2020-01-20 20:07:11 +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
17dae51b29
hasSound not used by anki code or add-ons
2020-01-20 09:31:28 +10:00
Damien Elmes
a9c93d933c
fix incorrectly logged repeat step
...
https://anki.tenderapp.com/discussions/ankidesktop/38130-anki-21-scheduler-misleads-on-hard-button-for-learning-cards
2020-01-19 15:41:58 +10:00
Damien Elmes
66714260a3
automatically disable add-ons that have been marked as incompatible
2020-01-19 13:37:55 +10:00
Damien Elmes
ef8bb61fc3
AnkiRequestsClient -> HttpClient
2020-01-19 11:33:27 +10:00
Damien Elmes
67fb3438f3
add type alias for httpclient callback
2020-01-19 10:06:54 +10:00
Damien Elmes
3287e8c057
pass in a progress callback instead of http_data_did_[send|receive]
...
If a request is happening on a background thread, the GUI code
receiving requests on that thread can lead to a crash
Add-on downloading still to do.
2020-01-18 17:49:59 +10:00
Damien Elmes
0d1a25eb5b
move AnkiRequestsClient into its own file
...
It should still be accessible via anki.sync as well.
2020-01-18 15:45:14 +10:00
Damien Elmes
bead03e858
drop plus_one test
2020-01-17 18:54:38 -07:00