Package mia.clustering.ch12

Source Code of mia.clustering.ch12.TwitterDownloader$MahoutListener

/*
* To run this example you need to obtain auth keys from https://dev.twitter.com/apps
* and enter them into corresponding .setOAuthXXXX methods in the main function below
*
*/
package mia.clustering.ch12;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.TwitterStream;
import twitter4j.TwitterStreamFactory;
import twitter4j.conf.ConfigurationBuilder;

public class TwitterDownloader {
  private class MahoutListener implements StatusListener {
      long count = 0;
      static final long maxCount = 100000; // change this if you want another number of tweets to collect
      PrintWriter out;
      TwitterStream tweetStream;
     
      MahoutListener (TwitterStream ts) throws IOException {
        tweetStream = ts;
        out = new PrintWriter(new BufferedWriter(new FileWriter("tweets.txt")));
      }
     
        public void onStatus(Status status) {
          String username = status.getUser().getScreenName();
          String text = status.getText().replace('\n', ' ');
            out.println(username + "\t" + text);
            System.out.println(username + "\t" + text);
            count++;
            if(count >= maxCount) {
              tweetStream.shutdown();
              out.close();
            }
        }

        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
        }

        public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
        }

        public void onScrubGeo(long userId, long upToStatusId) {
        }

        public void onException(Exception ex) {
            ex.printStackTrace();
        }
  }
 
  StatusListener makeListener(TwitterStream ts) throws IOException {
    return this.new MahoutListener(ts);
  }
 
  public static void main(String[] args) throws IOException {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
      .setOAuthConsumerKey("*********")
      .setOAuthConsumerSecret("************")
      .setOAuthAccessToken("*******************")
      .setOAuthAccessTokenSecret("****************");
    TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
        TwitterDownloader td = new TwitterDownloader();
        StatusListener listener = td.makeListener(twitterStream);
        twitterStream.addListener(listener);
        twitterStream.sample();
  }

}
TOP

Related Classes of mia.clustering.ch12.TwitterDownloader$MahoutListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.