Exemple #1
0
def query_tweets(request):
    """
    Returns tweet query
    """
    request_timeframe = Timeframe(start = request.REQUEST.get("start", None),
                                  end = request.REQUEST.get("end", None),
                                  interval = request.REQUEST.get("interval", "hour"))

    query_count = int(request.REQUEST.get("embedCount", TWEET_QUERY_COUNT))
    export = request.REQUEST.get("export", None)
    query = request.REQUEST.get("query", "")
    tweets = Tweets(query=query, query_count=query_count, start=request_timeframe.start, end=request_timeframe.end, export=export)
    response_data = {}
    if export == "csv":
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="export.csv"'
        writer = csv.writer(response)
        writer.writerow(['count','time','id','user_screen_name','user_id','status','retweet_count','favorite_count','is_retweet','in_reply_to_tweet_id','in_reply_to_screen_name'])
        count = 0;
        for t in tweets.get_data():
            count = count + 1
            body = t['body'].encode('ascii', 'replace')
            status_id = t['id']
            status_id = status_id[status_id.rfind(':')+1:]
            user_id = t['actor']['id']
            user_id = user_id[user_id.rfind(':')+1:]
            writer.writerow([count, t['postedTime'], status_id, t['actor']['preferredUsername'], user_id, body, t['retweetCount'], t['favoritesCount'], 'X', 'X', 'X'])
            return response
    else:
        response_data['tweets'] = tweets.get_data()
    return HttpResponse(json.dumps(response_data), content_type="application/json")
Exemple #2
0
def query_tweets(request):
    """
    Returns tweet query
    """
    request_timeframe = Timeframe(start=request.GET.get("start", None),
                                  end=request.GET.get("end", None),
                                  interval=request.GET.get("interval", "hour"))

    query_count = int(request.GET.get("embedCount", TWEET_QUERY_COUNT))
    export = request.GET.get("export", None)
    query = request.GET.get("query", "")

    try:
        tweets = Tweets(query=query,
                        query_count=query_count,
                        start=request_timeframe.start,
                        end=request_timeframe.end,
                        export=export)
    except GNIPQueryError as e:
        return handleQueryError(e)

    response_data = {}
    if export == "csv":
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="export.csv"'
        writer = csv.writer(response,
                            delimiter=',',
                            quotechar="'",
                            quoting=csv.QUOTE_ALL)
        writer.writerow([
            'count', 'time', 'id', 'user_screen_name', 'user_id', 'status',
            'retweet_count', 'favorite_count', 'is_retweet',
            'in_reply_to_tweet_id', 'in_reply_to_screen_name'
        ])
        count = 0
        for t in tweets.get_data():
            count = count + 1
            body = t['body'].encode('ascii', 'replace')
            status_id = t['id']
            status_id = status_id[status_id.rfind(':') + 1:]
            user_id = t['actor']['id']
            user_id = user_id[user_id.rfind(':') + 1:]
            writer.writerow([
                count, t['postedTime'], status_id,
                t['actor']['preferredUsername'], user_id, body,
                t['retweetCount'], t['favoritesCount'], 'X', 'X', 'X'
            ])
        return response
    else:
        response_data['tweets'] = tweets.get_data()
    return HttpResponse(json.dumps(response_data),
                        content_type="application/json")
def query_tweets(request):
    """
    Returns tweet query
    """
    query_count = 10000  # int(request.GET.get("embedCount", TWEET_QUERY_COUNT))
    export = request.GET.get("export", None)
    query = request.GET.get("query", "")
    tweets = Tweets(query=query, query_count=query_count, request=request)

    response_data = {}

    if export == "ta":
        output = StringIO.StringIO()
        for t in tweets.get_data():
            user_id = t['actor']['id']
            output.write(user_id + '\n')
        ton_request = ton.TwitterTon(
            twitter_consumer_key=settings.SOCIAL_AUTH_TWITTER_KEY,
            twitter_consumer_secret=settings.SOCIAL_AUTH_TWITTER_SECRET,
            access_token=settings.TWITTER_ACCESS_TOKEN,
            access_token_secret=settings.TWITTER_ACCESS_TOKEN_SECRET)
        bytes = output.getvalue()
        ton_response = ton_request.upload_data(
            payload=bytes.encode('utf-16be'))
        output.close()
        location = ton_response['location']
        response = HttpResponse(json.dumps(
            {"location": location, "query": query}), content_type="application/json")
        return response

    elif export == "csv":
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="export.csv"'
        writer = csv.writer(response)
        writer.writerow(['count',
                         'time',
                         'id',
                         'user_screen_name',
                         'user_id',
                         'status',
                         'retweet_count',
                         'favorite_count',
                         'is_retweet',
                         'in_reply_to_tweet_id',
                         'in_reply_to_screen_name'])
        count = 0
        for t in tweets.get_data():
            count = count + 1
            body = t['body'].encode('ascii', 'replace')
            status_id = t['id']
            status_id = status_id[status_id.rfind(':') + 1:]
            user_id = t['actor']['id']
            user_id = user_id[user_id.rfind(':') + 1:]
            writer.writerow([count,
                             t['postedTime'],
                             status_id,
                             t['actor']['preferredUsername'],
                             user_id,
                             body,
                             t['retweetCount'],
                             t['favoritesCount'],
                             'X',
                             'X',
                             'X'])
            return response
    else:
        response_data['tweets'] = tweets.get_data()
        response = HttpResponse(
            json.dumps(response_data),
            content_type="application/json")
        response['Cache-Control'] = 'max-age=%d' % MAX_AGE
        return response