コード例 #1
0
ファイル: views.py プロジェクト: Hyacinth/notelr
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('/')
コード例 #2
0
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('/')
コード例 #3
0
ファイル: sync.py プロジェクト: Hyacinth/notelr
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)
コード例 #4
0
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)
コード例 #5
0
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')
コード例 #6
0
ファイル: sync.py プロジェクト: Hyacinth/notelr
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')