flan
e8850f2a5a
Migrate old media DB if present
2020-01-04 05:51:33 +01:00
flan
e8f274ee84
Fix long media sync times on AnkiDroid
...
Based on PR #44 by Johannes Schirm <https://github.com/Marth68 >.
The code is pretty much the same, but with usn used instead of
mtime for determining which media files have changed since last
sync.
Relevant excerpt from #44 :
> The server was always sending metadata for all files in the
> collection as a response to the mediaChanges operation. Because
> AnkiDroid then calculates checksums for all these files (just to
> notice that they actually haven't changed), it took larger
> collections very long to sync after every media change. With this
> fix, only the number of files indicated by usn - lastUsn (and
> mtime) are considered for each sync.
Fixes #26 , closes #44 .
2020-01-04 05:51:33 +01:00
flan
10f47611bf
Store media usn per-file
...
Since anki.media.MediaManager does not store per-file usn (as it's
not really needed for anything in the client), this requires us to
drop it and implement a custom media manager.
2020-01-04 05:51:33 +01:00
flan
ac1920d078
Make SyncMediaHandler not inherit anki.sync.MediaSyncer
...
All endpoints are implemented in the child class now, so there's
no need to use any code from the parent class.
2020-01-04 05:51:33 +01:00
flan
c07fe0e65c
Print version on startup
...
The version is determined from either the contents of _version.py
(expected to be present in release tarballs) or the output of
`git describe --always`.
2020-01-04 05:39:24 +01:00
flan
316e553681
Make comment for SyncCollectionHandler.removed() less confusing
2020-01-03 03:03:21 +01:00
flan
7f551f47f7
Remove unused argument to logger.error()
2020-01-03 03:02:42 +01:00
flan
7ef3d4f3fa
Fix full sync on Windows
...
From <https://docs.python.org/3.7/library/os.html#os.rename >:
> On Windows, if dst already exists, OSError will be raised even if
> it is a file.
...
> If you want cross-platform overwriting of the destination, use
> replace().
Thanks to kerry liu (https://github.com/hqzxjczx ) for reporting this.
Fixes #32 .
2019-04-16 19:57:24 +02:00
flan
b9a1203491
Don't create DBs during schema check if they don't exist
2019-03-16 15:24:46 +01:00
flan
5ad14b01b4
Notify the user about DB migrations
2019-03-14 00:45:29 +01:00
Anton Melser
fa89b0e0a2
Load the CollectionWrapper from a factory method
...
This allows a class implementing CollectionWrapper's interface to be
added from config
2019-03-09 14:05:15 +08:00
Anton Melser
9ee9697582
Move the upload/download sqlite3 file logic to a manager
...
Also add a factory method so the manager can be controlled via config
2019-03-09 14:05:15 +08:00
Anton Melser
50cc6a12d9
Use factory method for session_manager
...
Also add some abstraction over the SQL to allow for different SQL
dialects
2019-03-09 14:05:15 +08:00
Anton Melser
ea0cbc669b
Use factory method for user_manager
...
Also add some abstraction over the SQL to allow for different SQL
dialects
2019-03-09 14:05:12 +08:00
flan
7b408bdf5b
Don't log very long strings unless debugging
2019-03-08 17:00:59 +01:00
flan
4fe378adce
Add username field to CollectionWrapper
2019-03-08 14:24:58 +01:00
flan
5051144124
Include request parameters in log messages
2019-03-08 14:24:58 +01:00
flan
f5b6cf464d
Include time in log messages
2019-03-08 14:24:58 +01:00
flan
fe635b317f
Use logging module for HTTP request logging too
2019-03-08 14:24:58 +01:00
flan
47cf75d8d6
Log all ankisyncd events under ankisyncd.*
2019-03-08 14:24:58 +01:00
Anton Melser
75fecf6e6f
Add support for setting/overriding config from envvars
...
This is practical for environments like docker/kubernetes
2019-03-08 15:11:32 +08:00
flan
970664e6a9
Revert "Simplify version suffix patch"
...
95ccbfdd36 broke it
This reverts commit 61b4582364 .
2019-02-19 00:52:43 +01:00
flan
61b4582364
Simplify version suffix patch
2018-12-24 16:31:36 +01:00
reivilibre
da1150d7af
Fixes inability to sync with beta versions of Anki
...
The version string for '2.1.6-beta2' is reported as '2.1.6-' which
causes a problem when trying to parse '6-' as an integer.
2018-12-13 00:36:13 +01:00
flan
c68fd12d67
Make config paths easier to override
2018-08-28 18:07:27 +02:00
flan
92d6579c83
Replace remaining prints with logging.info calls
2018-08-28 17:59:29 +02:00
flan
527991beea
Don't check if config file exists before loading it
2018-08-28 17:58:11 +02:00
flan
dbdb3ffb3b
Make UserManager errors less redundant
2018-08-28 17:26:26 +02:00
flan
129647cb70
Move logging.basicConfig call up to include messages from imported modules
2018-08-28 17:16:19 +02:00
flan
5bcb01bd9e
Use predefined config locations
2018-08-28 17:15:40 +02:00
flan
9fb00c80b9
Remove debug print
2018-08-22 14:22:54 +02:00
flan
ef39c8c385
Drop unsupported clients if they try to sync a v2 collection
2018-08-20 18:41:36 +02:00
flan
6b9aaa0a6c
Check client version in SyncCollectionHandler.meta
...
When the server sends an error response (4xx/5xx), the desktop
client displays "user friendly" error messages instead of
the actual response body.
2018-08-20 18:27:43 +02:00
flan
0b9f30adea
Implement applyGraves
2018-08-20 18:02:09 +02:00
flan
3e26fab3a3
Add methods removed in dae/anki@d6874de8
...
Reference: d6874de8c8
2018-08-20 17:03:47 +02:00
flan
a83e68412d
Remove media patch, put usnLim in server code
...
Since dae/anki@d6874de8 , usnLim always returns -1 regardless of the
`server` attribute.
Reference: d6874de8c8
2018-08-20 15:44:13 +02:00
flan
8b9961febc
Prefer anki-bundled if it exists
2018-08-20 14:44:29 +02:00
flan
c3024ba396
Make the server runnable with python3 -m ankisyncd
2018-08-20 14:42:40 +02:00
flan
7ace256e0a
Check for protocol version before proceeding
2017-11-09 15:56:25 +01:00
flan
de7b6ec22f
Remove redundant try/catch block around os.makedirs()
2017-11-08 13:49:28 +01:00
flan
aae65cc5d8
Remove redundant else blocks
2017-11-08 13:43:27 +01:00
flan
c0ea23c307
Monkey patch anki at runtime
...
The server should work fine with /usr/share/anki now, as long as
external Anki version >= 2.1.
2017-11-06 23:01:08 +01:00
flan
2a27d78591
Use config specified in argv[1]
2017-11-06 21:06:45 +01:00
flan
59f28faa1e
Use mapping protocol access instead of legacy configparser API
2017-11-06 21:06:18 +01:00
flan
354354ca72
Make built-in server actually use the "host" config field
2017-11-06 17:36:00 +01:00
flan
ca106e6136
Clean up imports
2017-11-06 17:27:13 +01:00
flan
7d1a222501
Remove redundant except block
...
ValueError is handled in _decode_data() already
2017-11-06 17:06:49 +01:00
flan
e97a11edb4
Make spacing more consistent
2017-11-06 16:56:13 +01:00
flan
9ffd380e64
Make it possible to use hooks before and after every sync operation
...
Excluding media sync.
2017-11-05 23:34:49 +01:00
flan
65bef264be
Use int instead of str for the response code
2017-11-05 22:17:37 +01:00