Damien Elmes
9fcd6c66f4
fix nonbreaking spaces breaking media
...
https://forums.ankiweb.net/t/unable-to-play-longer-audio-on-cards/1313
2020-08-30 11:23:12 +10:00
Soren Bjornstad
a3a1f49be1
fix unanchored regex in bulk tag add routine
...
Previously, it was not possible to add a substring of an existing tag.
For example, with the tag "foobar", you could not add the tag "foo",
"bar" or "oob".
Because the match was unanchored, the regex checking whether the tag
already existed determined that the tag was present when it was not.
2020-08-28 16:21:23 -05:00
Damien Elmes
4662a9fe1a
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
a7e254e81d
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
7bcec00ef4
fix some clippy lints
2020-08-26 19:02:56 +10:00
Damien Elmes
fe8e3c7c7e
use commit hash in reqwests dependency
2020-08-26 18:50:25 +10:00
Damien Elmes
07151faae8
add escape hatch for very slow connections
2020-08-26 18:44:20 +10:00
Damien Elmes
06e00be985
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
7f15d06c58
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
7e6a65ed3d
bump version
2020-08-26 08:05:45 +10:00
Damien Elmes
ef7f61ab39
Revert "vendor reqwest for now, to support read/write timeouts"
...
This reverts commit cf247baf77
.
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
7d7c791504
bump version
2020-08-24 11:28:22 +10:00
Damien Elmes
134765036c
don't crash when upgrading collection with ntid of 0
2020-08-23 14:14:44 +10:00
Damien Elmes
63b8b32602
normalize field before checking duplicates
...
https://forums.ankiweb.net/t/unicode-normalisation/2531
2020-08-23 12:09:55 +10:00
Damien Elmes
4df89c7c26
ensure we don't crash on a zero field notetype
2020-08-23 12:09:36 +10:00
Damien Elmes
fa46ef9e37
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
85d99f7348
catch timeout error
2020-08-21 19:03:23 +10:00
Damien Elmes
cf247baf77
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
98a0753eb8
average ease + add % to ease ticks
2020-08-21 13:00:16 +10:00
ANH
94b80cfb94
add custom-study-must-rename-deck to Fluent
2020-08-19 18:27:14 +03:00
Damien Elmes
8a9a9591cb
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
529deff82a
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
dab0c9ef7c
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
d24bd7609c
allow setting sort field before add
2020-08-17 19:44:09 +10:00
Damien Elmes
9e53c84a35
fix globs not working in bulk tag add/remove
2020-08-17 18:14:00 +10:00
Damien Elmes
63f8e510d8
journal mode was not being set on media db
2020-08-17 12:30:14 +10:00
Damien Elmes
85e2db8ab0
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
9334272a27
generate extra templates when recovering notetype
2020-08-10 13:42:37 +10:00
Damien Elmes
e6e9cb348e
show ordinal if card template missing
2020-08-10 13:41:22 +10:00
Damien Elmes
6a0faac407
deauth -> log out
2020-08-09 14:44:03 +10:00
Damien Elmes
b380f304bf
bump version
2020-08-09 13:44:59 +10:00
Damien Elmes
06a69c25e6
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
8363719994
handle negative review times in sync
2020-08-07 15:02:03 +10:00
Damien Elmes
0180868b60
fix negative review times in DB check
2020-08-07 14:37:44 +10:00
Damien Elmes
27cf01d01f
clarify 'add mobile class'
2020-08-07 13:24:04 +10:00
Damien Elmes
41d37464e6
add some extra help to the json decode error
2020-08-07 13:13:11 +10:00
Damien Elmes
1229636910
"average over period"
2020-08-05 16:06:24 +10:00
Damien Elmes
ab8ffaf4f0
fix unterminated section
2020-08-04 16:29:22 +10:00
Damien Elmes
f8b73230a6
formatting and new strings in scheduling.ftl
2020-08-04 16:19:49 +10:00
Damien Elmes
cd4a4dada8
added graph table
2020-08-04 16:01:11 +10:00
Damien Elmes
fcbf254917
fix plural
2020-08-04 15:28:49 +10:00
Damien Elmes
a5a12e0d00
add textual data to reviews graph
2020-08-04 14:28:46 +10:00
Damien Elmes
79536ef544
add some extra graph strings
2020-08-04 12:01:31 +10:00
Damien Elmes
b363aaf401
handle some instances of floats when an integer is expected during sync
2020-08-03 17:47:15 +10:00
Damien Elmes
f1a30c243a
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
710127d490
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
e2425d3b0d
remove 'invert', as night mode is on when checkbox is on
2020-07-31 14:35:18 +10:00
Damien Elmes
1a1919b6ac
title case
2020-07-31 14:24:08 +10:00
Damien Elmes
efc19a32a0
fix button display on Macs
2020-07-31 14:23:56 +10:00
Damien Elmes
0ed50394e7
Merge branch 'master' into master
2020-07-31 14:14:10 +10:00
Damien Elmes
0edb043f53
i18n some card template strings
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
469272659f
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
3aba7c0eee
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
43620b0a30
use 'Preview Settings' as a label for the new options button
2020-07-30 18:04:50 +03:00
ANH
03a80e596a
add night mode and mobile class toggles in card layout screen
2020-07-30 15:39:02 +03:00
Damien Elmes
a1866e72fd
handle preview repeat in deck list
2020-07-30 09:11:13 +10:00
Damien Elmes
01d20044e7
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
6f76b86f7c
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
7e7f2d0be4
clearer message when template error is preventing save
2020-07-29 12:53:03 +10:00
Damien Elmes
227703f9fa
bump version
2020-07-28 12:59:56 +10:00
Damien Elmes
1737a15766
show card stats in reverse order like older Anki versions
2020-07-28 09:49:27 +10:00
Damien Elmes
2bed018768
fix note/card ids being flipped in card stats
2020-07-28 09:49:11 +10:00
Damien Elmes
80a2bfa642
ask user to check db when graphs fail to load
2020-07-24 09:56:28 +10:00
Damien Elmes
6af5cb9f38
strip unwanted control characters when writing fields
...
closes #661
2020-07-24 09:18:05 +10:00
Damien Elmes
a3d8bd1a45
clarify comment
2020-07-24 09:01:14 +10:00
Damien Elmes
4b6033e17f
use short form for time units in graph axis
2020-07-22 12:59:56 +10:00
Damien Elmes
412f1777bd
bump version
2020-07-21 15:54:14 +10:00
Damien Elmes
10afe2883a
add cloze-only filter
...
https://anki.tenderapp.com/discussions/ankidesktop/42383-two-feature-suggestions
2020-07-21 12:59:28 +10:00
Damien Elmes
61017a2e21
i18n some sync errors
2020-07-16 13:55:59 +10:00
Damien Elmes
fa239be124
add platform version back into sync metadata
2020-07-16 10:12:41 +10:00
Damien Elmes
1205db6484
panic fix was merged into hyper 0.13.7
2020-07-16 09:09:13 +10:00
Damien Elmes
df5487875b
vendor coarsetime so we can get the use after free fix
2020-07-13 13:34:37 +10:00
Damien Elmes
75443b5171
update rslib/rspy deps
2020-07-12 11:38:25 +10:00
Damien Elmes
df319c7c58
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
833d352e54
drop 1 month period
2020-07-06 19:16:03 +10:00
Damien Elmes
13ebba41da
update title
2020-07-06 19:16:03 +10:00
Damien Elmes
0d287330c3
add 'no data' overlay when graph empty
2020-07-06 19:16:03 +10:00
Damien Elmes
19541c4a9d
fix deck tree with a day delta, and support arbitrary timestamps
2020-07-06 19:16:03 +10:00
Damien Elmes
5574c0dfb3
set schema on collection creation
2020-07-03 11:55:27 +10:00
Damien Elmes
05fb67d409
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
f8ca1d122d
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
7cd02eea8f
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
f3febea4b0
update edited/changed column labels
...
https://github.com/ankitects/anki/pull/674/files
2020-06-29 18:34:03 +10:00
Damien Elmes
d4cd4535e6
lint fixes
2020-06-29 15:53:56 +10:00
Damien Elmes
f30e52c4ed
group strings by graph
2020-06-29 15:48:01 +10:00
Damien Elmes
68978e7c4e
add remaining tooltip i18n
2020-06-29 15:48:01 +10:00
Damien Elmes
41b296e96c
i18n some tooltips
2020-06-29 15:48:01 +10:00
Damien Elmes
93b8cebf1e
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
7e0bdb990c
i18n some axis labels, and support vertical CJK text
2020-06-29 15:48:01 +10:00
Damien Elmes
595c509546
i18n graph titles
2020-06-29 15:48:01 +10:00
Damien Elmes
b78f578cd5
i18n ranges
2020-06-29 15:48:01 +10:00
Damien Elmes
28a6755c75
i18n card counts
2020-06-29 15:48:01 +10:00
Damien Elmes
01f3a71f0a
i18n today section
2020-06-29 15:48:01 +10:00
Damien Elmes
41d77b0255
get i18n working in typescript
2020-06-29 15:48:01 +10:00
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