Commit Graph
71 Commits
Author SHA1 Message Date
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: https://github.com/dae/anki/commit/d6874de8c8a1467323ac12337ec956afd1475a67
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: https://github.com/dae/anki/commit/d6874de8c8a1467323ac12337ec956afd1475a67
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
flan 978b1d7371 Make _check_zip_data() and _adopt_media_changes_from_zip() take a ZipFile 2017-11-04 18:42:21 +01:00
flan 0e5bbf4f9e Use more with statements 2017-11-04 18:41:56 +01:00
flan c9c02d3253 Resolve relative paths and symlinks before opening auth/session DB 2017-11-04 04:22:06 +01:00
flan 024e76423d Explicitly convert str and bytes where needed 2017-11-04 04:11:48 +01:00
flan 3d6a2a639a Remove explicit inherits from object 2017-11-04 02:53:52 +01:00
flan 32b82d5803 Fix up some changes made by 2to3 2017-11-04 02:53:49 +01:00
flan 0cc21101d7 2to3 everything 2017-11-04 02:06:42 +01:00
flan c08fb74d91 Enable logging 2017-11-04 01:53:44 +01:00
flan 9451d4df95 Remove redundant Response wraps 2017-11-03 02:18:28 +01:00
flan 5ec0dd7418 Remove redundant json.dumps() calls 2017-11-03 01:49:18 +01:00
flan 2ca7c596e3 Run msync handlers the same way as sync ones 2017-11-03 01:46:38 +01:00
flan d2bbb7150c Remove unused vars 2017-11-03 01:40:39 +01:00
flan 8e13c92b6e Use less from imports 2017-11-03 00:20:24 +01:00
flan c1b88c24f9 Make JSON check less lame 2017-11-03 00:19:52 +01:00
flan 910e557776 Rename username2dirname() to userdir() 2017-11-03 00:17:22 +01:00
flan 33868f013d Don't assume a non-SyncCollectionHandler operation is handled by SyncMediaHandler 2017-11-03 00:17:22 +01:00
flan a52c213088 Make operation_download() and operation_hostKey() return response body
This is more consistent, as all other handlers do the same.
2017-11-03 00:17:16 +01:00
flan 6e84242cc5 Use logging.warn() instead of print() for the auth warning 2017-11-01 19:56:38 +01:00
flan 17331136ca Use print functions everywhere 2017-11-01 19:48:35 +01:00
flan cb18fcb04a Move old_client() outside classes 2017-11-01 19:48:03 +01:00
flan 97382f3eb8 Fix check for AnkiDroid 2.3 2017-11-01 18:06:13 +01:00
flan 85c9b85c1f Make _old_client() support alphas/betas 2017-11-01 17:43:47 +01:00
flan 2dc1f28b04 Move version checks to a separate function, add test 2017-11-01 16:49:07 +01:00
flan 8195e58e3b Make parts of SyncUserSession more readable 2017-11-01 15:36:37 +01:00
flan 55bdbfacaa Remove unused lines 2017-10-30 19:56:17 +01:00
flan 765cce3d74 Move hostKey handling to a separate function 2017-10-30 19:23:32 +01:00
flan 3792c89ecb Fix authentication
c7d7ff3e85 broke it
2017-10-29 19:36:51 +01:00
Christoph Mackandflan c7d7ff3e85 Merge SyncApp's SqliteUserManager and the newly introduced UserManager and group all user managers in user_managers.py. 2017-10-28 22:45:27 +02:00
Christoph Mackandflan cb574aa0a7 Add test helper classes for creating and managing temporary files, working with anki collections and sqlite dbs. Add class for
managing users so users can be added programmatically without using ankiserverctl.
2017-10-28 21:55:19 +02:00
flan 99adc658d5 Remove support for legacy modules 2017-10-28 20:43:24 +02:00
Christoph Mackandflan 2cb5871ba3 Safer handling of uploaded database files during full sync.
Before overwriting its version of a user's collection database file with one uploaded by the client, the server now performs a basic integrity check using SQLite's 'pragma integrity_check'.
2017-10-28 20:02:59 +02:00