Commit graph

48 commits

Author SHA1 Message Date
Damien Elmes
15b349e3a8 start port to python 3
unit tests pass and main screens of GUI load
2016-05-12 14:45:35 +10:00
Damien Elmes
a27847de58 DEV->ANKIDEV 2015-05-19 14:26:33 +10:00
Damien Elmes
a0bad7da45 update media url 2015-03-13 17:06:34 +11:00
Damien Elmes
67c86e8f5e make sure sync msg is saved before we abort sync 2015-03-12 12:51:05 +11:00
Damien Elmes
7024fed002 fix cont=False handling in sync 2015-03-02 21:09:12 +11:00
Damien Elmes
e294469521 cont should be checked befoer any further processing 2014-11-06 16:56:16 +09:00
Damien Elmes
6e7e08ebd0 be explicit about modSchema()'s check flag
- remove gui code that adds exceptions for syncing
- use check=False for all syncing and upgrade code
2014-11-03 16:28:12 +09:00
Damien Elmes
3d5d852708 reduce sync chunk size 2014-10-19 16:58:26 +09:00
Damien Elmes
3ee1937310 we need to count up for downloads
as we're streaming changes we don't know the total amount of downloads
required
2014-07-29 07:37:30 +09:00
Damien Elmes
cf801e4fb4 display more feedback when syncing media
deletes in particular take some time for the server to process, but
don't require much bandwidth, leading to the progress appearing to
have pause when content is actually being processed

this also gives the user an idea of how long the process will take to
complete
2014-07-28 17:00:26 +09:00
Damien Elmes
f5d60c70e2 remove unused functions 2014-07-28 14:28:12 +09:00
Damien Elmes
ba8ed39e13 fix media sync thinking >25 changes is a concurrent update 2014-07-15 11:36:52 +09:00
Damien Elmes
77c9d5f5f3 tweak dev url 2014-07-12 18:21:49 +09:00
Damien Elmes
df72c5a55f split media and regular server urls 2014-07-08 11:16:51 +09:00
Damien Elmes
a93c3423e3 must commit on concurrent update 2014-07-04 18:06:40 +09:00
dae
2aa7714f87 new media syncing protocol
- media syncing no longer locks the account, so it can be done
  in the background in the future, and multiple clients can safely
  sync media at the same time
- all operations are now idempotent, so they can be repeatedly safely
  in the event of a connection error
- whether it's a normal incremental sync, an initial sync,
  or the media database has been deleted, no files will be uploaded
  or downloaded if they already exist on the other side
- file removals are now chunked like additions & updates, preventing
  timeouts due to large requests
- if the server can't process a chunk in time, it will return a count
  of what it did process, so the client can retry the rest

Notes for AnkiDroid:

- when porting this, recommend you pick a different name for the
.media.db2 file, so users don't accidentally copy the AD version to
the desktop or vice versa
- please make sure filenames are added to the zip in NFC form
2014-06-26 09:00:38 +09:00
dae
bc90904acd return success if media sync completes 2014-06-05 13:33:47 +09:00
Damien Elmes
c529a77686 bundle new and old cert
fails to validate on some systems even when httplib2's default
certs are bundled, so we need this not just for SNI
2014-04-11 01:13:55 +09:00
Damien Elmes
fcc4df821f disable explicit ca_certs
may have added this to support beta.ankiweb.net as python doesn't
support SNI, but it prevents changing cert
2014-04-10 14:02:35 +09:00
Damien Elmes
4e900b4608 pass client media count to server 2013-12-09 17:36:17 +09:00
Damien Elmes
9334bc37fa log media sanity 2013-11-13 16:54:25 +09:00
Damien Elmes
bab63de768 silly me, we were overriding retries in the aqt monkeypatch 2013-10-20 10:25:25 +09:00
Damien Elmes
9b27b06b68 fix retries count for unit tests 2013-10-19 12:53:18 +09:00
Damien Elmes
313fc7c9ef more generous timeout 2013-10-18 14:22:03 +09:00
Damien Elmes
01832a9139 disable http retries
logs indicate client was retrying based on timeout and so on,
causing more problems
2013-10-18 14:21:47 +09:00
Damien Elmes
b99533a5ad add logging to some scheduling and syncing code 2013-10-18 11:52:21 +09:00
Damien Elmes
8d7edcb2bb include a session key when syncing 2013-10-10 22:59:34 +09:00
Damien Elmes
3ed2861115 include platform in cv 2013-10-06 04:37:39 +09:00
Damien Elmes
f29a04ae29 bump sync ver to 7 and change meta return value
- /sync/meta now returns a dictionary
- it includes the following extra fields
- msg: if non-empty, show this message at the end of the sync
- cont: if false, show above message and abort sync
- uname: the user's email address, so it can be stored by the local client to
  show users who have forgotten which email address they used. in the future
  this will be saved only when logging in, so do a conditional access on it
2013-10-04 06:09:28 +09:00
Damien Elmes
33403fd890 include client type in cv 2013-10-02 04:09:16 +09:00
Damien Elmes
621ba0e1ac include client version in /sync/meta 2013-10-02 03:53:10 +09:00
Damien Elmes
be78c3f9e3 better msg when media sanity fails 2013-05-30 10:54:55 +09:00
Damien Elmes
744d9abfdb fix modification check in note merge 2013-05-28 14:41:12 +09:00
Damien Elmes
dceacff47c tell server which files we need 2013-05-27 15:29:24 +09:00
Damien Elmes
0a81df60dc automatically resync media, and don't send media server already has (#583) 2013-05-27 14:25:30 +09:00
Damien Elmes
ab198c46be unify pre-check, sanity-check and upload error messages 2013-05-14 15:41:18 +09:00
Damien Elmes
e913c75fd7 perform basic check prior to syncing 2013-05-14 15:10:58 +09:00
Damien Elmes
d2535fd6cb run basic integrity check prior to full up 2013-05-13 19:36:09 +09:00
Damien Elmes
e64d825730 fix some sync issues
- better error message when upload fails
- don't show success message on error
- fix 'unable to find server' accidentally being catchall
2013-03-01 01:36:14 +09:00
Damien Elmes
1efafedcaa fix sanityCheck2 bug 2013-02-26 15:23:01 +09:00
Damien Elmes
073f129ab8 fix media sanity fail being identified as normal sanity error 2013-01-29 09:05:55 +09:00
Damien Elmes
8aadb18d4d better warning when certs missing 2013-01-26 22:25:50 +09:00
Damien Elmes
8d66578d43 move sanity check to server and automatically force full sync
- server will log mismatches so we don't require people to post on the forums
  anymore or manually force a full sync
- if we find problems like missing notes, report that in the sanity check so
  the server can keep track of problems
- when the server detects a conflict it can immediately abort the sync, so a
  subsequent sync will no longer report a conflict
2013-01-18 09:17:12 +09:00
Damien Elmes
f5028c2573 force rdns for proxy (#331) 2013-01-15 07:30:49 +09:00
Damien Elmes
e2c4fd5945 patch for httplib2 change from Arfrever 2012-12-22 13:31:36 +09:00
Damien Elmes
cc9bbb2ab7 disable cert check when running through proxy 2012-12-22 09:20:54 +09:00
Damien Elmes
b2457811a2 optimize imports 2012-12-22 09:17:10 +09:00
Damien Elmes
d477df8c28 merged libanki and ankiqt into single distro 2012-12-21 16:51:59 +09:00