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
b9f6bde2dc
catch leading/trailing boolean operators
...
https://forums.ankiweb.net/t/is-it-only-me-anki-giving-corrupt-collection-error/2424/20
2020-08-27 09:59:29 +10:00
Damien Elmes
41a47fcf01
fix some clippy lints
2020-08-26 19:02:56 +10:00
Damien Elmes
ed1af61fa6
use commit hash in reqwests dependency
2020-08-26 18:50:25 +10:00
Damien Elmes
fb4105013f
add escape hatch for very slow connections
2020-08-26 18:44:20 +10:00
Damien Elmes
8c7c2eeda3
specify I/O timeout
...
We need to be a bit conservative here due to buffer bloat - in the
upload case on a slow link, it can appear that no I/O is happening
when a buffer is draining.
2020-08-26 18:30:51 +10:00
Damien Elmes
2e923b0990
vendor reqwest for now, to support read/write timeouts
...
https://github.com/seanmonstar/reqwest/issues/870
adding back now that fix has been applied to a fork of tokio-io-timeout
2020-08-26 13:24:51 +10:00
Damien Elmes
2f6d816cdc
bump version
2020-08-26 08:05:45 +10:00
Damien Elmes
a6f5d48cca
Revert "vendor reqwest for now, to support read/write timeouts"
...
This reverts commit b3edeaac86 .
The separate read and write timeouts were causing syncs to fail - a
long full upload would time out due to no read activity for example.
Reverting until a better fix can be put in place.
2020-08-25 13:28:54 +10:00
Damien Elmes
58c8609332
bump version
2020-08-24 11:28:22 +10:00
Damien Elmes
3b8c7f22d2
don't crash when upgrading collection with ntid of 0
2020-08-23 14:14:44 +10:00
Damien Elmes
8c558e4e5d
normalize field before checking duplicates
...
https://forums.ankiweb.net/t/unicode-normalisation/2531
2020-08-23 12:09:55 +10:00
Damien Elmes
e281d8947d
ensure we don't crash on a zero field notetype
2020-08-23 12:09:36 +10:00
Damien Elmes
db92548987
fix empty cards not ignoring <br>
...
https://forums.ankiweb.net/t/bug-report-empty-cards-are-not-recognized/2555
2020-08-23 11:44:49 +10:00
Damien Elmes
3a2031272b
catch timeout error
2020-08-21 19:03:23 +10:00
Damien Elmes
b3edeaac86
vendor reqwest for now, to support read/write timeouts
...
https://github.com/seanmonstar/reqwest/issues/870
2020-08-21 18:50:00 +10:00
Damien Elmes
3421ddf6e5
average ease + add % to ease ticks
2020-08-21 13:00:16 +10:00
ANH
233e6abc55
add custom-study-must-rename-deck to Fluent
2020-08-19 18:27:14 +03:00
Damien Elmes
26e69d5070
ensure tag replacements fully match
...
https://anki.tenderapp.com/discussions/private/5180-anki-desktop-bug-removing-a-tag-removes-all-substrings
2020-08-19 15:35:20 +10:00
Damien Elmes
cb68958b59
strip nuls from tags as well
...
https://forums.ankiweb.net/t/unable-to-sync-between-macbook-and-my-iphone/2405
2020-08-19 15:34:21 +10:00
Damien Elmes
724005386c
catch attempt to update missing note
...
https://forums.ankiweb.net/t/bug-report-editor-updating-non-existing-card/2117/4?u=dae
2020-08-17 19:44:27 +10:00
Damien Elmes
2e7ecfb1d2
allow setting sort field before add
2020-08-17 19:44:09 +10:00
Damien Elmes
cb821a9e3c
fix globs not working in bulk tag add/remove
2020-08-17 18:14:00 +10:00
Damien Elmes
692164df7c
journal mode was not being set on media db
2020-08-17 12:30:14 +10:00
Damien Elmes
54bb782809
handle <%foo%> inside {{#conditional}}
...
https://forums.ankiweb.net/t/the-latest-version-of-ios-cannot-display-the-template-normally/2142
2020-08-12 19:28:26 +10:00
Damien Elmes
d0d2ba15e2
generate extra templates when recovering notetype
2020-08-10 13:42:37 +10:00
Damien Elmes
a4c8825aeb
show ordinal if card template missing
2020-08-10 13:41:22 +10:00
Damien Elmes
ea2c5c6920
deauth -> log out
2020-08-09 14:44:03 +10:00
Damien Elmes
4629dd38fb
bump version
2020-08-09 13:44:59 +10:00
Damien Elmes
ffd1638400
fix assertion failure when recovering notetype
...
Notes need to have their notetype ID updated to reflect the
newly created notetype.
https://forums.ankiweb.net/t/anki-crashes-on-sync-study-export/1978
2020-08-08 12:26:00 +10:00
Damien Elmes
bdf6e2b87d
handle negative review times in sync
2020-08-07 15:02:03 +10:00
Damien Elmes
60730af9f4
fix negative review times in DB check
2020-08-07 14:37:44 +10:00
Damien Elmes
1436278f2c
clarify 'add mobile class'
2020-08-07 13:24:04 +10:00
Damien Elmes
c03d3f6c7f
add some extra help to the json decode error
2020-08-07 13:13:11 +10:00
Damien Elmes
8fff6092a9
"average over period"
2020-08-05 16:06:24 +10:00
Damien Elmes
a93e180d3d
fix unterminated section
2020-08-04 16:29:22 +10:00
Damien Elmes
55af7e81e9
formatting and new strings in scheduling.ftl
2020-08-04 16:19:49 +10:00
Damien Elmes
f332ff0c80
added graph table
2020-08-04 16:01:11 +10:00
Damien Elmes
a59270f6f0
fix plural
2020-08-04 15:28:49 +10:00
Damien Elmes
56b59b24ab
add textual data to reviews graph
2020-08-04 14:28:46 +10:00
Damien Elmes
bbadbca157
add some extra graph strings
2020-08-04 12:01:31 +10:00
Damien Elmes
176ab312da
handle some instances of floats when an integer is expected during sync
2020-08-03 17:47:15 +10:00
Damien Elmes
99140fb189
fix conditional negation being lost on field rename
...
https://forums.ankiweb.net/t/anki-force-changes-all-to/1694
2020-08-02 10:09:24 +10:00
Damien Elmes
bd37a7e17e
fix moves into/out of a filtered deck not syncing
...
the mtime comparison should have only been done if the object in the
local collection was also pending
2020-07-31 15:39:30 +10:00
Damien Elmes
58d3127d3c
remove 'invert', as night mode is on when checkbox is on
2020-07-31 14:35:18 +10:00
Damien Elmes
b93b44a009
title case
2020-07-31 14:24:08 +10:00
Damien Elmes
9c2cb8bc2a
fix button display on Macs
2020-07-31 14:23:56 +10:00
Damien Elmes
b5c72ac201
Merge branch 'master' into master
2020-07-31 14:14:10 +10:00
Damien Elmes
1bb256483c
i18n some card template strings
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
47d3666ad0
fix hour graph not handling timezones west of UTC
...
https://forums.ankiweb.net/t/statistics-bugs-after-update-2-1-5-to-2-1-29/1620
2020-07-31 13:33:41 +10:00
Damien Elmes
c5f7a3aa21
tweak card template message
...
also shown when importing an invalid file
https://anki.tenderapp.com/discussions/private/4937-importing-decks
2020-07-31 13:33:41 +10:00
ANH
2a5131a5d3
use 'Preview Settings' as a label for the new options button
2020-07-30 18:04:50 +03:00
ANH
393403ffbf
add night mode and mobile class toggles in card layout screen
2020-07-30 15:39:02 +03:00
Damien Elmes
a93145c4c7
handle preview repeat in deck list
2020-07-30 09:11:13 +10:00
Damien Elmes
3da7884e19
reject double comma in id list
...
https://forums.ankiweb.net/t/anki-2-1-29-and-below-2-small-bugs/1496
2020-07-29 13:05:34 +10:00
Damien Elmes
f4bd143050
handle multiple clozes in cloze-only filter
...
https://forums.ankiweb.net/t/built-in-tts-not-reading-multiple-clozes/1516
2020-07-29 12:54:29 +10:00
Damien Elmes
55891fc8f7
clearer message when template error is preventing save
2020-07-29 12:53:03 +10:00
Damien Elmes
d3653ab6d5
bump version
2020-07-28 12:59:56 +10:00
Damien Elmes
3099edf8ee
show card stats in reverse order like older Anki versions
2020-07-28 09:49:27 +10:00
Damien Elmes
8f470ce23d
fix note/card ids being flipped in card stats
2020-07-28 09:49:11 +10:00
Damien Elmes
d460549b8f
ask user to check db when graphs fail to load
2020-07-24 09:56:28 +10:00
Damien Elmes
9ec58c10ec
strip unwanted control characters when writing fields
...
closes #661
2020-07-24 09:18:05 +10:00
Damien Elmes
684f63b78e
clarify comment
2020-07-24 09:01:14 +10:00
Damien Elmes
67845fa401
use short form for time units in graph axis
2020-07-22 12:59:56 +10:00
Damien Elmes
7e78d12b99
bump version
2020-07-21 15:54:14 +10:00
Damien Elmes
61f0c3eec0
add cloze-only filter
...
https://anki.tenderapp.com/discussions/ankidesktop/42383-two-feature-suggestions
2020-07-21 12:59:28 +10:00
Damien Elmes
ce2c553840
i18n some sync errors
2020-07-16 13:55:59 +10:00
Damien Elmes
e471497bd2
add platform version back into sync metadata
2020-07-16 10:12:41 +10:00
Damien Elmes
56833f0ac7
panic fix was merged into hyper 0.13.7
2020-07-16 09:09:13 +10:00
Damien Elmes
22a87a4f3b
vendor coarsetime so we can get the use after free fix
2020-07-13 13:34:37 +10:00
Damien Elmes
bbc75cdf5d
update rslib/rspy deps
2020-07-12 11:38:25 +10:00
Damien Elmes
d35bc85ead
is:review should include relearning cards
...
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/36
This issue appears to have existed since the V2 scheduler was
introduced - the old Python search code was ignoring Relearn as well.
2020-07-09 11:07:50 +10:00
Damien Elmes
c22040f33d
drop 1 month period
2020-07-06 19:16:03 +10:00
Damien Elmes
214ba8ead9
update title
2020-07-06 19:16:03 +10:00
Damien Elmes
097d91d143
add 'no data' overlay when graph empty
2020-07-06 19:16:03 +10: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
71dbbd9fa8
set schema on collection creation
2020-07-03 11:55:27 +10:00
Damien Elmes
9bb45673a8
show clearer error when media db locked
...
should not happen frequently during a sync, but may happen during
the initial change checking stage
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:19:06 +10:00
Damien Elmes
f43aa54ed9
fix media db conflict aborting immediately instead of after 5s
...
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:17:33 +10:00
Damien Elmes
8cfafdbc32
supported edited:n
...
https://forums.ankiweb.net/t/feature-request-advanced-broswer-search-by-edited/268
2020-07-01 10:17:57 +10:00
Damien Elmes
33317d41b3
update edited/changed column labels
...
https://github.com/ankitects/anki/pull/674/files
2020-06-29 18:34:03 +10:00
Damien Elmes
06d9f64dea
lint fixes
2020-06-29 15:53:56 +10:00
Damien Elmes
24cf78b68b
group strings by graph
2020-06-29 15:48:01 +10:00
Damien Elmes
275817a558
add remaining tooltip i18n
2020-06-29 15:48:01 +10:00
Damien Elmes
a7ce130941
i18n some tooltips
2020-06-29 15:48:01 +10:00
Damien Elmes
35e706d53a
drop axis labels + add subtitles
...
This leaves more room for the graphs and avoids issues with large values
overlapping the labels. We can improve the subtitle wording to make
things clearer in the future, and the hover tooltips should also
clarify what the axes represent.
2020-06-29 15:48:01 +10:00
Damien Elmes
2994cadcb0
i18n some axis labels, and support vertical CJK text
2020-06-29 15:48:01 +10:00
Damien Elmes
042a9ff68b
i18n graph titles
2020-06-29 15:48:01 +10:00
Damien Elmes
1a16e2306f
i18n ranges
2020-06-29 15:48:01 +10:00
Damien Elmes
693fcfce7d
i18n card counts
2020-06-29 15:48:01 +10:00
Damien Elmes
cebf22d749
i18n today section
2020-06-29 15:48:01 +10:00
Damien Elmes
349eca843b
get i18n working in typescript
2020-06-29 15:48:01 +10:00
Damien Elmes
618fc65282
handle revlog entries with negative review times
2020-06-29 15:48:01 +10:00
Damien Elmes
4be8e7923a
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
fefc6dbdc2
bump rust nightly version
2020-06-29 15:48:01 +10:00
Damien Elmes
0293f2220c
qt's js code now shares ts/node_modules; more graph work
2020-06-29 15:48:01 +10:00
Damien Elmes
4d88b6521d
cards added graph
2020-06-29 15:48:01 +10:00
Damien Elmes
1e9901e9bd
experiment with exposing raw card/revlog data to frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
fd258d15c5
some initial work on updating the graphs
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
61efce295e
fix v2 scheduler cutoff being used if previously activated
2020-06-23 12:46:40 +09:00
Damien Elmes
710e5ecce2
formatting fix
2020-06-22 11:58:31 +10:00
Damien Elmes
cec1fdece5
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
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
965fd848d1
on upgrade, mark decks modified that are renamed
2020-06-14 14:48:58 +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
dc8297644b
pass db json back as bytes
2020-06-12 20:20:29 +10:00
Damien Elmes
1773c6eec9
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
4092da9dbe
use vendored hyper for panic fix
2020-06-11 13:30:35 +10:00
Damien Elmes
8f9d2f592e
extra strings for empty cards
2020-06-10 19:29:25 +10:00
Damien Elmes
5bd66d485f
add check database title
2020-06-10 08:44:57 +10:00
Damien Elmes
d5cd9af53b
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
a11d803030
switch default leech action to tag only
2020-06-09 12:03:47 +10:00
Damien Elmes
6d7be475e6
catch invalid regex in search
...
https://github.com/ankitects/anki/pull/652
2020-06-09 11:46:07 +10:00
Damien Elmes
c6e5dc0ef6
check full upload return text
2020-06-09 08:50:16 +10:00
Damien Elmes
6207b1012f
Revert "use trust-dns in reqwest"
...
This reverts commit f15abb5c58 .
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
75471224fa
add progress to db check
2020-06-08 21:07:36 +10: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
f15abb5c58
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
cb7d78dde5
"Template" special field should have been called "Card"
2020-06-02 16:47:30 +10:00
Damien Elmes
c8b585b3e4
automatically abort the media sync on full sync
2020-06-02 16:22:53 +10:00
Damien Elmes
7dc8df748b
ensure sync indicator updates after download
2020-06-02 15:10:41 +10:00
Damien Elmes
7536a3b899
fix full download on Windows
2020-06-02 15:06:23 +10:00
Damien Elmes
ca704187c6
skip note update if unchanged
2020-06-02 13:32:36 +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
42c34b60c0
use a shared async runtime instead of recreating each time
2020-06-02 09:35:27 +10:00
Damien Elmes
a3e5068952
add some syncing tests - please see alpha2 notes before syncing
2020-06-01 19:44:25 +10:00
Damien Elmes
c6712cbf2c
fix \n in buildhash
2020-06-01 19:38:45 +10:00
Damien Elmes
80210ab6bd
handle missing counts in sanity check
2020-06-01 19:38:41 +10:00
Damien Elmes
300769aac7
if both sides empty, allow either
2020-06-01 18:11:43 +10:00
Damien Elmes
2ca3108bee
don't put dyn=False in schema11 dconf's "other"
2020-06-01 18:11:40 +10:00
Damien Elmes
da2dc7bd8c
tell AnkiWeb to abort on interrupt
2020-06-01 13:57:10 +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
1c52d11133
rework usn handling in sync
2020-06-01 13:57:10 +10:00
Damien Elmes
1303013ad6
add due counts to sanity check
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
c4032c0176
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
b5284e8993
make sure we invalidate cache after direct update
2020-06-01 13:57:10 +10:00
Damien Elmes
2114fdf6f5
more syncing work
...
no checks yet
2020-06-01 13:57:10 +10:00
Damien Elmes
4d1e8d678d
full upload/download HTTP code
2020-06-01 13:57:10 +10:00
Damien Elmes
f17dec9f2a
start on HTTP client for syncing
2020-06-01 13:57:10 +10:00
Damien Elmes
91e3256e6a
move dupe check to backend
2020-05-24 19:48:56 +10:00
Damien Elmes
0606bee2c5
fix rebuilding being done unnecessarily
2020-05-24 18:41:25 +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