Damien Elmes
c3b1266f47
fix some comments in wrong position after format
2021-01-09 14:26:51 +10:00
Damien Elmes
56e4e2d518
reformat .sql files
2021-01-09 14:08:55 +10:00
Damien Elmes
c96784c0eb
fix new clippy lints
2020-10-09 21:35:53 +10:00
Damien Elmes
c82a084edf
handle quoted html chars in media check
...
https://forums.ankiweb.net/t/unable-to-play-longer-audio-on-cards/1313/30
2020-09-04 09:36:38 +10:00
Damien Elmes
a834df60ce
rename some card+note fields in backend
2020-09-01 10:24:38 +10:00
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
Damien Elmes
7bcec00ef4
fix some clippy lints
2020-08-26 19:02:56 +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
63f8e510d8
journal mode was not being set on media db
2020-08-17 12:30:14 +10:00
Damien Elmes
75443b5171
update rslib/rspy deps
2020-07-12 11:38:25 +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
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
4fcb10bfa9
start on HTTP client for syncing
2020-06-01 13:57:10 +10:00
Damien Elmes
7bab99d873
support disabling unicode normalization in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
a7a485d550
use backend for genCards() and updateFieldCache()
2020-05-12 21:13:34 +10:00
Damien Elmes
d6706e1f0e
handle changed sort field index
2020-05-12 21:13:33 +10:00
Damien Elmes
a226f70733
cache notetypes
2020-05-12 21:13:33 +10:00
Damien Elmes
f75fd5335d
more work towards note adding
...
Still a prototype at this stage - we'll likely want a caching layer
for note types, and I'm not sure of the merit of having fields in
a separate table, since they're almost always required.
2020-05-12 21:13:33 +10:00
Damien Elmes
cc297f1dc6
move note db code to storage
2020-05-12 21:13:33 +10:00
Damien Elmes
8cfb1fad44
use native struct for NoteType
2020-05-12 21:13:33 +10:00
Damien Elmes
32bc1e88eb
migrate the schema11 usages to new structs/sql queries
2020-05-12 21:13:33 +10:00
Damien Elmes
805a3a710e
split note types into separate tables
...
- store the config in protobuf instead of json
- still loading+saving in bulk for now
- code using the schema11 structs needs to be migrated
2020-05-12 21:13:33 +10:00
Damien Elmes
a4d33dbdb0
report filename when unable to read data
2020-04-30 08:02:08 +10:00
Damien Elmes
18a6218a77
don't throw an error when a file is greater than MAXPATH
...
https://anki.tenderapp.com/discussions/ankidesktop/40931-check-media-error
2020-04-30 08:01:45 +10:00
Damien Elmes
37bc44a8f5
report the missing filename in media check
...
https://anki.tenderapp.com/discussions/ankidesktop/40578-check-media-error
2020-04-17 17:17:42 +10:00
Damien Elmes
36ec7830a9
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
546f4b44fc
FString -> TR
2020-04-01 18:16:43 +10:00
Damien Elmes
d396460332
ignore .DS_Store in trash
...
https://anki.tenderapp.com/discussions/ankidesktop/40035-anki-2123-on-macos-ds_store-files-in-new-anki-trash
2020-04-01 13:37:57 +10:00
Damien Elmes
6495240914
add some timeouts
...
I'm waiting to hear back from the reqwests author on the best way to
handle this. For now, this change just adds short timeouts
to the quick requests, and will wait for up to an hour when sending/
receiving files to allow for the slow connection+large file case.
2020-04-01 10:03:54 +10:00
Damien Elmes
fdeca610b0
drop separate RequestContext/StorageContext
2020-03-29 12:12:35 +10:00
Damien Elmes
f52e775354
NoteTypeID
2020-03-26 15:00:24 +10:00
Damien Elmes
14a970e923
rename long filenames in fields if files renamed in a previous sync
2020-03-23 18:38:45 +10:00
Damien Elmes
1f9e8e388a
start on search tests
2020-03-20 21:15:23 +10:00
Damien Elmes
9752de5aaa
finish the remaining searches
...
Searches that require multiple deck or note type lookups won't perform
very well at the moment - it either needs caching or to be split up
at the DB level.
Nothing tested yet.
2020-03-20 21:15:23 +10:00
Damien Elmes
94e4c40ebf
move media folder/db paths into collection
...
this breaks background media syncing for now
2020-03-20 21:15:23 +10:00
Damien Elmes
47c142a74c
move note code into notes.rs, add ability to rollback when unchanged
2020-03-20 21:15:23 +10:00
Damien Elmes
ae06b9e446
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
04ca8ec038
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
e3a57a4193
fix clippy lint on other platforms
2020-03-19 10:58:52 +10:00
Damien Elmes
617b18ff49
correctly handle NFD content in media DB from older Anki versions
2020-03-19 10:20:42 +10:00
Damien Elmes
9736e4a970
ignore remote file links in media check
2020-03-10 13:46:52 +10:00
Damien Elmes
0f4c3ab611
add restore media action
2020-03-10 13:35:09 +10:00
Damien Elmes
255d6f8af7
don't clean up the trash folder automatically
...
The media check now reports if any files are in the trash folder,
and a method has been exposed to clear the trash.
2020-03-10 12:02:38 +10:00
Damien Elmes
6e30572e6d
log sync errors
2020-03-10 09:43:48 +10:00
Damien Elmes
b4af0ca825
tweak logging
2020-03-10 09:30:05 +10:00
Damien Elmes
18cd841246
don't try to read file data when file marked as a deletion
...
If the user hadn't used the media check to clean up files with
invalid names on disk, the long filename would break the 'automatically
rename long filenames when syncing' functionality, causing the original
long filename to be uploaded to AnkiWeb as an addition instead of
a deletion
2020-03-10 09:29:36 +10:00
Damien Elmes
2f20be7a5a
fix incorrect mark_collection_modified()
...
- usn shouldn't be changed
- mtime is in milliseconds
2020-03-05 14:55:03 +10:00
Damien Elmes
ba4fe71eba
make logging explicit, and support logging to a file
2020-02-29 20:44:01 +10:00
Damien Elmes
3a1fc74ec3
remove some unused imports
2020-02-29 15:21:11 +10:00