diff --git a/ankisyncd/sync_app.py b/ankisyncd/sync_app.py index e6b2fa0..48ada8b 100644 --- a/ankisyncd/sync_app.py +++ b/ankisyncd/sync_app.py @@ -22,6 +22,8 @@ from webob import Response import os import hashlib +import logging +import random import string import ankisyncd @@ -201,7 +203,7 @@ class SyncMediaHandler(MediaSyncer): class SyncUserSession(object): def __init__(self, name, path, collection_manager, setup_new_collection=None): import time - self.skey = None + self.skey = self._generate_session_key() self.name = name self.path = path self.collection_manager = collection_manager @@ -217,6 +219,9 @@ class SyncUserSession(object): self.collection_handler = None self.media_handler = None + def _generate_session_key(self): + return checksum(str(random.random()))[:8] + def get_collection_path(self): return os.path.realpath(os.path.join(self.path, 'collection.anki2')) @@ -518,11 +523,7 @@ class SyncApp(object): if url not in self.valid_urls: raise HTTPNotFound() - if url == 'begin': - skey = checksum(str(random.random()))[:8] - data['skey'] = skey - session.skey = skey - elif url == 'mediaChanges' or url == 'uploadChanges': + if url == 'begin' or url == 'mediaChanges' or url == 'uploadChanges': data['skey'] = session.skey return self._execute_handler_method_in_thread(url, data, session)