Damien Elmes
0f1f80aebc
handle revlog entries with negative review times
2020-06-29 15:48:01 +10:00
Damien Elmes
31a422cf85
fix partially quoted text not handling escaped quotes
...
https://forums.ankiweb.net/t/how-to-search-for-cards-containing-quotes/500/10
2020-06-29 15:48:01 +10:00
Damien Elmes
0a0a61b7f8
bump rust nightly version
2020-06-29 15:48:01 +10:00
Damien Elmes
329186f140
qt's js code now shares ts/node_modules; more graph work
2020-06-29 15:48:01 +10:00
Damien Elmes
0cab26d40c
cards added graph
2020-06-29 15:48:01 +10:00
Damien Elmes
82568a1f3e
experiment with exposing raw card/revlog data to frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
510f8b86cb
some initial work on updating the graphs
2020-06-29 15:48:00 +10:00
Damien Elmes
3ca4a13cf2
protobuf package should be in PascalCase
2020-06-29 15:48:00 +10:00
Damien Elmes
e231895cc2
fix v2 scheduler cutoff being used if previously activated
2020-06-23 12:46:40 +09:00
Damien Elmes
df009d142c
formatting fix
2020-06-22 11:58:31 +10:00
Damien Elmes
26fc6609a7
move revlog out of sync code, and add enums
...
and remove type=4, which does not appear to be used
2020-06-16 16:31:36 +10:00
Damien Elmes
b51f03085e
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
263bfb2e8e
on upgrade, mark decks modified that are renamed
2020-06-14 14:48:58 +10:00
Damien Elmes
8e895aa247
handle db errors the same way as other backend requests
2020-06-12 20:39:02 +10:00
Damien Elmes
cf6d4f1cb9
pass db json back as bytes
2020-06-12 20:20:29 +10:00
Damien Elmes
514c73f547
don't exclude the default deck from the normal name list
...
https://forums.ankiweb.net/t/issue-backend-get-deck-names-doesnt-return-default-deck/52
2020-06-11 14:36:00 +10:00
Damien Elmes
10a1d06dce
use vendored hyper for panic fix
2020-06-11 13:30:35 +10:00
Damien Elmes
a8de5ad98a
extra strings for empty cards
2020-06-10 19:29:25 +10:00
Damien Elmes
9343ace8c4
add check database title
2020-06-10 08:44:57 +10:00
Damien Elmes
816cec4a58
fix review cards with high intervals not being reset properly
...
would lead to a "fixed .. with invalid card property" message that
didn't go away
2020-06-09 20:11:26 +10:00
Damien Elmes
1beed74464
switch default leech action to tag only
2020-06-09 12:03:47 +10:00
Damien Elmes
c77d017135
catch invalid regex in search
...
https://github.com/ankitects/anki/pull/652
2020-06-09 11:46:07 +10:00
Damien Elmes
e5849aac4d
check full upload return text
2020-06-09 08:50:16 +10:00
Damien Elmes
9e56720c2b
Revert "use trust-dns in reqwest"
...
This reverts commit abe90d0772
.
trust-dns has introduced its own issues, such as when resolv.conf is
inaccessible, or contains hostnames with certain characters
2020-06-08 22:03:24 +10:00
Damien Elmes
7c444b4d35
add progress to db check
2020-06-08 21:07:36 +10:00
Damien Elmes
1fe18718f7
add daily count updating to backend
2020-06-05 19:49:53 +10:00
Damien Elmes
fee6cdff22
support generating a due tree for a different date
2020-06-05 09:38:31 +10:00
Damien Elmes
4a69b55a90
add note/card removal to backend
2020-06-04 18:21:04 +10:00
Damien Elmes
abe90d0772
use trust-dns in reqwest
...
The default DNS resolution, if interrupted by an Abortable, will
cause a panic:
57ef271500/src/client/connect/dns.rs (L144)
2020-06-03 15:47:54 +10:00
Damien Elmes
ebce044be5
"Template" special field should have been called "Card"
2020-06-02 16:47:30 +10:00
Damien Elmes
683d779c3f
automatically abort the media sync on full sync
2020-06-02 16:22:53 +10:00
Damien Elmes
519b8c3425
ensure sync indicator updates after download
2020-06-02 15:10:41 +10:00
Damien Elmes
35ee106503
fix full download on Windows
2020-06-02 15:06:23 +10:00
Damien Elmes
9acf318572
skip note update if unchanged
2020-06-02 13:32:36 +10:00
Damien Elmes
4d7e23111e
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
ac219ae728
use a shared async runtime instead of recreating each time
2020-06-02 09:35:27 +10:00
Damien Elmes
2147f75bc5
add some syncing tests - please see alpha2 notes before syncing
2020-06-01 19:44:25 +10:00
Damien Elmes
cec5a260e5
fix \n in buildhash
2020-06-01 19:38:45 +10:00
Damien Elmes
4917cabeb9
handle missing counts in sanity check
2020-06-01 19:38:41 +10:00
Damien Elmes
403ac2715c
if both sides empty, allow either
2020-06-01 18:11:43 +10:00
Damien Elmes
3484897229
don't put dyn=False in schema11 dconf's "other"
2020-06-01 18:11:40 +10:00
Damien Elmes
d8b907e4e8
tell AnkiWeb to abort on interrupt
2020-06-01 13:57:10 +10:00
Damien Elmes
90e19daec2
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
c6f0710ce7
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
529152aef6
rework usn handling in sync
2020-06-01 13:57:10 +10:00
Damien Elmes
5102255ff9
add due counts to sanity check
2020-06-01 13:57:10 +10:00
Damien Elmes
0e5b7da62a
login/full up/full down plugged in
2020-06-01 13:57:10 +10:00
Damien Elmes
ee6d7f82e7
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
b254b1f722
another snapshot of sync work
...
progress handler is going to need to be reworked to function across
threads
2020-06-01 13:57:10 +10:00
Damien Elmes
e4b43b8773
make sure we invalidate cache after direct update
2020-06-01 13:57:10 +10:00
Damien Elmes
f10d0ee0cb
more syncing work
...
no checks yet
2020-06-01 13:57:10 +10:00
Damien Elmes
529e89f48e
full upload/download HTTP code
2020-06-01 13:57:10 +10:00
Damien Elmes
4fcb10bfa9
start on HTTP client for syncing
2020-06-01 13:57:10 +10:00
Damien Elmes
c8d13209cd
move dupe check to backend
2020-05-24 19:48:56 +10:00
Damien Elmes
d2dd619f18
fix rebuilding being done unnecessarily
2020-05-24 18:41:25 +10:00
Damien Elmes
38508c3ad7
use keyword args for calls with more than one argument
2020-05-24 09:12:47 +10:00
Damien Elmes
89dde3aeb0
migrate the remaining methods
2020-05-24 08:36:50 +10:00
Damien Elmes
4bf8175bcb
migrate more scheduling/media/etc
...
almost there
2020-05-23 21:34:19 +10:00
Damien Elmes
a105037ec9
migrate notetypes, update GIL list
2020-05-23 20:43:55 +10:00
Damien Elmes
6710e3d528
add some more newtypes to the RPC defs
2020-05-23 16:58:01 +10:00
Damien Elmes
95735f106a
migrate cards and notes
2020-05-23 16:19:48 +10:00
Damien Elmes
7550e6241c
migrate decks and dconf methods
2020-05-23 15:09:16 +10:00
Damien Elmes
081a61a438
more methods
2020-05-23 14:01:36 +10:00
Damien Elmes
175afa9fee
migrate more methods to service
2020-05-22 22:09:33 +10:00
Damien Elmes
9c20d9a02b
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
0c85397461
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
08f1843b67
automatically omit notes or cards table when possible
2020-05-19 11:27:02 +10:00
Damien Elmes
c238bbe173
fix unit test bug triggered by low resolution win32 timer
...
We don't yet have a remove_note(), so just remove all cards for now.
2020-05-18 19:02:54 +10:00
Damien Elmes
f2594b071e
fix cutoff adjustment test in other timezones
2020-05-18 14:08:02 +10:00
Damien Elmes
cdbe7346ab
bytes->blob in sql
2020-05-18 13:36:45 +10:00
Damien Elmes
8bd5d756e2
bump version
2020-05-18 12:50:20 +10:00
Damien Elmes
68465ae07b
protobuf tidyups
2020-05-18 09:26:14 +10:00
Damien Elmes
010f0f33b5
use empty buffer if the other map is empty in dconf
2020-05-18 08:12:27 +10:00
Damien Elmes
7ec3f1ecc0
fix syncing
2020-05-17 20:52:02 +10:00
Damien Elmes
803aeff16e
update current note type in backend
2020-05-17 20:01:16 +10:00
Damien Elmes
3cb870ec9c
ensure notetype name unique on add as well
2020-05-17 19:41:47 +10:00
Damien Elmes
7daa417dc8
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
df48fa8cf7
handle deletion of default deck in backend; use + instead of _
2020-05-17 15:22:19 +10:00
Damien Elmes
b9b837e7bd
update before_upload()
2020-05-17 14:13:21 +10:00
Damien Elmes
6114836484
move deck config to protobuf
2020-05-17 13:28:41 +10:00
Damien Elmes
54670580ad
add option to limit deck tree counts to a particular node
2020-05-17 08:38:49 +10:00
Damien Elmes
da43d22aa5
update rusqlite
2020-05-16 19:49:08 +10:00
Damien Elmes
78a6813b9b
when merging day# in deck, make sure to reset older values
2020-05-16 15:58:25 +10:00
Damien Elmes
efde279588
use the latest day when converting from legacy deck
2020-05-16 14:58:14 +10:00
Damien Elmes
f747063752
add a unit test for deck counts
2020-05-16 14:07:48 +10:00
Damien Elmes
f2086fc2e3
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
964a69e54e
handle default deck and filtered deck suppression in the backend
2020-05-15 21:21:10 +10:00
Damien Elmes
2ac33500eb
fetch stock notetypes from backend
2020-05-15 17:08:24 +10:00
Damien Elmes
00db72e365
show (Deck) when card hasn't been added
2020-05-15 15:01:28 +10:00
Damien Elmes
24ffb6ab76
check for empty cloze cards when rendering as well
2020-05-14 21:56:45 +10:00
Damien Elmes
782911471b
add "fill empty" checkbox
2020-05-14 20:58:45 +10:00
Damien Elmes
c5d574e9f4
use group box instead of tabs in card layout screen
2020-05-14 17:26:40 +10:00
Damien Elmes
f23eb350e4
drop availOrds(), and use backend for getting cloze numbers
2020-05-14 12:14:00 +10:00
Damien Elmes
6680cdf1d3
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
12b8fe6147
don't hide static template text when card is empty
2020-05-13 11:17:44 +10:00
Damien Elmes
826cbb0108
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
9874b19526
handle decks set to random new order
...
It probably makes more sense to randomize on queue build in the future,
but for now this imitates the previous Anki behaviour.
2020-05-12 21:13:34 +10:00
Damien Elmes
7597130145
return resolved deck to facilitate random order mode
2020-05-12 21:13:34 +10:00
Damien Elmes
9317cee9ba
handle scheduling preferences in the backend
2020-05-12 21:13:34 +10:00
Damien Elmes
ea4f150455
fetch timing_today() params in backend
2020-05-12 21:13:34 +10:00