def enote_oauth_callback(request): agent = OAuthAgent() consumer = agent.get_consumer() request_token = request.GET.get('oauth_token') request_secret = request.session['request_token_secret'] token = oauth.Token(request_token, request_secret) verifier = request.GET.get('oauth_verifier') if verifier: token.set_verifier(verifier) agent.agent_token = token client = agent.get_client() resp, content = client.request(agent.access_token_url(), 'GET') token_dict = dict(urlparse.parse_qsl(content)) auth_token = token_dict['oauth_token'] profile, c = ENoteProfile.objects.get_or_create(euserid=token_dict['edam_userId']) profile.auth_token = auth_token if c: client = ENoteClient(auth_token) user_store = client.get_user_store() userobj = user_store.getUser(client.auth_token) profile.shard_id = userobj.shardId user = User.objects.create_user(userobj.username, '*****@*****.**' % userobj.username) user.set_password(userobj.username + '.asdf') user.save() profile.user = user profile.note_store_url = token_dict['edam_noteStoreUrl'] profile.last_synced = datetime.now() - timedelta(seconds=settings.SYNC_INTERVAL) profile.save() # async if 0: note_store = client.get_note_store() processor = SyncNoteProcessor(client, user) state = note_store.getSyncState(client.auth_token) if state.updateCount > profile.update_count: processor.full_sync(state, use_tag=True) else: profile.save() user = profile.user u = authenticate(username=user.username, password=user.username + '.asdf') if u: login(request, u) return redirect(profile.get_absolute_url()) else: return redirect('/')
def enote_oauth_callback(request): agent = OAuthAgent() consumer = agent.get_consumer() request_token = request.GET.get('oauth_token') request_secret = request.session['request_token_secret'] token = oauth.Token(request_token, request_secret) verifier = request.GET.get('oauth_verifier') if verifier: token.set_verifier(verifier) agent.agent_token = token client = agent.get_client() resp, content = client.request(agent.access_token_url(), 'GET') token_dict = dict(urlparse.parse_qsl(content)) auth_token = token_dict['oauth_token'] profile, c = ENoteProfile.objects.get_or_create( euserid=token_dict['edam_userId']) profile.auth_token = auth_token if c: client = ENoteClient(auth_token) user_store = client.get_user_store() userobj = user_store.getUser(client.auth_token) profile.shard_id = userobj.shardId user = User.objects.create_user(userobj.username, '*****@*****.**' % userobj.username) user.set_password(userobj.username + '.asdf') user.save() profile.user = user profile.note_store_url = token_dict['edam_noteStoreUrl'] profile.last_synced = datetime.now() - timedelta( seconds=settings.SYNC_INTERVAL) profile.save() # async if 0: note_store = client.get_note_store() processor = SyncNoteProcessor(client, user) state = note_store.getSyncState(client.auth_token) if state.updateCount > profile.update_count: processor.full_sync(state, use_tag=True) else: profile.save() user = profile.user u = authenticate(username=user.username, password=user.username + '.asdf') if u: login(request, u) return redirect(profile.get_absolute_url()) else: return redirect('/')
def make_sync(user): profile = user.get_profile() auth_token = profile.auth_token client = ENoteClient(auth_token) note_store = client.get_note_store() processor = SyncNoteProcessor(client, user) state = note_store.getSyncState(auth_token) print 'profile update_count', profile.update_count, 'vs.', state.updateCount if state.updateCount > profile.update_count: processor.full_sync(state)
def sync_note(noteid, profile): client = ENoteClient(profile.auth_token) note_store = client.get_note_store() noteobj = note_store.getNote(profile.auth_token, noteid, False, False, False, False) processor = SyncNoteProcessor(client, profile.user) processor.get_hit_tag_guid() if processor.hit_tag_guid: processor.sync_note(noteobj) for nb in Notebook.objects.filter(user=profile.user): nb.update_cnt(save=True) else: logging.warn('No tag notelr')