RumovZ
370c689c83
Prettify frontend filter code
2021-01-09 12:34:46 +01:00
RumovZ
0cb75f5601
Use backend filters instead of literal searches
2021-01-09 10:51:15 +01:00
RumovZ
ad361e7a77
Provide ConcatSeparator through rsbackend.py
2021-01-07 17:48:30 +01:00
RumovZ
e563e4a19e
Add writer functions to want_release_gil()
2021-01-07 13:09:00 +01:00
Damien Elmes
2b5ef0b9a8
fix qt/ pylints
2021-01-07 16:21:50 +10:00
Damien Elmes
f333c3332a
Make orjson optional again
...
While 32 bit platform support is probably not going to come back,
this allows Anki to run on other architectures orjson doesn't support.
2021-01-07 09:44:40 +10:00
Damien Elmes
ceca13516b
no need to log card resets when exporting
2021-01-05 11:11:37 +10:00
Damien Elmes
3123e6df7f
do tag rename and tag clearing in background; move logic to tags.py
...
Because the logic is in rename_tag() now, it means we create a
checkpoint even if the tag is orphaned. This is because currently
checkpointing is a GUI responsibility. In the future we need to introduce
multi-level undo, and should move responsibility for managing it
to the backend.
2021-01-04 14:14:39 +10:00
Damien Elmes
2e4434df4f
add linux_arm64 platform
2020-12-29 18:40:39 +10:00
Damien Elmes
0d3b80abd7
Merge pull request #866 from guillem-palau-salva/master
...
Update consts.py
2020-12-29 10:15:42 +10:00
Damien Elmes
ff0382ce11
Merge pull request #872 from RumovZ/fix-deck-check
...
Fix deck check and thus blue sync arrow bug
2020-12-29 10:11:59 +10:00
RumovZ
b4fa13aa0e
Fix deck check and thus blue snyc arrow bug
...
Cast col.decks.selected() to int so the return type fits the annotation.
Thus, fix the comparison in col.decks.select() which was leading to
a superfluous db modification and in turn to a false indication of a
necessary sync right after another one in certain cases.
2020-12-29 00:29:36 +01:00
Guillem Palau-Salvà
2b5a6be3fa
Update consts.py
...
I notices that type 4 is added in the revlog when rescheduling. Reviews are logged as 0 time and type 4.
2020-12-27 01:02:32 +01:00
Damien Elmes
d222686755
update to stable pyo3 0.13 release
2020-12-23 10:08:38 +10:00
Damien Elmes
25160daa90
tag the wheels as manual so test ... doesn't build them
2020-12-21 19:28:47 +10:00
Damien Elmes
250a45d32e
possible fix for sync button colour blue after sync
...
If the client's clock is behind AnkiWeb's, even by a few seconds,
we can end up with a situation where last_begin_at is updated after
the sync to a value less than the mtime we received from AnkiWeb,
causing the collection to be saved, which bumps the modtime.
Work around this by recording mtime at begin() time, and seeing if it
has changed in either direction.
Thanks to Rumo, who did the hard work looking into it:
https://forums.ankiweb.net/t/why-is-my-sync-button-blue/2078/21
2020-12-21 19:27:26 +10:00
Damien Elmes
407b7f7410
tweak naming and move method into col.decks
2020-12-20 10:26:16 +10:00
k12ish
5da867c88a
Added type hints, renamed kwarg
2020-12-19 18:12:58 +00:00
k12ish
9dc01bace1
Added method
2020-12-19 17:59:07 +00:00
Damien Elmes
faf992643a
exhaustiveness checks on literals are now possible with the move to py38
2020-12-18 16:50:55 +10:00
Damien Elmes
9f3659a1d3
use QtMultimedia for recording instead of PyAudio
...
The unmute-on-first-duration-change approach is to try to prevent
clicks/pops that can happen at the start of recordings. If it doesn't
solve the problem, we may need to drop down to the lower-level
QAudioInput().
Closes https://github.com/ankitects/help-wanted/issues/23
May fix https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824 ,
which I suspect was caused by processEvents()
2020-12-16 19:33:25 +10:00
Damien Elmes
42f583f8a1
fix some warnings on startup
2020-12-16 15:38:24 +10:00
Damien Elmes
32a71c5418
remove conditional rsbackend_gen import
...
It causes PyCharm to think methods are missing on col.backend, and
should not be needed with the move to Bazel.
2020-12-16 13:30:54 +10:00
Damien Elmes
c28885d191
add type stub for _rsbridge to make PyCharm happy
2020-12-16 13:13:42 +10:00
Damien Elmes
5c93898e32
symlink generated .py/.pyi into tree to fix Python code completion
2020-12-16 11:36:42 +10:00
Damien Elmes
75a97d75ee
add ability to specify an individual Python test
2020-12-16 10:40:29 +10:00
Damien Elmes
f7b87bb716
minor doc updates
2020-12-11 22:37:12 +10:00
Damien Elmes
7a95d7e189
remove unwanted leading '/' in wheel records
2020-12-10 23:02:18 +10:00
Damien Elmes
51635ff7e4
simplify wheel building
2020-12-10 20:27:21 +10:00
Damien Elmes
cf8cfcf97f
drop unused i686 references
...
https://forums.ankiweb.net/t/changing-ankis-build-system-to-bazel/4737/9
2020-12-09 15:45:01 +10:00
Damien Elmes
1315d8b3c1
update Rust deps incl. Pyo3
...
This includes the refcount bug fix from pyo3 0.12.4
2020-12-01 16:48:45 +10:00
Damien Elmes
00d7a99562
expose Gaelic in language selection
2020-11-30 14:44:29 +10:00
Damien Elmes
2f9ddadf2c
switch to workspace for Rust code
2020-11-24 18:41:03 +10:00
Damien Elmes
6a1cf40dcd
Merge branch 'master' into init-lang
2020-11-22 16:10:49 +10:00
Damien Elmes
68311500b3
update remaining python format strings to Fluent
2020-11-22 14:57:53 +10:00
abdo
d06a9137b6
Set up default language before loading profile
...
We can make more strings translatable this way.
2020-11-21 05:29:23 +03:00
Damien Elmes
4043bd90bb
Merge pull request #823 from RumovZ/rework-search-parser
...
Rework search parser
2020-11-20 16:22:12 +10:00
abdo
702c5712e4
Fix description of exporters
...
Description broke yet again with the full migration to Fluent
2020-11-19 23:52:46 +03:00
RumovZ
4e7a31250f
Add Python test for tag whitespace
...
Assert tag matches do not occur across different tags.
2020-11-19 09:28:19 +01:00
RumovZ
f05e70a03e
Merge branch 'master' into rework-search-parser
...
Conflicts:
rslib/src/search/sqlwriter.rs
2020-11-18 09:04:04 +01:00
Damien Elmes
e271c63537
remove print statement from unit tests
2020-11-18 13:56:44 +10:00
Damien Elmes
ebd1236ab0
strip out unused gettext refs
2020-11-18 13:22:51 +10:00
Damien Elmes
7e655614b2
fix remaining _() references; remove unused imports
2020-11-18 12:43:46 +10:00
Damien Elmes
bd0919b7f1
update pylib ngettext references
2020-11-18 09:12:25 +10:00
Damien Elmes
346ec6880e
drop i18n references in old stats
2020-11-18 09:12:03 +10:00
Damien Elmes
2feddb3d70
update temporary val="%s" references to standard ftl
2020-11-17 22:00:44 +10:00
Damien Elmes
1781e83252
merge pylib references
2020-11-17 19:23:06 +10:00
Damien Elmes
83cbe0d412
map gettext strings to keys/modules for ftl conversion
2020-11-17 14:11:09 +10:00
RumovZ
66241f642a
Update frontend test to new escape handling
2020-11-15 09:39:10 +01:00
Damien Elmes
ad5cbf195f
use full path in backend_pb2 import
2020-11-13 14:21:21 +10:00
Damien Elmes
a4af59fc4d
format_fix -> format; rename svelte-check for consistency
2020-11-12 20:19:32 +10:00
Damien Elmes
c1e154e3ad
update Python deps
2020-11-12 20:03:41 +10:00
Damien Elmes
dc9026e9d7
orjson was missing from dep list; drop 32 bit compat
2020-11-12 20:03:41 +10:00
Damien Elmes
db24dcf9a7
add coding specifier to anki/__init__.py
...
older gettext versions will complain otherwise (was breaking Windows CI)
2020-11-11 21:51:11 +10:00
Damien Elmes
593e9d4e7b
Merge pull request #817 from cecini/formatcheck
...
Update mypy and black format check to python version 3.8
2020-11-11 21:36:32 +10:00
Damien Elmes
c62e6e61c2
update i18n scripts
...
- export updated .po files for consumption
- add a script to pull and push translations
2020-11-11 21:08:06 +10:00
cecini
28abd41925
Update mypy and black format check to python version 3.8
2020-11-11 09:24:28 +00:00
Damien Elmes
f8d402ee70
fix error exporting v2 collection when translations don't match
...
https://forums.ankiweb.net/t/utf8-error-in-importing-deck/4430/13
2020-11-11 15:42:08 +10:00
Damien Elmes
ec74cf6730
handle packaged pylib buildinfo.txt; drop aqt buildinfo
2020-11-11 10:33:49 +10:00
Damien Elmes
8147c9996a
Merge pull request #793 from nwwt/object-audio-tags-support
...
Audio & object tag support
2020-11-11 10:33:31 +10:00
Andreas Reis
81d6d21ae3
cleanup / renames
...
・ soundRegexps → sound_regexps
・ htmlRegexps → html_media_regexps
・ HTML_TAGS → HTML_MEDIA_TAGS
・ escapeImages → escape_media_filenames + alias
・ strip_html_preserving_image_filenames → strip_html_preserving_media_filenames
2020-11-10 14:53:04 +01:00
ianki
28ad68d490
Add hooks for filtering media.
2020-11-09 02:12:23 -08:00
Damien Elmes
338836ebb9
cleanups
2020-11-05 11:21:13 +10:00
Damien Elmes
ad809943bf
fix backend_pb2 race
2020-11-05 11:02:40 +10:00
Damien Elmes
507a17b9e0
unused import
2020-11-04 21:04:42 +10:00
Damien Elmes
e4ba941cf1
move aqt_data into source folder; implement wheel building
2020-11-04 12:14:03 +10:00
Damien Elmes
f0e3d29979
switch to the stable Python ABI
...
Should allow the library to be imported in both Python 3.8+3.9.
2020-11-03 20:29:07 +10:00
Alan Du
3d68b22962
Update to PyO3 0.12
...
+ cargo raze by Damien
2020-11-02 18:38:34 +10:00
Damien Elmes
db0e0e78f8
update cargo deps; add script to copy them from rslib/
2020-11-02 18:17:26 +10:00
Damien Elmes
7c27c4b9a0
move backend.proto into rslib/
2020-11-02 16:28:31 +10:00
Damien Elmes
a7f403f0b0
rspy -> pylib/rsbridge
2020-11-02 15:21:12 +10:00
Damien Elmes
f9171eb3d3
remove old makefiles
2020-11-01 14:41:01 +10:00
Damien Elmes
ce3b08ac58
initial Bazel conversion
...
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:
- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00
Andreas Reis
c77ac81e9d
Add audio & object tags to media check
...
Makes the media check recognize files in <audio> and <object> tags as used.
They've been observed/supported by the WebView (checked: Anki, AnkiDroid) since just about forever already and are extremely useful if one knows a thing about web dev.
2020-10-25 13:09:57 +01:00
Arthur Milchior
7287b295f4
NF: uses consts and update comment according to code
2020-10-15 08:22:23 +02:00
Damien Elmes
597b81ebeb
Merge pull request #782 from johan456789/patch-1
...
fix outdated help site
2020-10-12 12:15:46 +10:00
Damien Elmes
909367efc1
fixes for latest mypy
2020-10-10 19:02:59 +10:00
johan456789
7130a21e8d
fix outdated help site
2020-10-07 19:38:49 +08:00
Damien Elmes
2ed1507162
bump version
2020-10-02 10:22:21 +10:00
Arthur Milchior
fa13c0cc20
NF: uses consts in col
2020-09-27 09:01:47 +02:00
Damien Elmes
1a619073d7
bump version
2020-09-24 10:52:24 +10:00
Arthur Milchior
b322e6d5f2
NF: remove _changedGuids
...
Nothing is ever added to the map.
That was a bug detected by lint in ankidroid
2020-09-21 06:02:10 +02:00
Damien Elmes
28b5c6c107
small learning steps were being stored as a float
...
https://forums.ankiweb.net/t/bug-with-fractional-learning-intervals/3524/5
2020-09-20 10:29:39 +10:00
Damien Elmes
bc60d233e5
rebuild_filtered_deck() and new_filtered()
2020-09-03 18:02:47 +10:00
Damien Elmes
6f7f5686e8
empty_filtered_deck()
2020-09-03 17:43:07 +10:00
Damien Elmes
f32d773e25
set_deck()
2020-09-03 17:42:46 +10:00
Damien Elmes
7c169daa95
move card sorting and resetting to backend
2020-09-03 15:54:15 +10:00
Damien Elmes
366c5c4774
log manual reschedule, but ignore the log entry in the stats
2020-09-02 17:56:23 +10:00
Damien Elmes
31b7d7d645
move reschedCards() to backend
2020-09-02 17:56:23 +10:00
Damien Elmes
396081d329
move filtered deck empty/fill to backend
...
emptying of individual card ids still to be done
2020-09-02 17:56:23 +10:00
Damien Elmes
0f6840596b
fix night mode on old graphs
2020-09-02 17:56:12 +10:00
Damien Elmes
7f42500e53
rename some card+note fields in backend
2020-09-01 10:24:38 +10:00
Damien Elmes
9f51347e1e
move bury/suspend into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
a8f84c1264
formatting fixes for latest black
2020-09-01 10:24:38 +10:00
Damien Elmes
988b3c00c1
move unbury/unsuspend routines into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
999b659c3a
reimplement congrats screen in Rust+Typescript
2020-09-01 10:24:38 +10:00
Damien Elmes
8ad734afc5
add missing pylint/isort deps
2020-08-31 14:07:04 +10:00
Damien Elmes
8729edffbb
update to latest black
2020-08-31 13:29:28 +10:00
Damien Elmes
aeca369c9b
update to latest isort, pylint and pytest
2020-08-31 12:05:36 +10:00
Damien Elmes
204db71586
fix new pylint raise-missing-from lint
2020-08-31 12:04:14 +10:00
Damien Elmes
f3c6d565b0
bump version
2020-08-31 11:07:54 +10:00
Damien Elmes
7cfeb6cbb3
check if we need to unbury at the start of the sync process
...
https://forums.ankiweb.net/t/bug-buried-cards-in-filtered-decks-not-being-unburied-next-day/2541/24
2020-08-28 21:09:07 +10:00
Damien Elmes
864864f650
fix next learn message overestimating delay
...
https://forums.ankiweb.net/t/bug-with-short-intervals-in-anki-2-1-scheduler/2678
2020-08-27 09:35:31 +10:00
Damien Elmes
31f011b3a5
fix description in export screen (thanks to ANH)
...
https://forums.ankiweb.net/t/anki-2-1-31-exporting-display-bug/2669/3
2020-08-26 08:33:35 +10:00
Damien Elmes
2f6d816cdc
bump version
2020-08-26 08:05:45 +10:00
Damien Elmes
58c8609332
bump version
2020-08-24 11:28:22 +10:00
Damien Elmes
9ae45ecea2
revlog entry should not be deleted when undoing preview card
...
The plan is to add a revlog entry when previewing in the future; this
is just a temporary fix.
2020-08-19 16:44:06 +10:00
Arthur Milchior
110f4c664f
Any removed
2020-08-12 01:37:21 +02:00
Arthur Milchior
a74601a0f0
NF: childMapNode
2020-08-12 00:42:42 +02:00
Damien Elmes
4629dd38fb
bump version
2020-08-09 13:44:59 +10:00
Damien Elmes
fa9aa82830
previous fs encoding test didn't catch things like latin-1
...
https://forums.ankiweb.net/t/unicodeencodeerror-when-syncing/1746
2020-08-03 11:29:07 +10:00
Damien Elmes
02c7a0e339
enable strict equality checks in mypy
...
Without it, the following code reports no problems:
def foo() -> int:
return 5
print(foo == 5)
2020-08-03 10:26:40 +10:00
Damien Elmes
1902e839e3
fix missing translations in export screen
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
cecdebc70b
pin pytest due to pylint issue
2020-07-29 14:52:45 +10:00
Matt Krump
d4511e3287
Turn on check_untyped_defs for aqt.exporting
2020-07-28 18:42:22 -06:00
Damien Elmes
d3653ab6d5
bump version
2020-07-28 12:59:56 +10:00
Damien Elmes
39272c436e
force old graphs to use ltr
...
otherwise the axis labels are way off
https://forums.ankiweb.net/t/anki-2-1-29-beta/1220/8
2020-07-22 14:30:56 +10:00
Damien Elmes
7e78d12b99
bump version
2020-07-21 15:54:14 +10:00
Damien Elmes
876f474b7d
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
15bc3c4033
Merge pull request #698 from Arthur-Milchior/remove_clear_overdue
...
remove _clearOverdue
2020-07-21 10:27:04 +10:00
Arthur Milchior
e40c3b4254
remove unused variable
2020-07-20 10:17:23 +02:00
Arthur Milchior
d686aeccad
duplicate assignment removed
2020-07-20 06:47:47 +02:00
Arthur Milchior
d983feaefe
typo
2020-07-20 06:28:36 +02:00
Arthur Milchior
b4c32db460
remove useless variable cram
2020-07-20 06:24:42 +02:00
Arthur Milchior
4885404afb
remove _clearOverdue
...
This member is never read
2020-07-20 05:45:18 +02:00
Damien Elmes
3ca4a882a1
Merge pull request #692 from Arthur-Milchior/remove_useles_variables
...
Remove useless variables
2020-07-20 11:35:40 +10:00
Damien Elmes
f1202efe5f
Merge pull request #697 from Arthur-Milchior/typos
...
Comment typo
2020-07-20 11:34:02 +10:00
Damien Elmes
bc28a40e50
Merge pull request #696 from Arthur-Milchior/note_to_add_note
...
For some reason, add_note were assigned to a unused variable
2020-07-20 11:32:55 +10:00
Damien Elmes
6073644ed4
Merge pull request #695 from Arthur-Milchior/note->field
...
replace "note" by "field"
2020-07-20 11:32:30 +10:00
Arthur Milchior
8253ee59bc
Comment typo
2020-07-19 11:24:58 +02:00
Arthur Milchior
57aac57e93
For some reason, add_note were assigned to a unused variable
...
I remove it for clarity
2020-07-19 10:58:40 +02:00
Arthur Milchior
83fac5db14
replace "note" by "field"
...
My bad. In one case `f` did represent "field" and not "fact"
2020-07-19 08:24:43 +02:00
Arthur Milchior
d09cf43bab
Uses constant in tests
2020-07-19 05:34:22 +02:00
Arthur Milchior
d9fe9297ba
d2->col2
2020-07-17 17:55:57 +02:00
Arthur Milchior
2c5001a0e8
tmp->col in tests
2020-07-17 17:37:17 +02:00
Arthur Milchior
b553d32db2
f4->note4
2020-07-17 17:34:39 +02:00
Arthur Milchior
7e8c748c09
f3->note3
2020-07-17 17:33:58 +02:00
Arthur Milchior
5a7bda27c8
f->n in id
2020-07-17 17:30:29 +02:00
Arthur Milchior
a81d7544f6
NF: deck2->col2
2020-07-17 17:27:40 +02:00
Arthur Milchior
71afb2b4d3
Remove useless variables
2020-07-17 08:38:48 +02:00
Arthur Milchior
83c778ea53
gn->deckn in test
...
Obtained by
```
sed -i "s/\bg1\b/deck1/g" pylib/tests/*py qt/tests/*py
sed -i "s/\bg2\b/deck2/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:58:32 +02:00
Arthur Milchior
14421e107c
d->col in tests
...
obtained by
```
sed -i "s/\bd\b/col/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:58:32 +02:00
Arthur Milchior
c918d794c2
deck->col in tests
...
Obtained by
```
sed -i "s/\bdeck\b/col/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:50:46 +02:00
Arthur Milchior
9d313ea6b3
f2->note2 in test
...
Obtained by
```
sed -i "s/\bf2\b/note2/g" pylib/tests/*py qt/tests/*py
```
2020-07-17 06:47:44 +02:00
Arthur Milchior
d4b2982fc2
f->note in test
...
Obtained by sed -i "s/\bf\b/note/g" pylib/tests/*py qt/tests/*py
2020-07-17 06:47:44 +02:00
Arthur Milchior
1f51a93fff
note->n
...
Next commit will transform f into note, and this lead to a variable clash here
2020-07-17 06:08:33 +02:00
Damien Elmes
3a75161778
fix deck tree with a day delta, and support arbitrary timestamps
2020-07-06 19:16:03 +10:00
Damien Elmes
4e7ae0969f
formatting
2020-07-01 14:01:24 +10:00
Damien Elmes
e9eb7c0e9b
hack around future unburied date
...
We want to avoid unburied != self.today, because the unburied time
is synchronized as part of the collection at the moment, and we don't
want a client with an older unburied time that was modified more
recently to cause cards to be unburied twice - so we only unbury
if today is more than 7 days earlier than the last unbury time.
Unsure what caused these users to end up in that state in the first
place:
https://anki.tenderapp.com/discussions/ankidesktop/41335-cards-remain-buried-forever-unless-manually-unburied
2020-07-01 13:12:45 +10:00
Damien Elmes
1e9901e9bd
experiment with exposing raw card/revlog data to frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
df8be64da3
protobuf package should be in PascalCase
2020-06-29 15:48:00 +10:00
Damien Elmes
597830942d
fix media not working after full sync
2020-06-24 09:52:02 +10:00
Damien Elmes
5da6b010c9
drop yellow colour in "filtered" for now
...
It's difficult to read against a light background
2020-06-16 16:39:07 +10:00
Damien Elmes
f5694a7e4a
migrate card stats to backend
...
Currently this renders the HTML directly like the previous Python
implementation - doing it in JS would probably make more sense in the
future.
2020-06-15 17:22:16 +10:00
Damien Elmes
a6bc2b88cc
fix lint issues with latest mypy_protobuf
2020-06-14 15:38:43 +10:00
Damien Elmes
07874f8328
handle db errors the same way as other backend requests
2020-06-12 20:39:02 +10:00
Damien Elmes
9e867189bd
update unit test for leech change
2020-06-09 14:12:34 +10:00
Damien Elmes
cafe5cbbc1
strip out \r on export
...
(private post)
https://anki.tenderapp.com/discussions/ankidesktop/42315-bug-report-exporting-selected-cards-in-browser-issue
2020-06-09 12:56:16 +10:00
Damien Elmes
682358b594
fix error when importing v2 apkg
...
https://anki.tenderapp.com/discussions/ankidesktop/42070-anki-closes-without-warning-when-importing-conflicting-shared-deck
2020-06-09 12:06:52 +10:00
Damien Elmes
73eef285f0
fix audio being included in FrontSide
2020-06-09 08:16:03 +10:00
Damien Elmes
75471224fa
add progress to db check
2020-06-08 21:07:36 +10:00
Damien Elmes
9cf159cea4
Merge pull request #658 from BlueGreenMagick/media-type
...
add type hint for media dir
2020-06-08 11:31:01 +10:00
Damien Elmes
d970dda3c9
fix legacy deckDueTree()
2020-06-08 11:12:24 +10:00
BlueGreenMagick
5e22627462
add type hint for media dir
2020-06-07 10:35:48 +09:00
Damien Elmes
e74e5c604b
add daily count updating to backend
2020-06-05 19:49:53 +10:00
Damien Elmes
55f8b87548
support generating a due tree for a different date
2020-06-05 09:38:31 +10:00
Damien Elmes
c5e65d02e1
add note/card removal to backend
2020-06-04 18:21:04 +10:00
Damien Elmes
80987a34ab
add .count() to hooks, and list->sequence in note deletion
2020-06-04 18:20:03 +10:00
Damien Elmes
0334ce075c
fix duplicate/empty check
2020-06-02 17:34:34 +10:00
Damien Elmes
d7a2e78c0b
change sync label to indicate sync state
...
- blue for normal sync, red for full sync required
- refactor status fetching code so we don't hold a collection lock
during the network request, which slows things down
- fix sync spinner restarting when returning to deck list
2020-06-02 13:23:01 +10:00
Damien Elmes
e534ae9aab
"fix" v1 scheduler breaking after burySiblings change
2020-06-01 19:44:25 +10:00
Damien Elmes
ad3082d1c8
handle aborting normal sync
...
- Use a separate abort handle, as the media sync is running
in the background and we need to be able to target them separately.
The current progress handling is going to need a rethink if we introduce
any other background tasks in the future.
- Roll back the transaction when interrupting.
2020-06-01 13:57:10 +10:00
Damien Elmes
da1e0527ca
report normal sync progress
...
Also:
- provide a way for the progress handler to skip the throttling so that
we can ensure progress is updated at the end of a stage
- show 'checking' at the end of full sync
2020-06-01 13:57:10 +10:00
Damien Elmes
854c524ecf
fix mtime being bumped in .reset()
2020-06-01 13:57:10 +10:00
Damien Elmes
0e9bd3fa1b
fix de-auth when no media DB set up
2020-06-01 13:57:10 +10:00
Damien Elmes
0787381a99
login/full up/full down plugged in
2020-06-01 13:57:10 +10:00
Damien Elmes
aaed0464e5
rework progress handling
...
- client now polls status instead of backend pushing it
- supports multiple threads
- update throttling happens in one place
2020-06-01 13:57:10 +10:00
Damien Elmes
9a4d9fdec0
tidy up sibling burying
...
closes #649
2020-06-01 13:48:15 +10:00
Damien Elmes
f8e577367b
handle images served from directory + svg content type
...
https://anki.tenderapp.com/discussions/ankidesktop/41974-win-linux-when-pasting-some-html-i-get-error-in-_run_command-ankirsbackendioerror-ioerror
2020-06-01 13:40:17 +10:00
Damien Elmes
1a88b16f07
Merge pull request #643 from evandroforks/add_repr_functions
...
Added __repr__ functions to common objects
2020-06-01 13:29:21 +10:00
evandrocoan
1d18d5dd70
Say which card failed with an exception
2020-05-31 19:41:18 -03:00
evandrocoan
3d2dcc8cec
Added super().__repr__() to new __repr__() calls
2020-05-31 19:39:19 -03:00
evandrocoan
45cb996cc9
Added __repr__ functions to common objects
2020-05-31 19:39:19 -03:00
Damien Elmes
9e5dad86a8
fix typechecking breaking with latest mypy_protobuf
...
the change that caused it:
https://github.com/dropbox/mypy-protobuf/issues/118
This is more awkward to handle now, as the types are only available
at type-checking time. Python's static typing is such a mess :-(
2020-05-27 09:14:02 +10:00
Damien Elmes
3d6c478f8a
avoid printing the original exception bytes
...
Prevents the "while processing this exception, another exception
occurred" message
2020-05-25 14:28:37 +10:00
Damien Elmes
004733f4b3
move generated methods into separate, gitignored file
2020-05-24 20:41:53 +10:00
Damien Elmes
91e3256e6a
move dupe check to backend
2020-05-24 19:48:56 +10:00
Damien Elmes
e9fea26d1c
use keyword args for calls with more than one argument
2020-05-24 09:12:47 +10:00
Damien Elmes
bbcc566e6d
migrate the remaining methods
2020-05-24 08:36:50 +10:00
Damien Elmes
93f18c14d4
migrate more scheduling/media/etc
...
almost there
2020-05-23 21:34:19 +10:00
Damien Elmes
8b93a0c19d
migrate notetypes, update GIL list
2020-05-23 20:43:55 +10:00
Damien Elmes
35489d5fa7
add some more newtypes to the RPC defs
2020-05-23 16:58:01 +10:00
Damien Elmes
8df2ab65fb
migrate cards and notes
2020-05-23 16:19:48 +10:00
Damien Elmes
32a071cf79
migrate decks and dconf methods
2020-05-23 15:09:16 +10:00
Damien Elmes
927ed25b02
more methods
2020-05-23 14:01:36 +10:00
Damien Elmes
d57ded706f
migrate more methods to service
2020-05-22 22:09:33 +10:00
Damien Elmes
36024ed086
start reworking protobuf handling
...
Will allow us to cut down on boilerplate by automatically generating
code from RPC service definitions
2020-05-22 20:56:15 +10:00
Damien Elmes
7676748e6c
fix deletion of decks; allow deleting cards from default
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save#comment_48353232
2020-05-22 11:24:56 +10:00
Damien Elmes
d31f2d8c23
move deck/notetype update hooks to gui
...
We need to migrate away from firing hooks in libanki, since libanki
methods may be running on a background thread, and hook consumers
typically expect the code to run in the main thread. We could document
it, but it would frequently be forgotten about, and could lead to
crashes.
https://anki.tenderapp.com/discussions/ankidesktop/41748-qobject-cannot-create-children-for-a-parent-that-is-in-a-different-thread-when-hitting-the-save-button-on-clayoutpy-window
2020-05-22 10:47:14 +10:00
Damien Elmes
d3557f380d
can't use _card.note_type() in clayout
2020-05-22 09:58:58 +10:00
Damien Elmes
ede0bb5420
add back most of .fields() to avoid breaking add-ons
2020-05-21 12:08:51 +10:00
Damien Elmes
2b46d4c73c
use longer delay in test_timing()
...
was intermittently failing in slow Windows CI
2020-05-21 09:33:49 +10:00
evandrocoan
04dc65ef78
Fixed HttpClient session not being closed
2020-05-20 19:20:41 -03:00
Damien Elmes
99462e39b8
fix deck age being used instead of collection
...
https://anki.tenderapp.com/discussions/ankidesktop/41637-bug-in-statistics
2020-05-20 19:46:01 +10:00
Damien Elmes
b3e8c63d65
update missed storage._Collection references
2020-05-20 19:45:46 +10:00
Damien Elmes
068cc43095
storage->collection
2020-05-20 17:58:28 +10:00
Damien Elmes
4f5fc9a63d
move storage logic into collection.py; fix export bug
...
https://anki.tenderapp.com/discussions/ankidesktop/41495-using-file-export-closes-the-collection-on-mwcoldb-if-the-browser-window-is-open
2020-05-20 17:43:34 +10:00
Damien Elmes
3f8a3afb78
fix extending limits in custom study
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save
2020-05-20 14:13:40 +10:00
Damien Elmes
390b358e3f
Merge pull request #613 from evandroforks/add_missing_file_descriptors_close
...
Add missing close file descriptors using context managers
2020-05-19 14:39:07 +10:00
Damien Elmes
1cbb1bdbd0
catch protobuf error as well
...
Sad that we can't exhaustively match protobuf oneofs in
Python :-(
2020-05-19 13:10:20 +10:00
evandrocoan
c1c2e4d4e0
Simplified csvfile.py super call __del__ call
2020-05-18 16:20:33 -03:00
evandrocoan
1faf7450e4
Explicitly close the importer file descriptor
...
https://github.com/ankitects/anki/pull 613
2020-05-18 15:54:20 -03:00
evandrocoan
4fe92bfc6b
Add missing close file descriptors using context managers
2020-05-18 15:54:20 -03:00
Damien Elmes
3e156fdb49
bump version
2020-05-18 12:50:20 +10:00
Damien Elmes
4438be2c8d
protobuf tidyups
2020-05-18 09:26:14 +10:00
Damien Elmes
ef88cb59e6
fix syncing
2020-05-17 20:52:02 +10:00
Damien Elmes
94722c4fbb
minor tidyups in decks.py
2020-05-17 20:13:29 +10:00
Damien Elmes
e6379bc4d0
update current note type in backend
2020-05-17 20:01:16 +10:00
Damien Elmes
b676522e5c
fix renaming corner cases and decks.update()
...
- .update() should update a single deck and preserve usn by default,
as that's what existing code expects
- decks are automatically renamed when they conflict with an existing
name
2020-05-17 19:07:15 +10:00
Damien Elmes
2c19e171ed
handle deletion of default deck in backend; use + instead of _
2020-05-17 15:22:19 +10:00
Damien Elmes
6728da62c5
fix shared deck conf warning
2020-05-17 14:37:59 +10:00
Damien Elmes
336349d8d1
update before_upload()
2020-05-17 14:13:21 +10:00
Damien Elmes
a682865169
move deck config to protobuf
2020-05-17 13:28:41 +10:00
Damien Elmes
e85911c4e4
add option to limit deck tree counts to a particular node
2020-05-17 08:38:49 +10:00
Damien Elmes
ab97eaaf15
use deck tree for new/review count calculation
...
- wins back the performance lost by the decks and dconf not being
in memory, and the overhead of serializing data for DB calls
- card counts are no longer capped to 1000
- learn counts are currently still calculated separately - can't merge
v1 counts without changing the existing behaviour
- partially rendering the tree may yield more savings
2020-05-16 20:28:03 +10:00
Damien Elmes
8a42896fb8
speed up children() and add deck_and_child_ids()
2020-05-16 15:40:07 +10:00
Damien Elmes
07ee7d6f74
rework and merge updateCutoff
...
- the old "mutate but don't save" approach to resetting the "done today"
counts no longer works, and was inefficient anyway - now we just check
the day when returning the count
- remove separate implementation for v1 scheduler
This is a stop-gap solution - a bigger refactor will need to wait
until the deck/note type changes have stabilized.
2020-05-16 15:14:16 +10:00
Damien Elmes
c138917773
formatting
2020-05-16 14:59:47 +10:00
Damien Elmes
b3205e5d5d
only update active when selecting deck/resetting
...
We were previously doing this every time a card was answered.
2020-05-16 14:57:46 +10:00
Damien Elmes
f76b82d8ae
add find_deck_in_tree()
2020-05-16 13:05:20 +10:00
Damien Elmes
a249d61bf8
update unit tests to use deck_due_tree()
2020-05-16 12:10:40 +10:00
Damien Elmes
c60229779c
switch to new deck tree in deck browser
...
Saves us having to look up collapsed/filtered as we render, and gives
us type completion.
2020-05-16 10:52:14 +10:00
Damien Elmes
7de2fa5b58
remove unused default(Dynamic)Deck
2020-05-15 21:47:33 +10:00
Damien Elmes
cbfc9d5a87
handle default deck and filtered deck suppression in the backend
2020-05-15 21:21:10 +10:00
Damien Elmes
8a063a8a8c
remove unused deckDueList() and associated tree code
...
The progress bar add-ons appear to be the only active users of it;
they can switch their old code from iterating over the list to
simply locating the selected deck in deckDueTree(), as its counts should
summarize all the child decks.
2020-05-15 18:37:12 +10:00
Damien Elmes
a5dc561933
reuse stock basic type for default field/notetype/etc
...
Could add extra methods in the backend to allocate these in the
future, but as this is not a hot path, this should do for now.
2020-05-15 17:35:00 +10:00
Damien Elmes
dc6471ad40
fetch stock notetypes from backend
2020-05-15 17:08:24 +10:00
Damien Elmes
fd9fc8701c
add back card deletion count
...
cheaper to look up now that there's an index on notes.mid
2020-05-15 15:28:07 +10:00
Damien Elmes
4c0ebb9a03
<= in modified_after_begin for unit tests
2020-05-15 14:24:59 +10:00
Damien Elmes
6c4d6ad933
track changes in fields dialog as well
...
And avoid bumping schema until user actually saves, but warn at
start.
2020-05-15 13:59:44 +10:00
Damien Elmes
120dd7fc03
fetch/set remaining collection properties as required
2020-05-15 13:33:37 +10:00
Damien Elmes
8012d4ec69
fix exporting bug
...
can't/shouldn't pop up confirmation message on export
2020-05-15 11:03:34 +10:00
Damien Elmes
6dd31341f8
add "fill empty" checkbox
2020-05-14 20:58:45 +10:00
Damien Elmes
b2b33d9ad8
start reworking card layout screen
...
- front/back/css shown in tabs
- front/back preview switchable; only one webview needs to be loaded
- dropdown to select cloze number in preview
- search box to search in front/back/css
2020-05-14 15:24:29 +10:00
Damien Elmes
4a00ad075c
drop availOrds(), and use backend for getting cloze numbers
2020-05-14 12:14:00 +10:00
Damien Elmes
b59ea2d36f
remove availOrds() check in importer
...
Like adding individual cards, we now support importing material even
if it wouldn't generate any cards, and the old availOrds check can't
handle negated conditionals.
2020-05-14 10:27:54 +10:00
Damien Elmes
b08613e37d
remove obsolete preview code
2020-05-14 09:22:53 +10:00
Damien Elmes
257e893d95
update the card layout screen
...
- changes are now committed in bulk when closing the dialog,
and can be canceled
- it's not necessary to save the note to the database to preview it
- duplicate fields are now shown as duplicates in the top list
- redraw preview more quickly
- use + instead of _ when deduplicating names, as the latter is a
glob character
2020-05-13 17:24:49 +10:00
Damien Elmes
4815010da0
don't hide static template text when card is empty
2020-05-13 11:17:44 +10:00
Damien Elmes
14c0a5891b
fetch template and note fields in backend during normal card render
...
Saves having to serialize the note fields and q/a templates, which
is particularly a win when rendering question/answer in the browse
screen.
Also some work towards being able to preview notes without having to
commit them to the database.
2020-05-13 10:38:49 +10:00
Damien Elmes
21ac2c14a7
handle scheduling preferences in the backend
2020-05-12 21:13:34 +10:00
Damien Elmes
2eaa759478
fetch timing_today() params in backend
2020-05-12 21:13:34 +10:00
Damien Elmes
1018204e4f
switch server back into a bool and rely on config
2020-05-12 21:13:34 +10:00
Damien Elmes
befa66fb27
fix default rollover
2020-05-12 21:13:34 +10:00
Damien Elmes
d7f9bccd1e
rewrite DB check
...
- notes with wrong field count are now recovered instead of
being deleted
- notes with missing note types are now recovered
- notes with missing cards are now recovered
- recover_missing_deck() still needs implementing
- checks required
2020-05-12 21:13:34 +10:00
Damien Elmes
667f9e6554
bulk tag add/remove/update; canonify on note save
...
also remove the tag list updated hook - we'll need a better solution in
the future than having the library code call back into the GUI code
2020-05-12 21:13:34 +10:00
Damien Elmes
0a87b1ef2c
support disabling unicode normalization in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
85528cabc5
use backend for genCards() and updateFieldCache()
2020-05-12 21:13:34 +10:00
Damien Elmes
866231f661
add pep8 name for findReplace
2020-05-12 21:13:34 +10:00
Damien Elmes
2268a9c241
fix tag saving in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
8c04718541
update find&replace in browser
...
sadly the UI still stutters on large selections - the calls
to get the selected rows from Qt are really slow.
2020-05-12 21:13:34 +10:00
Damien Elmes
ad1c519d1c
move find&replace to backend
2020-05-12 21:13:34 +10:00
Damien Elmes
2641862b56
update fields and models diags
...
- field changes are now applied when user closes dialog with save
button, in bulk
- models diag now fetches note type and saves it as required, instead
of holding on top a copy that can grow stale as changes are made in
subdialogs
- both dialogs now perform operations in the backend
- note.model() now fetches the note type on the fly, instead of
holding on to a copy that may become stale
2020-05-12 21:13:34 +10:00
Damien Elmes
2d0a6283e4
add an index on notes(mid) so we can avoid the tablescan
2020-05-12 21:13:34 +10:00
Damien Elmes
ee97637cab
release GIL on notetype save/delete
2020-05-12 21:13:34 +10:00
Damien Elmes
0c4eb401f7
remove invalidated part of test_review_limits
...
Previously if the sum of child counts was above the parent's limit,
the deck tree would show a parent count above the parent's limit, and
clicking on the parent would show a lower count. The new deck tree
code never shows a parent count above the parent's limit, so this
part of the test is no longer valid.
2020-05-12 21:13:33 +10:00
Damien Elmes
02ea986f19
run black
2020-05-12 21:13:33 +10:00
Damien Elmes
7d14008216
remove dconf cache
2020-05-12 21:13:33 +10:00
Damien Elmes
7ef72aba04
use the backend for the deck due tree
...
- approx 3x faster on a large test deck
- counts are no longer capped to 1000 in the tree
2020-05-12 21:13:33 +10:00
Damien Elmes
267be1b050
add missing decks in backend
...
- need to compare parents with unicode case folding
- duplicate check enforced by the DB
2020-05-12 21:13:33 +10:00
Damien Elmes
e46dd4e41f
remove pybackend.py
2020-05-12 21:13:33 +10:00
Damien Elmes
13d23cd24b
speed up browser load by rendering deck tree in Rust and skipping counts
2020-05-12 21:13:33 +10:00
Damien Elmes
24ef0cc6f1
add separate decks table, and start on moving deck handling to Rust
...
The Python tests are passing, but there are still a number of issues
to work through, and the table/protobuf schema is not yet finalized.
2020-05-12 21:13:33 +10:00
Damien Elmes
2a17f99eaa
remove unused _updateRequired and associated code
2020-05-12 21:13:33 +10:00
Damien Elmes
d1cc4684d2
hook the empty cards code up to the GUI
2020-05-12 21:13:33 +10:00
Damien Elmes
6350e18680
hook up new note and note type handling
...
- notetypes are fetched from the DB as needed, and cached in Python
- handle note type changes in the backend. Multiple operations can now
be performed in one go, but this is not currently exposed in the GUI.
- extra methods to grab sorted note type names quickly, and fetch by
name
- col.models.save() without a provided notetype is now a no-op
- note loading/saving handled in the backend
- notes with no valid cards can now be added
- templates can now be deleted even if they would previously
orphan notes
a number of fixmes have been left in notes.py and models.py
2020-05-12 21:13:33 +10:00
Damien Elmes
2e84604903
add an extra second to a unit test
2020-05-12 21:13:33 +10:00
Damien Elmes
4566a35085
expose stock notetypes
2020-05-12 21:13:33 +10:00
Damien Elmes
f2e9146e52
drop legacy newBury option
2020-05-12 21:13:33 +10:00
Damien Elmes
65f12eeda2
add stock note types in backend
2020-05-12 21:13:33 +10:00
Damien Elmes
27d2fb148a
bump version
2020-05-11 19:28:17 +10:00
Damien Elmes
cad3d9e74d
python formatting+lints
2020-05-08 17:30:27 +10:00
Damien Elmes
0cb4bb7a78
bundle socks
...
https://anki.tenderapp.com/discussions/ankidesktop/39801-sync-error
2020-05-08 15:26:19 +10:00
Damien Elmes
94222e8911
fix due of preview cards being reset
...
https://anki.tenderapp.com/discussions/ankidesktop/41243-undo-function-causes-error-in-filtered-decks
2020-05-08 15:25:54 +10:00
Damien Elmes
0160c80f67
fix error undoing card in preview queue
...
https://anki.tenderapp.com/discussions/ankidesktop/41243-undo-function-causes-error-in-filtered-decks
2020-05-08 15:25:38 +10:00
Damien Elmes
87fd18a3a9
fix v1 log appearing next to export
2020-05-05 16:15:49 +10:00
Damien Elmes
06a69a72be
fix unnecessary spaces being added to notes with empty tags
2020-05-04 21:53:22 +10:00
Damien Elmes
c2223610f1
bump version
2020-05-02 10:22:00 +10:00
evandrocoan
02c5091d1b
Stop requiring ankirspy while running on development because
...
maturin develop hides the package from pip
https://github.com/PyO3/maturin/issues 304
2020-04-30 23:37:19 -03:00
evandrocoan
3dfe228b3e
Add missing aqt and anki modules dependency requirements
2020-04-30 17:30:22 -03:00
Damien Elmes
cffe9fb7bd
if conf points to an invalid configuration, fall back on default
2020-04-30 11:45:13 +10:00
Damien Elmes
65a9eaa418
expose clock hack via env var
...
closes #594
2020-04-30 09:33:02 +10:00
Damien Elmes
fb280937d6
fix tags with missing leading/trailing spaces in DB check
2020-04-30 08:54:17 +10:00
Damien Elmes
39070abb89
drop type answer requirement special case
...
While it makes no sense to have the typing box on the front without
another non-empty field, "the front of this card is empty" when
a typing box is on the template seems to be confusing some users, so
it is clearer to show them the box.
2020-04-29 21:29:16 +10:00
Damien Elmes
91248aa8cf
bump version
2020-04-28 08:57:56 +10:00
Damien Elmes
d005dcc2bf
Merge pull request #587 from BlueGreenMagick/tags
...
remove unnecessary code
2020-04-27 19:25:42 +10:00
BlueGreenMagick
e070320cfa
remove unnecessary code
2020-04-27 10:05:38 +09:00
evandrocoan
e85c48298c
Fixed make clean rule not working on Windows
2020-04-26 03:02:02 -03:00
Damien Elmes
c9f18ba3d2
fix deleting deck configs
2020-04-20 13:23:05 +10:00
Damien Elmes
dd20337a85
don't write log files when exporting
2020-04-15 21:45:32 +10:00
Damien Elmes
f5f2782e3b
embed sort kind enum to avoid future namespace conflicts
2020-04-14 20:31:10 +10:00
Damien Elmes
826e8e4120
Revert "remove unused decks.count()"
...
This reverts commit dd790390db .
dd790390db
2020-04-13 19:26:12 +10:00
Damien Elmes
8dafa8bce5
move autoplay() into card
2020-04-13 09:04:30 +10:00
Damien Elmes
6bef493aa5
fix replay audio again, and decouple the code from the reviewer
2020-04-13 08:59:36 +10:00
Damien Elmes
96af559d67
set db mod flag if mtime changed by backend
2020-04-11 15:41:21 +10:00
Damien Elmes
46877dbe4e
document ankidev and remove sync changes
...
https://github.com/ankitects/anki/pull/548
2020-04-11 14:36:05 +10:00
Damien Elmes
dd790390db
remove unused decks.count()
2020-04-10 10:25:31 +10:00
Damien Elmes
0538d9b764
(de)serialize decks in backend
2020-04-09 12:41:59 +10:00
Damien Elmes
11bbb906a5
fix errorsAfterMidnight
2020-04-08 10:05:19 +10:00
Damien Elmes
bca49bd054
load/save note types in backend
...
This allows us to normalize bad data, and is the first step towards
splitting note types into separate tables.
2020-04-08 10:05:07 +10:00
Damien Elmes
f8f00f9d21
Merge pull request #543 from Arthur-Milchior/sort_according_to_path
...
Sort according to path
2020-04-07 14:44:53 +10:00
Damien Elmes
12e9293f60
avoid unnecessary work in 'make build'
2020-04-07 10:59:14 +10:00
Arthur Milchior
6e36bc5f2e
immediate_parent
2020-04-06 23:56:24 +02:00
Arthur Milchior
8290f9ff2a
immediate_parent_path
2020-04-06 23:55:17 +02:00
Arthur Milchior
d095b017e4
_basename to basename, since it's not private in use
2020-04-06 23:51:50 +02:00
Arthur Milchior
859178c113
_basename used where possible
2020-04-06 23:51:42 +02:00
Arthur Milchior
e6024d4d3d
replace _path by path (because it's not private here)
2020-04-06 23:50:43 +02:00
Arthur Milchior
8962194dcb
uses _path where possible
2020-04-06 23:50:37 +02:00
Arthur Milchior
7bef7ef8ec
Sort decks according to their paths
...
Currently it's sorted alphabetically. Because of this, "A::B" appears
between "A9" and "AA" in list of decks.
2020-04-06 22:49:25 +02:00
Arthur Milchior
b94f138989
make _path static
2020-04-06 22:45:30 +02:00
Damien Elmes
9ad6480959
hide deprecation warning triggered by supermemo test
2020-04-06 20:24:17 +10:00
Damien Elmes
26a30d95be
hide warning when running tests
2020-04-06 20:24:05 +10:00
Damien Elmes
d777abfa4a
emulate named args
2020-04-06 20:09:44 +10:00
Damien Elmes
913c5b9854
use bytes for deck config proto
2020-04-06 15:39:47 +10:00
Damien Elmes
6471adafcc
use bytes for config proto
2020-04-06 15:39:47 +10:00
Damien Elmes
915f741330
use a new file each time when testing graphs
2020-04-06 15:39:47 +10:00
Damien Elmes
b5022ad354
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Arthur Milchior
c837143d31
Remove useless recursion in DeckManager.rem
...
For any deck the children of it's children are its children. So
applying rem to children of children is useless and actually slightly
costly for deep subdecks
2020-04-05 11:33:23 +02:00
Damien Elmes
1834b65714
downgrade when writing dummy collection
2020-04-04 18:43:26 +10:00
Damien Elmes
3c7eabc51e
add flag to skip downgrade on collection close
...
Disabled for now; when enabled it will allow faster collection
open and close in the normal case, while continuing to downgrade
when exporting or doing a full sync.
Also, when downgrading is disabled, the journal mode is no longer
changed back to delete.
2020-04-04 17:21:45 +10:00
Damien Elmes
ac54f85840
update tag handling
...
- tag list stored in a separate DB table
- non-wildcard searches now do full unicode case folding
(eg tag:masse matches 'Maße')
- wildcard matches do simple unicode case folding
- some functions haven't been updated yet, so ascii folding will
continue to be used in some operations
2020-04-03 19:34:46 +10:00
Damien Elmes
07c414692e
preserve mtime/usn when syncing deck config, and add snake_case names
2020-04-03 19:34:46 +10:00
Damien Elmes
296ebd9c63
set col mod explicitly in decks.select()
2020-04-03 19:34:46 +10:00
Damien Elmes
96e1eca4bb
ensure pending deck/tag/note type changes flushed before searching
2020-04-03 19:34:46 +10:00
Damien Elmes
d7edbedac0
Merge pull request #535 from evandroforks/upload_wheels_to_pypi
...
Created the GitHub Actions step Upload to PyPi
2020-04-03 08:40:17 +10:00
evandrocoan
b3ed8ebfdb
Fixed double python version check for python_requires=">=3.7"
2020-04-02 12:31:12 -03:00
evandrocoan
30107ab09d
Created the GitHub Actions step Upload to PyPi to run only on
...
tagged releases of anki:
https://anki.tenderapp.com/discussions/ankidesktop/40025-anki-in-python-package-index
2020-04-02 02:57:34 -03:00
Damien Elmes
6beb2ff1e3
return the added card id instead of mutating the backend card object
2020-04-02 12:09:46 +10:00
Damien Elmes
7068f97e1f
make sure None is returned in no-such-card case
2020-04-02 11:29:40 +10:00
Damien Elmes
cbfc0207ec
tolerate string values in deck["conf"]
2020-04-01 19:36:40 +10:00
Damien Elmes
9c09d08152
remove defaultConf
2020-04-01 17:36:46 +10:00
Damien Elmes
284ee0860b
allow aborting a media sync while http req in flight
...
The progress handling code needs a rethink, as we now have two separate
ways to flag that the media sync should abort. In the future, it may
make sense to switch to polling the backend for progress, instead of
passing a callback in.
2020-04-01 09:49:25 +10:00
Damien Elmes
6482af7361
add a temporary cache to bring deck list performance back
2020-03-30 20:27:53 +10:00
Damien Elmes
cffe146397
split deck config into separate SQL table
...
- on collection load, the schema is upgraded to 12
- on collection close, the changes are reversed so older clients
can continue to open the collection
- in the future, we could potentially skip the reversal except
when exporting/doing a full sync
- the same approach should work for decks, note types and tags in the
future too
- the deck list code needs updating to cache the deck confs for the
life of the call
2020-03-30 20:01:16 +10:00
Damien Elmes
089a68eb43
move deck conf handling to backend
2020-03-30 14:39:46 +10:00
Damien Elmes
918ec2a5a0
explicitly save deck conf after mutating it
2020-03-30 12:27:52 +10:00
Damien Elmes
d41124343d
initial work on undo support
2020-03-29 17:52:16 +10:00
Damien Elmes
db3538aae3
add an extra second so slow CI server doesn't fail
2020-03-27 15:52:35 +10:00
Damien Elmes
36314f3b6f
Merge pull request #528 from evandroforks/create_actions_for_windows_macos
...
Create actions for Windows and Mac OS
2020-03-27 15:26:22 +10:00
Damien Elmes
fc846ac4e4
use add_card()
2020-03-27 15:11:07 +10:00
evandrocoan
f1fe0209f6
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
2020-03-26 19:31:01 -03:00
Damien Elmes
e28fdde984
handle mtime/usn bump in backend, and tweak integer sizes
2020-03-26 20:55:04 +10:00
Damien Elmes
369457a1c7
fix two cases where a float was being written into due
2020-03-26 19:05:18 +10:00
Damien Elmes
0510ab7c9c
update_card()
2020-03-26 18:54:20 +10:00
Damien Elmes
245a31a432
tweak code for mypy
2020-03-26 17:47:53 +10:00
Damien Elmes
b2fba4e1ff
use backend to get card
2020-03-26 17:47:43 +10:00
Damien Elmes
4d428f9fa8
high due numbers shouldn't force a full sync
2020-03-26 09:09:11 +10:00
evandrocoan
964cc1a11a
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
# .github/workflows/checks.yml
# Makefile
# pylib/Makefile
# qt/Makefile
# qt/tools/typecheck-setup.sh
# rspy/Makefile
2020-03-24 22:49:49 -03:00
Damien Elmes
1d819bd750
don't error when -l passes in language without _
2020-03-25 08:53:31 +10:00
Damien Elmes
da07298418
fix sync getting stuck in a loop when changes is a multiple of 250
2020-03-24 19:30:35 +10:00
Damien Elmes
83d1be8743
Merge pull request #510 from evandroforks/fix_tests_on_windows
...
Fix tests on windows
2020-03-24 15:33:02 +10:00
Damien Elmes
602d6b00c2
remove : check from dbproxy
2020-03-24 10:37:12 +10:00
evandrocoan
4fcecaed9f
Created the .github/workflows/windows.yml
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
# Makefile
# qt/tools/typecheck-setup.sh
# react/Makefile
# rspy/Makefile
# svelte/Makefile
# tslib/Makefile
2020-03-23 19:51:03 -03:00
evandrocoan
093af85c2e
Merge remote-tracking branch 'danielelmes/master' into fix_tests_on_windows
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
2020-03-23 18:44:11 -03:00
Damien Elmes
7a67f73183
convert asc to desc instead of appending desc to the end of the order
...
as the latter doesn't work when sorting on more than one column
https://anki.tenderapp.com/discussions/beta-testing/1868-anki-2124-beta#comment_48174812
2020-03-23 19:53:57 +10:00
Damien Elmes
a5d27ede6e
fix v2 timing being returned for v1 users
2020-03-23 13:53:09 +10:00
Damien Elmes
b7fdb8aeb4
fix setting of wal
2020-03-23 13:52:57 +10:00
Damien Elmes
f9f5a33e1f
simplify how the local offset is passed around
...
- no need to store it in conf
- move local_minutes_west() call to collection
2020-03-23 13:52:52 +10:00
Damien Elmes
0e9e7a84e9
release GIL during collection open/close
2020-03-23 09:27:42 +10:00
Damien Elmes
ac78699d13
add back new_timezone_enabled(), as it's used in the prefs screen
2020-03-23 07:40:50 +10:00
Damien Elmes
9d55260425
apply same list->tuple fix to v1 sched
2020-03-22 21:56:02 +10:00
zjosua
119df8c662
Fill _lrnQueue with tuples, not lists
2020-03-22 11:49:40 +01:00
Damien Elmes
71fcbc3ead
fix sync error introduced by e02f032a47
2020-03-22 17:32:34 +10:00
Damien Elmes
f44996075d
handle the two remaining timing issues
2020-03-22 14:43:29 +10:00
Damien Elmes
e02f032a47
use backend for v1 and v2 cutoff calculations
...
this should also fix the CI failures, which were happening because
the datetime module wasn't matching the shifted time.time()
2020-03-22 14:28:26 +10:00
Damien Elmes
b8aaa8fba4
add enum for controlling sort order
...
eg col.find_cards("", order=BuiltinSortKind.CARD_DUE)
2020-03-22 12:59:24 +10:00
Damien Elmes
b6ac1c0d1c
fall back on stock json if orjson unavailable
2020-03-21 21:24:21 +10:00
Damien Elmes
eab7686d2f
remove old finder code; add search hooks to browser & remove old one
2020-03-21 16:38:46 +10:00
Damien Elmes
0089f0149a
add note searching
2020-03-21 09:00:05 +10:00
Damien Elmes
f3a4552df3
don't set deck.sched.today in test
2020-03-21 08:12:32 +10:00
Damien Elmes
3cebb5b3fd
update tests to reflect what now constitutes an error
2020-03-21 08:12:01 +10:00
Damien Elmes
18b37bcb59
tests need to flush before searching
2020-03-21 08:10:52 +10:00
Damien Elmes
23717089e9
add the ability to provide a custom sort order; use backend for find
2020-03-21 07:55:21 +10:00
Damien Elmes
f36857ae27
prototype of integration
...
no ordering yet, and no tests
2020-03-20 21:15:23 +10:00
Damien Elmes
ae42885ee2
make sure we set db to None so we can tell when we've closed the DB
2020-03-20 21:15:23 +10:00
Damien Elmes
5aba5c3ab9
drop the separate i18n backend
2020-03-20 21:15:23 +10:00
Damien Elmes
e5f883d1c3
support opening and closing the DB while keeping backend alive
...
This is safer than just dropping the backend, as .close() will
block if something else is holding the mutex. Also means we can
drop the extra I18nBackend code.
Media syncing still needs fixing.
2020-03-20 21:15:23 +10:00
Damien Elmes
90a44509be
drop usage of flushSched()
2020-03-20 21:15:23 +10:00
Damien Elmes
e53ee52d2a
remove db.close()
2020-03-20 21:15:23 +10:00
Damien Elmes
258a8282d4
move .reopen() to mw; fix exporting
2020-03-20 21:15:23 +10:00
Damien Elmes
a02c4ed994
drop the DB progress handler code
...
This code was an awful hack to provide some semblance of UI
responsiveness while executing DB statements on the main thread.
Instead, we can just run DB statements in a background thread now,
keeping the UI responsive.
2020-03-20 21:15:23 +10:00
Damien Elmes
8cb3ed7435
drop lock() and setAutocommit()
...
We no longer need to worry about pysqlite implicitly beginning
transactions, and can be more explicit about beginning/ending
transactions
save() now also has a trx argument controlling whether a
transaction should be started / left open
2020-03-20 21:15:23 +10:00
Damien Elmes
3256c74409
pass weakref in from storage to fix type checking/code completion
2020-03-20 21:15:23 +10:00
Damien Elmes
116f7fa3f1
support first_row_only
2020-03-20 21:15:23 +10:00
Damien Elmes
7e5f713f05
proper implementation of executemany(); drop executescript()
2020-03-20 21:15:23 +10:00
Damien Elmes
3f3a45e2ba
add Collection struct, and get media check working again
...
- media check no longer needs collection to be closed
- use savepoints for operations initiated by Rust, so they are
atomic without forcing a commit
2020-03-20 21:15:23 +10:00
Damien Elmes
700d713f80
add begin/commit/rollback, and support creating collections
...
all but one unit test is now passing
2020-03-20 21:15:23 +10:00
Damien Elmes
0147d9e470
drop log= argument from Collection
2020-03-20 21:15:23 +10:00
Damien Elmes
70c7cde2cd
remove remaining db kwargs
2020-03-20 21:15:23 +10:00
Damien Elmes
d42df6e0f1
add a temporary executemany()
2020-03-20 21:15:23 +10:00
Damien Elmes
bd7ded18c3
drop the protobuf prototype
2020-03-20 21:15:23 +10:00
Damien Elmes
38d4ea5311
use (or)json for DB bridge
...
Some initial testing with orjson indicates performance varies from
slightly better than pysqlite to about 2x slower depending on the type
of query.
Performance could be improved by building the Python list in rspy
instead of sending back json that needs to be decoded, but it may make
more sense to rewrite the hotspots in Rust instead. More testing is
required in any case.
2020-03-20 21:15:23 +10:00
Damien Elmes
a129b8f8cf
initial work on DB handling in Rust
...
committing the Protobuf implementation for posterity, but will replace
it with json, as Protobuf measures about 6x slower for some workloads
like 'select * from notes'
2020-03-20 21:15:23 +10:00
Damien Elmes
1db876ba1c
tweak db type hints
2020-03-20 21:15:23 +10:00
Damien Elmes
7fbc229dcd
drop usage of pysqlite Cursor
2020-03-20 21:15:23 +10:00
Damien Elmes
e5a465cccb
tweak layout of db methods
2020-03-20 21:15:23 +10:00
Damien Elmes
7bf27febe6
drop .cursor()
2020-03-20 21:15:23 +10:00
Damien Elmes
fb9db72dde
use total_changes() sqlite func
2020-03-20 21:15:23 +10:00
Damien Elmes
45bc1cd73e
drop the schema <11 upgrade code
2020-03-20 21:15:23 +10:00
Damien Elmes
fcfe1bd66c
drop context manager
2020-03-20 21:15:23 +10:00
Damien Elmes
9e67ea736a
drop named sql arguments
2020-03-20 21:15:23 +10:00
Damien Elmes
6d0c84a1e9
drop progress handler and timeout arg
2020-03-20 21:15:23 +10:00
Damien Elmes
45399df30d
drop echo and text factory
2020-03-20 21:15:23 +10:00
Damien Elmes
923d85f66b
clone db.py into dbproxy.py
2020-03-20 21:15:23 +10:00
evandrocoan
5d75a0c9f1
Fixed moved comment line on qt/aqt/main.py, long variables names on
...
pylib/Makefile and qt/Makefile, and rg --version not going to /dev/null
on .github/scripts/trailing-newlines.sh
2020-03-18 11:36:50 -03:00
evandrocoan
51477a4033
Fixed mypy and pylint not building on Windows
...
1. error: unused 'type: ignore' comment
2. Module 'pywintypes' has no 'error' member
3. Module 'win32pipe' has no 'SetNamedPipeHandleState' member,
but source is unavailable. Consider adding this module to
extension-pkg-whitelist if you want to perform analysis based on
run-time introspection of living objects.
2020-03-17 19:48:16 -03:00
evandrocoan
105e2a2502
Fixed make check for pylint not working on Windows due
...
F:\Python\python.exe: can't open file '/cygdrive/f/anki/pyenv/Scripts/pylint': [Errno 2] No such file or directory
2020-03-17 19:48:16 -03:00
evandrocoan
7d976249db
Fixed test_importing.py unit tests failing on windows with
...
PermissionError: [Errno 13] Permission denied
2020-03-17 12:49:36 -03:00
evandrocoan
f5b02423c1
Fixed UnicodeEncodeError: 'charmap' codec can't encode character
...
'\u2068' in position 2724: character maps to <undefined> for
pylib/tests/test_stats.py
2020-03-17 12:49:25 -03:00
evandrocoan
d6fecea4ff
Fixed BeautifulSoup breaking string paths
...
https://anki.tenderapp.com/discussions/ankidesktop/39543-anki-is-replacing-the-character-by-when-i-exit-the-html-edit-mode-ctrlshiftx
2020-03-12 21:19:09 -03:00
Damien Elmes
a5021ee92e
Merge pull request #501 from evandroforks/fix_beautiful_soup
...
Renamed BeautifulSoup import name for consistency with other usages of it
2020-03-11 15:55:15 +10:00
Damien Elmes
9a9265f113
don't error when an add-on passes None to CardStats
...
https://anki.tenderapp.com/discussions/beta-testing/1842-syncing-message
2020-03-11 15:18:28 +10:00
Damien Elmes
a216fbedbc
Spanish is 'es' on disk
2020-03-11 14:53:19 +10:00
Damien Elmes
ea094a60da
Revert "es-ES -> es"
...
This reverts commit 7409deae34 .
This change broke Anki:
https://anki.tenderapp.com/discussions/ankidesktop/39589-lang_to_disk_lang-startup-error
2020-03-11 14:52:35 +10:00
evandrocoan
52599f364e
Renamed _decode_htmlescapes s variable
2020-03-10 13:57:09 -03:00
Damien Elmes
404a8ca3ec
add switch in prefs for new timezone handling code; bump sync version
...
AD devs: before updating the sync version to 10, please make sure
the new timezone code has been ported over. The core change to the
scheduler is in _updateCutoff():
b198ba8073/pylib/anki/schedv2.py (L1357)
with the following supporting Python functions:
b198ba8073/pylib/anki/schedv2.py (L1410)
_timing_today() is calculated in Rust (lines up to 92, the rest are
tests):
b198ba8073/rslib/src/sched/cutoff.rs (L20)
The change went through a few iterations before stabilising, so it's
probably easier to refer to the above code than the patches that got
us to that point.
2020-03-10 17:50:18 +10:00
Damien Elmes
e512199ace
add restore media action
2020-03-10 13:35:09 +10:00
Damien Elmes
cac9ccfa0d
add empty trash action in aqt
2020-03-10 12:49:40 +10:00
Damien Elmes
0dc4886558
add col.weakref() and fix more reference cycles in pylib
2020-03-05 09:47:47 +10:00
Damien Elmes
0589573dfa
fix retain cycle caused by col.tr
...
We can't use a weakref.proxy with a method, so manually proxy the
call instead.
2020-03-05 09:45:51 +10:00
Arthur Milchior
d9eb170962
hooks for limit new/rev for a single deck
2020-03-04 16:11:13 +01:00
Arthur Milchior
bf0e5f0d6e
single return in sched2 _deckRevLimitSingle
2020-03-04 16:07:15 +01:00
Damien Elmes
2343ddcb02
add diffing script
2020-03-04 21:34:18 +10:00
Damien Elmes
950d39571e
remove a few more common methods
2020-03-04 21:33:44 +10:00
Damien Elmes
27438d8625
use _deckLimit() in a few more places
2020-03-04 21:24:09 +10:00
Damien Elmes
db00452ded
reuse _leftToday()
2020-03-04 12:26:57 +10:00
Damien Elmes
7a32a0eb6f
import tidyup
2020-03-04 12:25:02 +10:00
Damien Elmes
d7c3c5d3b1
reuse _deckNewLimitSingle()
2020-03-04 12:23:56 +10:00
Damien Elmes
7bd1c59abd
reuse v2's _logRev()
2020-03-04 12:23:42 +10:00
Damien Elmes
7880227b43
remove duplicate methods from sched.py
2020-03-04 12:14:26 +10:00
Damien Elmes
966cfaec84
add some type hints that were only in the v1 scheduler
2020-03-04 12:10:38 +10:00
Damien Elmes
7ab3c4ce67
make v1 scheduler inherit from v2 so we can delete duplicate code
2020-03-04 11:41:23 +10:00
Damien Elmes
28e1e01068
use weakref for backrefs so collection doesn't need to be garbage collected
2020-03-03 21:25:32 +10:00
Damien Elmes
475f8e7f04
fix backend not deallocating due to circular reference
2020-03-03 21:12:38 +10:00
Damien Elmes
e592ac06ea
Merge pull request #478 from Arthur-Milchior/missing_constant
...
countsIdx return a queue type.
2020-03-02 15:43:31 +10:00
Alan Du
63a0b36d91
Monkeytype qt/aqt/reviewer.py
2020-03-01 10:16:08 -05:00
Arthur Milchior
80e5a97e39
countsIdx return a queue type.
...
I missed this constant before
2020-03-01 13:00:36 +01:00
Damien Elmes
ba97457e8a
add nfd tag fix to db check
...
we already normalize in the editor and importing, so perhaps these
tags were from an old version
https://anki.tenderapp.com/discussions/ankidesktop/39120-bug-filter-do-not-work-with-tags-which-contain-german-letters-like
2020-03-01 11:21:25 +10:00
Damien Elmes
19ef578556
Merge pull request #473 from evandroforks/fix_docs_urllink
...
Fixed anki website docs link on pylib/anki/consts.py
2020-02-29 21:39:11 +10:00
Damien Elmes
c97b37b7ae
make logging explicit, and support logging to a file
2020-02-29 20:44:01 +10:00
evandrocoan
bc5a9da396
Fixed anki website docs link on pylib/anki/consts.py
2020-02-28 22:18:19 -03:00
Alan Du
13a258184e
Add some more types
2020-02-27 21:27:59 -05:00
Alan Du
ab96ac324e
Monkeytype pylib/anki/importing/supermemo_xml.py
2020-02-27 19:27:32 -05:00
Alan Du
e132ef35ee
Type pylib/anki/schedv2.py
2020-02-27 19:27:32 -05:00
Alan Du
793877ce77
Monkeytype anki/rsbackend.py
2020-02-27 19:27:32 -05:00
Alan Du
3c2822ba4c
Monkeytype pylib/anki/sched.py
2020-02-27 19:27:32 -05:00
Alan Du
397afaf29b
Monkeytype pylib/anki/find.py
2020-02-27 19:27:32 -05:00
Damien Elmes
2de865d7f0
migrate strings with trailing newlines to fluent
2020-02-27 20:36:40 +10:00
Alan Du
9a5eb6c704
Fix type warning
2020-02-27 00:07:19 -05:00
Alan Du
1523412a37
Monkeytype pylib/anki/latex.py
2020-02-27 00:07:19 -05:00
Alan Du
6076e0b21a
Monkeytype pylib/anki/stdmodels.py
2020-02-27 00:07:19 -05:00
Alan Du
c74ccbe245
Monkeytype pylib/anki/stats.py
2020-02-27 00:07:19 -05:00
Alan Du
fe2d8cdea0
Monkeytype pylib/anki/template.py
2020-02-27 00:07:19 -05:00
Alan Du
4606447e4c
Monkeytype anki/tags.py
2020-02-27 00:07:19 -05:00
Alan Du
7ce81f80db
Monkeytype pylib/anki/errors.py
2020-02-27 00:07:19 -05:00
Alan Du
acf1b00cd2
Monkeytype pylib/anki/db.py
2020-02-27 00:07:19 -05:00
Alan Du
a96f1abb33
Monkeytype pylib/anki/decks.py
2020-02-27 00:07:19 -05:00
evandrocoan
59d45f309a
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# CONTRIBUTORS
2020-02-27 00:54:16 -03:00
Alan Du
a095c44f40
Improve mypy config
...
- Make mypy stricter
- Warn for unnecessary workarounds
2020-02-26 22:22:40 -05:00
evandrocoan
4a2456f62f
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# Makefile
2020-02-27 00:20:34 -03:00
Damien Elmes
5d09981667
add self.col.tr() shortcut
2020-02-27 12:33:15 +10:00
Damien Elmes
93c2e04267
FString -> TR
2020-02-27 12:25:19 +10:00
Damien Elmes
83d894ac87
return a localized error for all error kinds
...
some errors are not yet localized, but now the Python code
doesn't need to think about which property to use
2020-02-27 10:46:24 +10:00
Damien Elmes
59328d9ade
tweak rounding
...
- avoid rounding minutes
- round the seconds taken in the card info screen
- provide different precise and imprecise modes, since we need
to display seconds to multiple decimals in some areas
2020-02-25 17:29:06 +10:00
evandrocoan
2d316748a7
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# Makefile
2020-02-25 03:16:57 -03:00
evandrocoan
9e690f80e7
Renamed FIND_EXEC to FIND, replaced IS_WINDOWS by specific commands
...
as PYTHON_BIN, ACTIVE_SCRIPT and INSTALL_PYAUDIO.
Fixed echo statements not using @ to suppress double message output.
Deprecated the usage of ECHOCMD := /bin/echo -e because it has no
effect: https://stackoverflow.com/questions/60387684/how-to-make-the-makefile-echos-to-use-bin-echo-e
# Conflicts:
# Makefile
2020-02-25 03:15:11 -03:00
Damien Elmes
64851afa5e
cap answer buttons to 1 decimal place
...
we can switch to NUMBER() instead in the future, but will need
to update all the translations at the same time
2020-02-25 13:24:29 +10:00
evandrocoan
6d16298254
Fixed development compilation with Windows 10
...
1. Documented on README.development how to setup the environment
for Windows.
2. Fixed qt/ts/package.json not working due usage of ; instead
of &&
3. Fixed copy-qt-files rsync using Windows paths instead of Unix
ones
4. Fixed Makefile's using Windows Linux Subsystem bash instead of
the Cygwin one.
5. Ensured running the correct pip module by using python -m pip
instead of just pip.
6. Fixed Makefiles using Windows `find` command, instead of the
Cygwin's one (POSIX find).
7. Fixed pyenv sourcing/activate using /pyevn/bin/ instead of
/python/Scripts/ on Windows.
8. Fixed pyaudio not installing/linking with portaudio on Windows
by installing for a patched fork at evandroforks/pyaudio
9. Forked and fixed portaudio not building with Visual Studio 2017
or superior and added the reference for the patched fork on
README.development at evandroforks/portaudio.
2020-02-24 14:59:11 -03:00
Damien Elmes
43dae5c90e
Merge pull request #456 from Arthur-Milchior/noDefaultDeckInBrowser
...
No default deck in browser
2020-02-24 19:35:49 +10:00
Damien Elmes
db486dd25c
enable v2 apkg export
2020-02-24 18:54:55 +10:00
Damien Elmes
ea22296d4c
expand clozes before rendering LaTeX
...
https://anki.tenderapp.com/discussions/ankidesktop/39071-latex-media-windows-version-2121-0cd1ee92-fail-rendering-latex
2020-02-24 18:34:08 +10:00
Damien Elmes
70ae99778f
remove old fmtTimeSpan() and associated strings
2020-02-23 18:47:16 +10:00
Damien Elmes
024126b3be
support aqt-specific FTL files
2020-02-23 18:00:13 +10:00
Damien Elmes
c98247fa0f
translations no longer require an open collection
2020-02-23 14:57:02 +10:00
Damien Elmes
0d1a30c6d8
rework Fluent handling
...
- all .ftl files for a language are concatenated into a single file
at build time
- all languages are included in the binary
- external ftl files placed in the ftl folder can override the
built-in definitions
- constants are automatically generated for each string key
- dropped the separate StringsGroup enum
2020-02-23 13:22:50 +10:00
Arthur Milchior
adfbd0d70f
should(default)deckbedisplayed in snake case
2020-02-22 04:08:01 -08:00
Arthur Milchior
be98614d41
defaultDeck to default_deck
2020-02-22 04:03:42 -08:00
Arthur Milchior
6a50730f0d
Remove options for all/allNames
...
Instead, we always see default deck if it has a child
As indicated in https://github.com/ankitects/anki/pull/452
2020-02-22 04:03:42 -08:00
Arthur Milchior
89b79d9800
forceDefault to force_default
2020-02-22 04:01:42 -08:00
Damien Elmes
7409deae34
es-ES -> es
2020-02-22 19:47:23 +10:00
Damien Elmes
e5fa1759b3
formatting fix
2020-02-21 21:21:36 +10:00
Damien Elmes
abc260b7c3
reviews
2020-02-21 20:36:22 +10:00
Damien Elmes
e84fa7dee3
add next learning due time + remaining count to congrats screen
...
https://anki.tenderapp.com/discussions/ankidesktop/38000-v2-scheduler-learning-cards
2020-02-21 19:54:50 +10:00
Damien Elmes
3a83d9844a
add studied_today(), move to statistics.ftl
2020-02-21 18:01:15 +10:00
Damien Elmes
e3e376036f
add average-answer-time to Fluent
...
drop the 0.1 special case; we're using two decimals now
2020-02-21 17:42:55 +10:00
Damien Elmes
74bff450e2
add non-abbreviated timespan translation; update existing short=True calls
...
- drop the '5m3s' special casing done in the card stats screen, and
just use decimals
- change alignment of the review log so that the non-abbreviated
spans are easier to read
2020-02-21 15:29:38 +10:00
Damien Elmes
11647daec1
move answer_button_time to the backend, split sched into separate module
2020-02-21 15:29:38 +10:00
Damien Elmes
2633d6db4b
move answer button labels into fluent
2020-02-21 15:29:38 +10:00
Damien Elmes
cf1824dac5
update to latest fluent-rs and add basic locale-aware decimals
...
- git version pinned at the moment until the concurrency fix
lands in 0.10.2
- currently float values are hard-coded at 2 decimal places;
we should switch to using NUMBER() in the future
2020-02-21 15:29:38 +10:00
Damien Elmes
e98e85a0b8
Revert "Merge pull request #452 from Arthur-Milchior/noDefaultDeckInBrowser"
...
This reverts commit 56d908cc28 , reversing
changes made to c123b5bf95 .
More discussion required on https://github.com/ankitects/anki/pull/452
2020-02-21 12:27:39 +10:00
Damien Elmes
56d908cc28
Merge pull request #452 from Arthur-Milchior/noDefaultDeckInBrowser
...
No default deck in browser
2020-02-21 12:10:36 +10:00
Damien Elmes
c123b5bf95
fix Deck field in card templates showing filtered deck
...
https://anki.tenderapp.com/discussions/ankidesktop/38984-deck-changed
2020-02-19 20:00:06 +10:00
Arthur Milchior
9860d5ba5e
method shouldBeDisplayed
2020-02-19 01:56:33 -08:00
Damien Elmes
59b70d255b
don't error when fuzz is 0
...
https://anki.tenderapp.com/discussions/ankidesktop/38956-bug-report-sched2-anki2120
2020-02-18 11:00:26 +10:00
Damien Elmes
0e7f433071
fix legacy filter return values being ignored
2020-02-18 09:12:16 +10:00
Damien Elmes
fd01cac4d7
split "Due" into three different contexts for translators
2020-02-17 14:41:01 +10:00
Damien Elmes
f40a00f0cb
localize some error messages
2020-02-17 11:38:22 +10:00
Damien Elmes
644c1f4c26
Revert "test out the Python Fluent implementation"
...
This reverts commit 181c17a0988cf9e57b2604746000c6072cb96206.
Reverting this to keep as a record.
2020-02-17 08:40:17 +10:00
Damien Elmes
07318a20c6
test out the Python Fluent implementation
...
The parsing step is considerably slower in Python, but if parsing
is moved out of the test function, Python wins at 45ms to Rust's 67ms
on 10,000 rounds, presumably due to the overhead of serializing to
Protobuf. Not enough of a difference to justify the inclusion of extra
dependencies and duplicating the lookup code in any case.
2020-02-17 08:40:17 +10:00
Damien Elmes
4b63a07c99
expose translations to Python
2020-02-17 08:40:17 +10:00
Damien Elmes
1f736239cd
pass progress back as translated string(s)
2020-02-17 08:40:17 +10:00
Damien Elmes
8450214cda
add ftl to the build process, and a sync-git script
...
also
- ensure po files are checked when updated
- add start of sync.ftl
2020-02-17 08:40:17 +10:00
Damien Elmes
632041f14f
drop unused threadLocal and noHint i18n code
2020-02-17 08:40:17 +10:00
Damien Elmes
ff9daa099b
use new file locations for translations
...
- translation files are now stored in a separate repo, and
use a layout compatible with Pontoon
- normalize the language code in aqt, so that old config settings
and command line arguments are correctly handled
- store Qt and gettext translations in separate subfolders
- remove Crowdin scripts
2020-02-17 08:40:17 +10:00
Damien Elmes
7a0d1ffae0
fix sync deauth
2020-02-17 08:40:17 +10:00
Damien Elmes
a5558d5413
pass locale details to backend
2020-02-17 08:40:17 +10:00
Damien Elmes
47aa27f877
fix Lojban selection
2020-02-17 08:40:17 +10:00
Damien Elmes
ba0bc3086c
move empty card check into template code
2020-02-17 08:40:17 +10:00
Damien Elmes
0738ff46b6
make template errors translatable
2020-02-17 08:40:17 +10:00
Damien Elmes
d23477b143
update media DB when adding LaTeX images
2020-02-17 08:40:17 +10:00
Damien Elmes
1383973753
shorten add_file_to_media_folder
2020-02-17 08:40:17 +10:00
Damien Elmes
89626c1a72
use media.trash for unused media deletion as well
2020-02-17 08:40:17 +10:00
Damien Elmes
7ce49cb1f8
fix latex render progress; display more frequently
2020-02-17 08:40:17 +10:00
Damien Elmes
c4d6d9480c
if latex fails to render in bulk, show the user the problem
2020-02-17 08:40:17 +10:00
Damien Elmes
625b5728cc
new render_all_latex() + gui button; remove some old code
2020-02-17 08:40:17 +10:00
Damien Elmes
d32e2fe6eb
add extract_latex to backend; use it for latex build
2020-02-17 08:40:17 +10:00
Damien Elmes
2c634f5163
stripLatex() does not appear to be used anywhere
2020-02-17 08:40:17 +10:00
Damien Elmes
790f3c9f72
plug new media check in
2020-02-17 08:40:17 +10:00
Damien Elmes
edf60b10d4
backend stores media folder/db locations; don't need to pass them in
2020-02-17 08:40:17 +10:00
Damien Elmes
ef14b1a96b
simplify code by accumulating stats at the source
2020-02-17 08:40:17 +10:00
Damien Elmes
77158760ff
use enums for some common errors
2020-02-17 08:40:16 +10:00
Damien Elmes
ecab2da99e
remove unused code
2020-02-17 08:40:16 +10:00
Damien Elmes
738e415463
connect media sync progress to Python, add a progress dialog
2020-02-17 08:40:16 +10:00
Damien Elmes
804432fb3e
use separate fn to init backend, for future pyo3 0.9 release compat
2020-02-17 08:40:16 +10:00
Damien Elmes
1acb3b86b9
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
9a280897d3
drop support for vfat
2020-02-17 08:40:16 +10:00
Damien Elmes
c8ea895cae
drop support for the early 2.0 release media db format
2020-02-17 08:40:16 +10:00
Damien Elmes
1102983a4e
drop the clean* funcs
2020-02-17 08:40:16 +10:00
Damien Elmes
c9a5ed3cc6
add add_file() and write_data()
2020-02-17 08:40:16 +10:00
Arthur Milchior
16f40c9a01
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
347523b442
Factorizing card's flush
2020-02-14 00:59:32 -08:00
Arthur Milchior
4b632b398e
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
3d1e89f014
Merge pull request #433 from Arthur-Milchior/ints
...
Constants
2020-02-14 08:37:31 +10:00
Damien Elmes
5e44fb0304
remove redundant declaration
2020-02-12 08:06:35 +10:00
Arthur Milchior
48339784cc
deckIds return deck of selected cards
2020-02-11 10:50:59 -08:00
Arthur Milchior
ad4b04bf81
ofCids: returns did of all cids
2020-02-11 10:50:59 -08:00
Arthur Milchior
0cace50f00
inverse if/else in deckIds
2020-02-11 10:50:59 -08:00
Arthur Milchior
ea0a509372
cardIds return cids if it is set
2020-02-11 10:50:59 -08:00
Arthur Milchior
17610d4c01
anki.exporter takes extra argument cids
2020-02-11 10:50:58 -08:00
Arthur Milchior
d1183df830
aqt.exporter takes extra argument cid
2020-02-11 10:49:13 -08:00