Commit Graph
100 Commits
Author SHA1 Message Date
flan 970664e6a9 Revert "Simplify version suffix patch"
https://github.com/dae/anki/commit/95ccbfdd3679dd46f22847c539c7fddb8fa904ea broke it

This reverts commit 61b4582364.
2019-02-19 00:52:43 +01:00
flan c85f50460a Fix up default config
whoops
2019-02-05 00:49:27 +01:00
flan b1157bac25 Add link to Docker instructions
Fixes #16
2019-02-05 00:35:03 +01:00
flan bb1dba1b99 Update addon folder
It depends on the platform anyway, and the directory in the README
was outdated anyway (https://github.com/dae/anki/commit/57c8e433274c95c5bd059cd7fe4d6483a949d869).
2018-12-24 17:19:15 +01:00
flan 85aac784db Add enabled check back
Accidentally removed it in 360b2d08ed.
2018-12-24 16:47:26 +01:00
flan 537c4daa94 Make potential future instances of #8 easier to debug
With hostNum prepended to the address, the client won't even be
able to connect and will return an error message with the invalid
address.

Example:
    requests.exceptions.InvalidSchema: No connection adapters were found for '6http://localhost:27701/sync/meta'
2018-12-24 16:38:10 +01:00
flan 61b4582364 Simplify version suffix patch 2018-12-24 16:31:36 +01:00
flan 360b2d08ed Make hostNum empty when changing sync server
Should fix an error encountered when the user used AnkiWeb in the
past and receives a JSON decode error because an unrecognized
endpoint (/[somenumber]sync instead of /sync) doesn't return what
the client expects.

Closes #10, fixes #8.
2018-12-24 16:28:34 +01:00
flan 32a81dc028 Make the addon modify anki.sync.SYNC_BASE 2018-12-24 15:50:16 +01:00
flan 00ec46eab3 Clarify what the supported version range applies to 2018-12-17 16:58:09 +01:00
flan 8b832497b4 Update anki-bundled to 2.1.7 2018-12-17 16:51:45 +01:00
flan e892c0a22c Add test case for ankidesktop 2.1.6-beta2 2018-12-13 00:33:06 +01:00
flan 6a073635ac Update unit tests 2018-12-13 00:33:02 +01:00
flan 56beb0950e Update anki-bundled to 2.1.3 2018-08-31 04:39:50 +02: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 242c423c13 Use format() instead of concatenation 2018-08-28 17:35:08 +02:00
flan 2538db5c07 Remove redundant checks, check if user exists before changing password 2018-08-28 17:34:31 +02:00
flan dbdb3ffb3b Make UserManager errors less redundant 2018-08-28 17:26:26 +02:00
flan 59fcf9e8c1 Fix ankisyncctl error messages 2018-08-28 17:26:08 +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 ec63149d5c Add GUI addon 2018-08-25 04:26:40 +02:00
flan b96f74224b Move pyaudio stuff to the bottom 2018-08-23 16:28:27 +02:00
flan a7c230c4bb Reformat addon instructions a bit 2018-08-23 16:19:14 +02:00
flan 45133a0a64 Add information about pyaudio 2018-08-23 16:10:16 +02:00
flan 08a2b0e779 Fix directory name in README 2018-08-22 14:45:56 +02:00
flan b20c69d613 Clarify supported Python version 2018-08-22 14:45:38 +02:00
flan 47294d1585 Add more information about incompatible versions 2018-08-22 14:37:46 +02:00
flan abb2d35bdf Mention the need to have Anki installed 2018-08-22 14:30:47 +02:00
flan 5a95b62a74 Use python -m ankisyncd in README 2018-08-22 14:26:58 +02:00
flan 9fb00c80b9 Remove debug print 2018-08-22 14:22:54 +02:00
flan ff8148b6fb Add major fork changes to README 2018-08-20 18:51:20 +02:00
flan ef39c8c385 Drop unsupported clients if they try to sync a v2 collection 2018-08-20 18:41:36 +02:00
flan be7d57a1a5 Add Anki 2.1 instructions 2018-08-20 18:40:03 +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 c4fad436c1 Update anki-bundled to 2.1.1 2018-08-20 15:39:59 +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 82d7126425 Use cwd in ankisyncctl.py for now 2018-08-20 04:05:18 +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 1677ed38b9 Update comment 2017-11-04 17:39:37 +01:00
flan af8548182b Shorten MockServerConnection.post() 2017-11-04 17:38:29 +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 5aff76fee7 Update mock server 2017-11-04 03:35:55 +01:00
flan 3d6a2a639a Remove explicit inherits from object 2017-11-04 02:53:52 +01:00
flan 95eadafb9b Update anki to 7b1747d6504c9091a34793cebaa559b9fb6968df
This is the last commit that still runs on Python 3.5.
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 d4f7c87fb4 Remove debug prints 2017-11-04 01:44:49 +01:00
flan ec83527fa4 Remove unused function 2017-11-04 01:41:45 +01:00
flan f5050582ba Remove unnecessary class from helpers.server_utils 2017-11-04 00:47:34 +01:00
flan a48ad44a65 Remove unnecessary class from helpers.file_utils
A class which keeps track of temporary files and removes them
automatically when they're not needed anymore might be a good idea,
but this implementation didn't remove files in some cases. Adding
unrelated methods that could as well be just standalone functions
is bad design, too.

In this case, it's better to just get rid of it altogether instead
of fixing it, since Python 3 has a TemporaryDirectory class, which
can be used for the same purpose and is definitely more
battle-tested.
2017-11-04 00:24:34 +01:00
flan e959d8745a Place all files in a single directory when testing user managers
Avoids possible filename conflicts.
2017-11-03 02:49:07 +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 a7e29c56f4 Patch anki using git apply 2017-11-01 18:42:43 +01:00
flan bf02a98a93 Update test_meta() for Anki >=2.0.27 2017-11-01 18:13:35 +01:00
flan 97382f3eb8 Fix check for AnkiDroid 2.3 2017-11-01 18:06:13 +01:00
flan e1f7c422df Show failing versions when testing _old_client() 2017-11-01 17:45:47 +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 bdcbb9eced Note which commit motivated creation of test_login() 2017-11-01 04:35:02 +01:00
flan 6617398921 Don't hardcode location of sqldiff 2017-11-01 04:09:13 +01:00
flan ce3aa4a685 Make DB utils more general 2017-11-01 04:09:09 +01:00
flan 55bdbfacaa Remove unused lines 2017-10-30 19:56:17 +01:00
flan 39f3ee110d Make test file names follow a single convention
Makes it possible to run all tests by executing
`python -m unittest discover ./tests`.
2017-10-30 19:28:56 +01:00
flan 765cce3d74 Move hostKey handling to a separate function 2017-10-30 19:23:32 +01:00
flan ce6433b9ba Add functional tests for authentication 2017-10-30 19:19:04 +01:00
flan 3792c89ecb Fix authentication
c7d7ff3e85 broke it
2017-10-29 19:36:51 +01:00