Commit graph

91 commits

Author SHA1 Message Date
Damien Elmes
e1f817a258 test shouldn't depend on dentry order 2020-02-17 08:40:17 +10:00
Damien Elmes
0da393da81 expire media trash after a week 2020-02-17 08:40:17 +10:00
Damien Elmes
a0680553ea use our own trash folder instead of using the system trash
the trash crate was invoking external commands on Macs and Linux
which is slow and likely to fall over if a large number of files need
to be deleted at once.
2020-02-17 08:40:17 +10:00
Damien Elmes
27b783ac72 tidying 2020-02-17 08:40:17 +10:00
Damien Elmes
76a61b8adf hold the DB open for the duration of the check 2020-02-17 08:40:17 +10:00
Damien Elmes
f1b0431cbd DB check
Working, but should be refactored so media DB not re-opened
each time a file is renamed.
2020-02-17 08:40:17 +10:00
Damien Elmes
5ec977c74b factor entry code out for later 2020-02-17 08:40:17 +10:00
Damien Elmes
1ca15c10d6 mgr didn't need to be mutable 2020-02-17 08:40:17 +10:00
Damien Elmes
2d859df88f nfc helper 2020-02-17 08:40:17 +10:00
Damien Elmes
7079063855 ignore 0 byte files when picking up changes 2020-02-17 08:40:17 +10:00
Damien Elmes
62924237d3 don't add non-normalized files to media DB 2020-02-17 08:40:17 +10:00
Damien Elmes
88ac38fc55 media table doesn't need rowid 2020-02-17 08:40:17 +10:00
Damien Elmes
51e5d4b792 dirty index doesn't need to cover false case 2020-02-17 08:40:17 +10:00
Damien Elmes
742ab59edb handle read errors during zip build 2020-02-17 08:40:17 +10:00
Damien Elmes
ef522b235a clean up invalid media DB entries on the fly, instead of requiring DB check 2020-02-17 08:40:17 +10:00
Damien Elmes
9c60f2c77e log media DB change registration progress, and allow aborting it 2020-02-17 08:40:17 +10:00
Damien Elmes
8e31068f0a move change tracking into separate file 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
b21d24f6e8 move sync_media() into MediaManager 2020-02-17 08:40:17 +10:00
Damien Elmes
a769fb6172 update rslib version automatically 2020-02-17 08:40:17 +10:00
Damien Elmes
b62819092a remove duplicate method 2020-02-17 08:40:17 +10:00
Damien Elmes
e352a6b95c tidy up sync.rs 2020-02-17 08:40:17 +10:00
Damien Elmes
08eb9d70c8 handle concurrent modifications and ankiweb terminating early 2020-02-17 08:40:17 +10:00
Damien Elmes
3ee1d3f0da update dirmod as files added during sync 2020-02-17 08:40:17 +10:00
Damien Elmes
775c83e89a add debug line 2020-02-17 08:40:17 +10:00
Damien Elmes
00cd3be1a0 fix force_resync() 2020-02-17 08:40:17 +10:00
Damien Elmes
c0e7975fe7 rename non-normalized filenames when downloading 2020-02-17 08:40:17 +10:00
Damien Elmes
2c27c11584 comply with manylinux wheel requirements, and vendor sqlite on Windows 2020-02-17 08:40:17 +10:00
Damien Elmes
1f931a5b78 defer errors on upload to media check 2020-02-17 08:40:17 +10:00
Damien Elmes
2cecae4ca7 add proper version 2020-02-17 08:40:16 +10:00
Damien Elmes
77158760ff use enums for some common errors 2020-02-17 08:40:16 +10:00
Damien Elmes
81262ffd95 defer media DB load until media action performed
This means a corrupt media DB will not prevent collection load.
2020-02-17 08:40:16 +10:00
Damien Elmes
b883b09414 pass in endpoint 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
50d8a40e23 add progress hook to media sync 2020-02-17 08:40:16 +10:00
Damien Elmes
e26ab9073b send removed files to the trash
The way the trash crate implements deletion on a Mac is ugly, and
we may need to look into alternatives.
2020-02-17 08:40:16 +10:00
Damien Elmes
e764e68324 store sync state in a struct, and reuse ctx across methods 2020-02-17 08:40:16 +10:00
Damien Elmes
78bfbef863 media sync working, but unpolished 2020-02-17 08:40:16 +10:00
Damien Elmes
b2b8370477 bump nightly for the unwrap source line fix 2020-02-17 08:40:16 +10:00
Damien Elmes
973d8c56d6 more refactoring 2020-02-17 08:40:16 +10:00
Damien Elmes
7430d3c64f rearrange some methods to make structure clearer 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
6bf4b9e83e port change tracking 2020-02-17 08:40:16 +10:00
Damien Elmes
4f08ae9e27 make sure results are checked 2020-02-17 08:40:16 +10:00
Damien Elmes
9bc38647e6 initial rs implementation of media database 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
Damien Elmes
9ec6d26db7 add another implementation of media.addFile() and cleanFilename() et al
Instead of adding an incrementing number in the conflict case,
the file hash is appended.
2020-02-17 08:40:16 +10:00
Damien Elmes
391a58077a show which side the template error occurred on 2020-02-08 11:54:08 +10:00
Damien Elmes
fc3570c949 clearer error when closing tags transposed 2020-02-08 10:32:34 +10:00
Damien Elmes
86a580d820 reuse reveal_cloze_text() for LaTeX cloze expansion 2020-01-28 07:40:44 +10:00