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")
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