Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*TwitterRestTest.java*/
- import java.text.*;
- import twitter4j.*;
- import twitter4j.conf.*; // for ConfigurationBuilder
- import java.util.*;
- class TwitterRestClient
- {
- private static final String CONSUMER_KEY = "6AwlMb76WsqeEbNDSFWOEVczU";
- private static final String CONSUMER_SECRET = "WyRrB51aWnHtEf9OSngb2Yy77IsA2E1xKSi4bOMLgDXhHiqlNM";
- private static final String ACCESS_TOKEN = "3691829772-zaXsHmCEKnMo5l2SSZoA7SDBipUMIyEpUwOwTAm";
- private static final String ACCESS_TOKEN_SECRET = "1s5228cE5CHSyNDTXBD5kXOHvjug75D1a02uZMLnplp1B";
- private static final String PROXY_HOST = "proxy-sa.mahidol";
- private static final int PROXY_PORT = 8080;
- private Twitter twitter;
- public TwitterRestClient()
- {
- // (1) set up connection to Twitter
- ConfigurationBuilder cb = new ConfigurationBuilder();
- cb.setDebugEnabled(true);
- cb.setOAuthConsumerKey(CONSUMER_KEY);
- cb.setOAuthConsumerSecret(CONSUMER_SECRET);
- cb.setOAuthAccessToken(ACCESS_TOKEN);
- cb.setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET);
- /*
- // Actually, we don't need this even when behind proxy
- cb.setHttpProxyHost(PROXY_HOST);
- cb.setHttpProxyPort(PROXY_PORT);
- String username, password;
- Scanner scan = new Scanner(System.in);
- System.out.printf("User name for %s = ", PROXY_HOST); username = scan.next();
- System.out.printf("Password for %s = ", PROXY_HOST); password = scan.next();
- cb.setHttpProxyUser(username);
- cb.setHttpProxyPassword(password);
- */
- // (2) create twitter object for batch job
- TwitterFactory tf = new TwitterFactory(cb.build());
- twitter = tf.getInstance();
- }
- public void searchByKeyword()
- {
- Scanner scan = new Scanner(System.in);
- System.out.print("Keyword (or hashtag) = "); String keyword = scan.next();
- Query query = new Query(keyword);
- //query.setLang("en");
- //query.setSince("2018-01-01");
- //query.setUntil("2018-02-15");
- //query.setResultType(Query.POPULAR);
- //query.setResultType(Query.RECENT);
- //query.setResultType(Query.MIXED);
- int page = 0;
- QueryResult result;
- do
- {
- page++;
- System.out.printf("============== PAGE %d ============== \n", page);
- try { result = twitter.search(query); }
- catch(Exception e) { e.printStackTrace(); return; }
- List<Status> allTweets = result.getTweets();
- for (Status oneTweet : allTweets)
- {
- //if (!oneTweet.isRetweet())
- printOneTweet(oneTweet);
- }
- query = result.nextQuery();
- } while (query != null && page < 3);
- }
- public void searchByUser()
- {
- Scanner scan = new Scanner(System.in);
- System.out.print("Seed's screen name = "); String user = scan.next();
- System.out.printf("\n");
- ResponseList<Status> result;
- try {
- result = twitter.getUserTimeline(user); // posted by this user
- //result = twitter.getFavorites(user); // liked by this user
- }
- catch(Exception e) { e.printStackTrace(); return; }
- for (Status oneTweet : result)
- printOneTweet(oneTweet);
- }
- public void printOneTweet(Status tweet)
- {
- String user = tweet.getUser().getScreenName();
- String text = tweet.getText();
- int rtcount = tweet.getRetweetCount();
- int fvrcount = tweet.getFavoriteCount();
- //System.out.printf("%s >> (%d rt, %d fvr) %s \n\n", user, rtcount, fvrcount, text);
- // date format
- //DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
- //String timestampText = df.format(timestamp);
- if(tweet.isRetweet()) {
- Date rtdate = tweet.getCreatedAt();
- Status rtstatus = tweet.getRetweetedStatus();
- Date crdate = rtstatus.getCreatedAt();
- String cruser = rtstatus.getUser().getScreenName();
- System.out.printf("%s\n", text);
- System.out.printf("Retweet date : %s, by %s\n", rtdate, user);
- System.out.printf("Original date : %s, by %s\n", crdate, cruser);
- System.out.printf("\n");
- }
- /*
- HashtagEntity[] allHashtags = tweet.getHashtagEntities();
- System.out.printf("%s >> ", user);
- for (HashtagEntity oneHashtag : allHashtags)
- System.out.printf("#%s ", oneHashtag.getText());
- System.out.println();
- */
- }
- public void searchUserInfo()
- {
- Scanner scan = new Scanner(System.in);
- System.out.print("User name = "); String user = scan.next();
- User userObj;
- try { userObj = twitter.showUser(user); }
- catch(Exception e) { e.printStackTrace(); return; }
- System.out.println();
- System.out.printf("Full name = %s \n", userObj.getName());
- System.out.printf("Screen name = %s \n", userObj.getScreenName());
- System.out.printf("Verified = %b \n", userObj.isVerified());
- System.out.printf("Friends = %,d \n", userObj.getFriendsCount());
- System.out.printf("Followers = %,d \n", userObj.getFollowersCount());
- }
- public String[] searchTrends()
- {
- int woeidBKK = 1225448;
- int numOfTrends=0;
- String[] words = new String[100];
- Trends allTrends;
- try { allTrends = twitter.getPlaceTrends(woeidBKK); }
- catch(Exception e) { e.printStackTrace(); return words;}
- System.out.printf("Trends as of %s \n", allTrends.getAsOf());
- for (Trend oneTrend : allTrends.getTrends()) {
- System.out.printf(" %s \n", oneTrend.getName());
- words[numOfTrends] = oneTrend.getName();
- numOfTrends++;
- }
- Scanner scan = new Scanner(System.in);
- System.out.print("Number of top rends for steam retrival = "); String n = scan.next();
- int num = Integer.parseInt(n);
- String[] wordsToReturn = new String[words.length];
- for (int i=0; i<num; i++) {
- wordsToReturn[i] = words[i];
- }
- return wordsToReturn;
- }
- public void ourTimeline()
- {
- //Scanner scan = new Scanner(System.in);
- //System.out.print("Message = "); String message = scan.nextLine();
- //try { twitter.updateStatus(message); }
- //catch(Exception e) { e.printStackTrace(); }
- ResponseList<Status> result;
- try {
- result = twitter.getUserTimeline(); // just our tweets
- //result = twitter.getHomeTimeline(); // our tweets & friends' tweets
- }
- catch(Exception e) { e.printStackTrace(); return; }
- for (Status oneTweet : result)
- printOneTweet(oneTweet);
- }
- }
- public class TwitterRestTest
- {
- public static void main(String[] args) {
- TwitterRestClient client = new TwitterRestClient();
- //client.searchByKeyword();
- //client.searchByUser();
- //client.searchUserInfo();
- String[] trends = client.searchTrends();
- TwitterStreamClient sclient = new TwitterStreamClient();
- sclient.readStream(trends);
- //client.ourTimeline();
- }
- }
- /* TwitterStreamTest.java */
- import twitter4j.*;
- import twitter4j.conf.*; // for ConfigurationBuilder
- import java.util.*;
- class TwitterStreamClient
- {
- private static final String CONSUMER_KEY = "6AwlMb76WsqeEbNDSFWOEVczU";
- private static final String CONSUMER_SECRET = "WyRrB51aWnHtEf9OSngb2Yy77IsA2E1xKSi4bOMLgDXhHiqlNM";
- private static final String ACCESS_TOKEN = "3691829772-zaXsHmCEKnMo5l2SSZoA7SDBipUMIyEpUwOwTAm";
- private static final String ACCESS_TOKEN_SECRET = "1s5228cE5CHSyNDTXBD5kXOHvjug75D1a02uZMLnplp1B";
- private static final String PROXY_HOST = "proxy-sa.mahidol";
- private static final int PROXY_PORT = 8080;
- private TwitterStream twitterStream;
- public TwitterStreamClient()
- {
- // (1) set up connection to Twitter
- ConfigurationBuilder cb = new ConfigurationBuilder();
- cb.setDebugEnabled(true);
- cb.setOAuthConsumerKey(CONSUMER_KEY);
- cb.setOAuthConsumerSecret(CONSUMER_SECRET);
- cb.setOAuthAccessToken(ACCESS_TOKEN);
- cb.setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET);
- /*
- // Actually, we don't need this even when behind proxy
- cb.setHttpProxyHost(PROXY_HOST);
- cb.setHttpProxyPort(PROXY_PORT);
- String username, password;
- Scanner scan = new Scanner(System.in);
- System.out.printf("User name for %s = ", PROXY_HOST); username = scan.next();
- System.out.printf("Password for %s = ", PROXY_HOST); password = scan.next();
- cb.setHttpProxyUser(username);
- cb.setHttpProxyPassword(password);
- */
- // (2) create twitter object for batch job
- TwitterStreamFactory tsf = new TwitterStreamFactory(cb.build());
- twitterStream = tsf.getInstance();
- // (3) add listener
- twitterStream.addListener(new StatusAdapter() {
- public void onStatus(Status status)
- {
- printOneTweet(status);
- }
- public void onException(Exception e)
- {
- e.printStackTrace();
- System.exit(-1);
- }
- });
- }
- public void printOneTweet(Status tweet)
- {
- String user = tweet.getUser().getName();
- String text = tweet.getText();
- System.out.printf("%s >> %s \n\n", user, text);
- /*
- HashtagEntity[] allHashtags = tweet.getHashtagEntities();
- System.out.printf("%s >> ", user);
- for (HashtagEntity oneHashtag : allHashtags)
- System.out.printf("#%s ", oneHashtag.getText());
- System.out.println();
- */
- }
- public void readStream(String[] trends)
- {
- //Scanner scan = new Scanner(System.in);
- //System.out.print("Enter words separated by space = "); String line = scan.nextLine();
- //String [] words = line.split("\\s+");
- twitterStream.filter(trends);
- //twitterStream.sample();
- //twitterStream.sample("en");
- try { Thread.sleep(5000); } catch(Exception e) {}
- twitterStream.shutdown();
- }
- }
- /*
- public class TwitterStreamTest
- {
- public static void main(String[] args) {
- TwitterStreamClient client = new TwitterStreamClient();
- client.readStream();
- }
- }
- */
Add Comment
Please, Sign In to add comment