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