summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/Main.java46
-rw-r--r--src/main/TweetCounter.java18
-rw-r--r--src/main/TweetShell.java27
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