diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/Main.java | 46 | ||||
-rw-r--r-- | src/main/TweetCounter.java | 18 | ||||
-rw-r--r-- | src/main/TweetShell.java | 27 |
3 files changed, 46 insertions, 45 deletions
diff --git a/src/main/Main.java b/src/main/Main.java index 059ade6..913646e 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -2,14 +2,14 @@ package main; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import io.RateLimitException; import io.Response; import java.io.IOException; import java.util.Arrays; import java.util.Scanner; +import java.util.logging.Level; +import java.util.logging.Logger; import mining.TwitterApi; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; /** * Class for manually testing the Twitter API. @@ -116,16 +116,20 @@ public class Main { "Available commands:" }; - private void searchTweets(String q) throws IOException, JSONException { - TwitterApi.Builder req = getApi().build("search/tweets"); - req.param("q", q); - req.param("count", "100"); // max number of tweets, cannot be higher - req.param("lang", "en"); - Response resp = req.request(); - JsonArray statuses = resp.getResp().getAsJsonObject().get("statuses").getAsJsonArray(); - for (int i = 0; i < statuses.size(); i++) { - JsonObject tweet = statuses.get(i).getAsJsonObject(); - System.out.println(tweet); + private void searchTweets(String q) throws IOException { + try { + TwitterApi.Builder req = getApi().build("search/tweets"); + req.param("q", q); + req.param("count", "100"); // max number of tweets, cannot be higher + req.param("lang", "en"); + Response resp = req.request(); + JsonArray statuses = resp.getResp().getAsJsonObject().get("statuses").getAsJsonArray(); + for (int i = 0; i < statuses.size(); i++) { + JsonObject tweet = statuses.get(i).getAsJsonObject(); + System.out.println(tweet); + } + } catch (RateLimitException ex) { + Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } @@ -142,11 +146,7 @@ public class Main { req.param("id", getParam(0, "numerical ID of tweet")); break; case searchtweets: - try { - searchTweets(getParam(0, "search query")); - } catch (JSONException ex) { - throw new IOException(ex); - } + searchTweets(getParam(0, "search query")); /* no req, will be handled by search */ break; case hack: @@ -186,12 +186,12 @@ public class Main { throw new AssertionError(command.name()); } if (req != null) { - System.err.println("Executing: " + req.toString()); - Response result = req.request(); - if (rawOutput) { - System.out.println(result.getResp().toString()); - } else { + try { + System.err.println("Executing: " + req.toString()); + Response result = req.request(); System.out.println(result.getResp().toString()); + } catch (RateLimitException ex) { + Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } } diff --git a/src/main/TweetCounter.java b/src/main/TweetCounter.java index 6c1397a..c630cda 100644 --- a/src/main/TweetCounter.java +++ b/src/main/TweetCounter.java @@ -1,12 +1,12 @@ package main; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import java.util.Date; 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; /** @@ -29,14 +29,14 @@ public class TweetCounter implements ResultListener { } @Override - public void tweetGenerated(JSONObject obj) { - tweetCount++; + public void tweetGenerated(JsonObject obj) { try { - JSONObject userObj = obj.getJSONObject("user"); - String screen_name = userObj.getString("screen_name"); - users.add(screen_name); - } catch (JSONException ex) { - LOGGER.log(Level.WARNING, "Profile is missing data", ex); + JsonObject userObj = obj.getAsJsonObject("user"); + String screen_name = userObj.get("screen_name").getAsString(); + tweetCount++; + users.add(screen_name); + } catch (JsonParseException ex) { + LOGGER.log(Level.WARNING, "Profile is missing data", ex); } } diff --git a/src/main/TweetShell.java b/src/main/TweetShell.java index a86bad3..956f060 100644 --- a/src/main/TweetShell.java +++ b/src/main/TweetShell.java @@ -1,11 +1,13 @@ package main; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import io.CompressableDataWriter; import io.DataWriter; import io.OAuthRequester; +import io.SearchImpl; import io.StreamImpl; import java.io.Closeable; -import java.io.Flushable; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -15,13 +17,11 @@ import java.util.NoSuchElementException; import java.util.Scanner; import java.util.Set; import java.util.TreeMap; -import java.util.logging.Level; import java.util.logging.Logger; +import mining.Search; import mining.Stream; import mining.TwitterApi; import org.apache.commons.io.IOUtils; -import org.json.JSONException; -import org.json.JSONObject; import provider.CompositeResultListener; import provider.ExceptionListener; import provider.ResultListener; @@ -91,20 +91,21 @@ public class TweetShell implements TwitterApi.PinSupplier { private class StreamHandler implements ResultListener { @Override - public void tweetGenerated(JSONObject obj) { + public void tweetGenerated(JsonObject obj) { try { - JSONObject userObj = obj.getJSONObject("user"); + JsonObject userObj = obj.getAsJsonObject("user"); + System.out.println("Got tweet: " - + userObj.getString("screen_name") + ": " - + obj.getString("text")); - } catch (JSONException ex) { - getLogger().log(Level.SEVERE, "Failed to parse tweet", ex); + + userObj.get("screen_name").getAsString() + ": " + + obj.get("text").getAsString()); + } catch (JsonParseException ex) { + System.err.println("failed to parse tweet " + ex); } } + } - private Logger getLogger() { - return Logger.getLogger(getClass().getName()); - } + private Logger getLogger() { + return Logger.getLogger(getClass().getName()); } @Override |