Commit graph

3153 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
a98889f69e set deployment target on Mac builds 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
469798f523 autosync media every ~15 minutes 2020-02-17 08:40:17 +10:00
Damien Elmes
14cb7357fb autosync media on close 2020-02-17 08:40:17 +10:00
Damien Elmes
728e71f589 autosync media on startup 2020-02-17 08:40:17 +10:00
Damien Elmes
e9884a4b14 add extra hook for media sync start/stop 2020-02-17 08:40:17 +10:00
Damien Elmes
2cecae4ca7 add proper version 2020-02-17 08:40:16 +10:00
Damien Elmes
5835a68f47 if toolbar refreshed, make sure not to clear syncing 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
85b5c26930 catch DB errors in sync 2020-02-17 08:40:16 +10:00
Damien Elmes
bd14e30f63 constant sync spin speed 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
c489b6b7ac catch network errors 2020-02-17 08:40:16 +10:00
Damien Elmes
c02a490be0 move more logic into mediasync.py, handle auth errors 2020-02-17 08:40:16 +10:00
Damien Elmes
ecab2da99e remove unused code 2020-02-17 08:40:16 +10:00
Damien Elmes
1ba2e30854 show spinner when media sync active, click to reveal dialog 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
804432fb3e use separate fn to init backend, for future pyo3 0.9 release compat 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