From 42bc583b80535affa5b1235d4c534984a738c958 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 2 May 2014 17:12:05 +0200 Subject: Track number of unique users for status reporting --- src/main/TweetCounter.java | 27 ++++++++++++++++++++++++++- src/main/TweetShell.java | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/TweetCounter.java b/src/main/TweetCounter.java index 19838e7..4c348b3 100644 --- a/src/main/TweetCounter.java +++ b/src/main/TweetCounter.java @@ -1,5 +1,10 @@ package main; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.json.JSONException; import org.json.JSONObject; import provider.ResultListener; @@ -10,7 +15,15 @@ import provider.ResultListener; */ public class TweetCounter implements ResultListener { + private final static Logger LOGGER + = Logger.getLogger(TweetCounter.class.getName()); + private int tweetCount = 0; + private final Set users; + + public TweetCounter() { + this.users = new HashSet<>(); + } @Override public void tweetGenerated(JSONObject obj) { @@ -19,10 +32,22 @@ public class TweetCounter implements ResultListener { @Override public void profileGenerated(JSONObject obj) { - // ignored + try { + String screen_name = obj.getString("screen_name"); + users.add(screen_name); + } catch (JSONException ex) { + LOGGER.log(Level.WARNING, "Profile is missing data", ex); + } } public int getTweetCount() { return tweetCount; } + + /** + * @return The set of users who tweeted. Do not modify its contents! + */ + public Set getUsers() { + return users; + } } diff --git a/src/main/TweetShell.java b/src/main/TweetShell.java index a5114e2..a7738d5 100644 --- a/src/main/TweetShell.java +++ b/src/main/TweetShell.java @@ -263,6 +263,7 @@ public class TweetShell implements TwitterApi.PinSupplier { System.out.println("Streaming is inactive."); } System.out.println("Received tweets in session: " + tc.getTweetCount()); + System.out.println("Unique users: " + tc.getUsers().size()); break; case close: getStream().close(); -- cgit v1.2.1