def gather_tweets(search_parameters,n_tweets):
    twitter_details_file = get_file()
    twitter_access = twitter_tools.twitter_handler(twitter_details_file)
    
    tweets = [] 
    print "Gathering tweets...\n"
    x = 1
    for tweet_info in twitter_access.stream_twitter_data(search_parameters):
        tweets.append(tweet_info)
        if x % 10 == 0: print str(x) + " of " + str(n_tweets)
        if x == n_tweets: break
        x +=1
    return tweets
def main():
    twitter_details_file, sentiment_file = get_files()
    twitter_access = twitter_tools.twitter_handler(twitter_details_file)

    scores_dict = file_to_dict(sentiment_file)

    track_parameter = raw_input("Enter search terms: ")

    while True:
        n_tweets = raw_input("Number of tweets to scan: ")
        average_size = raw_input("Size of moving average: ")
        try:
            n_tweets = int(n_tweets)
            average_size = int(average_size)
            break
        except:
            print "Number of tweets and size of moving average must be integers!"

    search_parameters = [("track", track_parameter)]
    moving_average = []
    x = 1
    for tweet_info in twitter_access.stream_twitter_data(search_parameters):
        user_parameters = [('user_id', tweet_info['user']['id']),
                           ('count', 20), ('include_rts', 'false')]
        user_tweet_list = twitter_access.get_user_data(user_parameters)

        #calculate average user sentiment for 'count' number of posts
        user_sentiment = get_user_sentiment(user_tweet_list, scores_dict)
        tweet_sentiment = check_sentiment(tweet_info, scores_dict)
        moving_average.append(tweet_sentiment - user_sentiment)

        #print details
        print tweet_info.get('text',
                             'No tweet information').encode('utf-8').lower()
        print "User Sentiment: " + str(user_sentiment) + ", Tweet Sentiment: " \
            + str(tweet_sentiment) + ", Adjusted User Sentiment: " + str(tweet_sentiment-user_sentiment)
        print sum(moving_average[-average_size:]) / float(
            len(moving_average[-average_size:]))
        print "\n"

        if x == n_tweets: break
        x += 1
def main():
    twitter_details_file, sentiment_file = get_files()
    twitter_access = twitter_tools.twitter_handler(twitter_details_file)

    scores_dict = file_to_dict(sentiment_file)

    track_parameter = raw_input("Enter search terms: ")

    while True:
        n_tweets = raw_input("Number of tweets to scan: ")
        average_size = raw_input("Size of moving average: ")
        try:
            n_tweets = int(n_tweets)
            average_size = int(average_size)
            break
        except:
            print "Number of tweets and size of moving average must be integers!"

    search_parameters = [("track", track_parameter)]
    moving_average = []
    x = 1
    for tweet_info in twitter_access.stream_twitter_data(search_parameters):
        user_parameters = [("user_id", tweet_info["user"]["id"]), ("count", 20), ("include_rts", "false")]
        user_tweet_list = twitter_access.get_user_data(user_parameters)

        # calculate average user sentiment for 'count' number of posts
        user_sentiment = get_user_sentiment(user_tweet_list, scores_dict)
        tweet_sentiment = check_sentiment(tweet_info, scores_dict)
        moving_average.append(tweet_sentiment - user_sentiment)

        # print details
        print tweet_info.get("text", "No tweet information").encode("utf-8").lower()
        print "User Sentiment: " + str(user_sentiment) + ", Tweet Sentiment: " + str(
            tweet_sentiment
        ) + ", Adjusted User Sentiment: " + str(tweet_sentiment - user_sentiment)
        print sum(moving_average[-average_size:]) / float(len(moving_average[-average_size:]))
        print "\n"

        if x == n_tweets:
            break
        x += 1