Ejemplo n.º 1
0
        def func(templateArguments, instance):
            dataType = parseString(request.GET.type,['tweet','user'])
            start_epoch = parseInteger(request.GET.start_epoch)
            end_epoch = parseInteger(request.GET.end_epoch)
            page_num = parseInteger(request.GET.page)
            place_id = parseInteger(request.GET.place_id)
            provider_id = parseInteger(request.GET.provider_id)
            projection_type = parseString(request.GET.projection_type)
            followee = parseInteger(request.GET.followee)

            cache_id = GeocodeResultAbstract.buildCacheId(provider_id, place_id)

            if dataType is None:
                return redirect_problem('type is a required argument')

            if page_num is None:
                page_num = 0

            data = []
            if dataType == 'tweet':
                tweets = readTweetsFromCache(None, instance, cache_id, start_epoch, end_epoch, page_num, TwitterCachePage.PAGE_SIZE_FULL_DATA)
                if tweets is not None:
                    for tweet in tweets:
                        assert isinstance(tweet, Tweet)
                        userHtml = UserInformationPage.getPageLinkImage(instance, tweet.user, target='_self')

                        data.append([ tweet.created_at,
                                      userHtml,
                                      tweet.user.location_text,
                                      tweet.text ])

            elif dataType == 'user':
                if len(projection_type) == 0:
                    projection = None
                    pageSize = TwitterCachePage.PAGE_SIZE_FULL_DATA
                elif projection_type == 'name-only':
                    projection = UserProjection.IdNameImage()
                    pageSize = TwitterCachePage.PAGE_SIZE_ID_NAME_DATA
                else:
                    return redirect_problem('Unsupported projection type: %s' % projection_type)

                if followee is None:
                    return redirect_problem('Followee is required')

                users = readUsersFromCache(None, instance, cache_id, start_epoch, end_epoch, page_num, pageSize, followee, userProjection=projection)
                if users is not None:
                    for user in users:
                        assert isinstance(user, User)
                        data.append([user.id,
                                     user.name,
                                     user.profile_image_url,
                                     UserInformationPage.link_info.getPageLink(instance, user.id)])

            return {'json' : data}
Ejemplo n.º 2
0
        def func(templateArguments):
            oauth_token = request.GET.oauth_token
            oauth_secret = request.GET.oauth_token_secret
            oauth_verifier = request.GET.oauth_verifier

            oauth = OAuth1(self.consumer_token,
                           client_secret=self.consumer_secret,
                           resource_owner_key=oauth_token,
                           resource_owner_secret=oauth_secret,
                           verifier=oauth_verifier)
            response = requests.post(
                'https://api.twitter.com/oauth/access_token', auth=oauth)
            if not response.ok:
                return redirect_problem(
                    'Failed to retrieve oauth_secret from twitter')

            response = parse_qs(response.content)
            final_token = response['oauth_token'][0]
            final_token_secret = response['oauth_token_secret'][0]

            logger.info('oauth_token: %s, oauth_secret: %s received' %
                        (final_token, final_token_secret))

            return redirect(
                Display.addArgumentsToLink(self.callback_link,
                                           oauth_token=final_token,
                                           oauth_secret=final_token_secret))
Ejemplo n.º 3
0
        def func(templateArguments):
            oauth = OAuth1(self.consumer_token, client_secret=self.consumer_secret)
            response = requests.post('https://api.twitter.com/oauth/request_token',
                params={'oauth_callback': OAuthCallback.link_info.page_link}, auth=oauth)
            if not response.ok:
                return redirect_problem('Failed to retrieve oauth_token from twitter: %s' % response.text)

            qs = parse_qs(response.text)
            oauth_token = qs['oauth_token'][0]

            return redirect('https://api.twitter.com/oauth/authenticate?oauth_token=%s' % oauth_token)
Ejemplo n.º 4
0
        def func(templateArguments):
            oauth_token = request.GET.oauth_token
            oauth_secret = request.GET.oauth_token_secret
            oauth_verifier = request.GET.oauth_verifier

            oauth = OAuth1(self.consumer_token, client_secret=self.consumer_secret, resource_owner_key=oauth_token, resource_owner_secret=oauth_secret, verifier=oauth_verifier)
            response = requests.post('https://api.twitter.com/oauth/access_token', auth=oauth)
            if not response.ok:
                return redirect_problem('Failed to retrieve oauth_secret from twitter')

            response = parse_qs(response.content)
            final_token = response['oauth_token'][0]
            final_token_secret = response['oauth_token_secret'][0]

            logger.info('oauth_token: %s, oauth_secret: %s received' % (final_token, final_token_secret))

            return redirect(Display.addArgumentsToLink(self.callback_link, oauth_token=final_token, oauth_secret=final_token_secret))
Ejemplo n.º 5
0
        def func(templateArguments):
            oauth = OAuth1(self.consumer_token,
                           client_secret=self.consumer_secret)
            response = requests.post(
                'https://api.twitter.com/oauth/request_token',
                params={'oauth_callback': OAuthCallback.link_info.page_link},
                auth=oauth)
            if not response.ok:
                return redirect_problem(
                    'Failed to retrieve oauth_token from twitter: %s' %
                    response.text)

            qs = parse_qs(response.text)
            oauth_token = qs['oauth_token'][0]

            return redirect(
                'https://api.twitter.com/oauth/authenticate?oauth_token=%s' %
                oauth_token)
Ejemplo n.º 6
0
        def func(templateArguments, instance):
            dataType = parseString(request.GET.type, ['tweet', 'user'])
            start_epoch = parseInteger(request.GET.start_epoch)
            end_epoch = parseInteger(request.GET.end_epoch)
            page_num = parseInteger(request.GET.page)
            place_id = parseInteger(request.GET.place_id)
            provider_id = parseInteger(request.GET.provider_id)
            projection_type = parseString(request.GET.projection_type)
            followee = parseInteger(request.GET.followee)

            cache_id = GeocodeResultAbstract.buildCacheId(
                provider_id, place_id)

            if dataType is None:
                return redirect_problem('type is a required argument')

            if page_num is None:
                page_num = 0

            data = []
            if dataType == 'tweet':
                tweets = readTweetsFromCache(
                    None, instance, cache_id, start_epoch, end_epoch, page_num,
                    TwitterCachePage.PAGE_SIZE_FULL_DATA)
                if tweets is not None:
                    for tweet in tweets:
                        assert isinstance(tweet, Tweet)
                        userHtml = UserInformationPage.getPageLinkImage(
                            instance, tweet.user, target='_self')

                        data.append([
                            tweet.created_at, userHtml,
                            tweet.user.location_text, tweet.text
                        ])

            elif dataType == 'user':
                if len(projection_type) == 0:
                    projection = None
                    pageSize = TwitterCachePage.PAGE_SIZE_FULL_DATA
                elif projection_type == 'name-only':
                    projection = UserProjection.IdNameImage()
                    pageSize = TwitterCachePage.PAGE_SIZE_ID_NAME_DATA
                else:
                    return redirect_problem('Unsupported projection type: %s' %
                                            projection_type)

                if followee is None:
                    return redirect_problem('Followee is required')

                users = readUsersFromCache(None,
                                           instance,
                                           cache_id,
                                           start_epoch,
                                           end_epoch,
                                           page_num,
                                           pageSize,
                                           followee,
                                           userProjection=projection)
                if users is not None:
                    for user in users:
                        assert isinstance(user, User)
                        data.append([
                            user.id, user.name, user.profile_image_url,
                            UserInformationPage.link_info.getPageLink(
                                instance, user.id)
                        ])

            return {'json': data}