You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2014/08/08 18:49:57 UTC
[6/7] git commit: updated per peer review feedback
updated per peer review feedback
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/a14456fd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/a14456fd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/a14456fd
Branch: refs/heads/master
Commit: a14456fda013087e35f485043322782ac6a81989
Parents: 19b380f
Author: sblackmon <sb...@w2odigital.com>
Authored: Thu Aug 7 17:46:09 2014 -0500
Committer: sblackmon <sb...@w2odigital.com>
Committed: Thu Aug 7 17:46:09 2014 -0500
----------------------------------------------------------------------
.../provider/TwitterTimelineProvider.java | 58 +++++++-------------
.../provider/TwitterTimelineProviderTask.java | 4 +-
2 files changed, 21 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/a14456fd/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java
index a7b39c1..8d9ee46 100644
--- a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java
+++ b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java
@@ -230,10 +230,27 @@ public class TwitterTimelineProvider implements StreamsProvider, Serializable {
Preconditions.checkNotNull(config.getOauth().getAccessTokenSecret());
Preconditions.checkNotNull(config.getInfo());
- ImmutableList<String> screenNames = ImmutableList.copyOf(screenNamesOnly(config.getInfo()));
- List<Long> ids = numericIdsOnly(config.getInfo());
+ consolidateToIDs();
+ }
+
+ /**
+ * Using the "info" list that is contained in the configuration, ensure that all
+ * account identifiers are converted to IDs (Longs) instead of screenNames (Strings)
+ */
+ private void consolidateToIDs() {
+ List<String> screenNames = Lists.newArrayList();
+ ids = Lists.newArrayList();
+
+ for(Object account : config.getInfo()) {
+ if(account instanceof String) {
+ screenNames.add((String)account);
+ } else if (account instanceof Long) {
+ ids.add(Long.parseLong(Objects.toString(account, null)));
+ }
+ }
// Twitter allows for batches up to 100 per request, but you cannot mix types
+ screenNameBatches = new ArrayList<String[]>();
while(screenNames.size() >= 100) {
screenNameBatches.add(screenNames.subList(0, 100).toArray(new String[0]));
screenNames = screenNames.subList(100, screenNames.size());
@@ -248,7 +265,6 @@ public class TwitterTimelineProvider implements StreamsProvider, Serializable {
Collection<Long> batchIds = retrieveIds(screenNameBatchIterator.next());
ids.addAll(batchIds);
}
-
}
protected Twitter getTwitterClient()
@@ -275,42 +291,6 @@ public class TwitterTimelineProvider implements StreamsProvider, Serializable {
shutdownAndAwaitTermination(executor);
}
- protected List<Long> numericIdsOnly(List<String> allIds) {
- List<Long> result = Lists.newArrayList();
- for(String id : allIds) {
- if(id != null)
- {
- // See if it is a long, if it is, add it to the user iD list, if it is not, add it to the
- // screen name list
- try {
- result.add(Long.parseLong(id));
- } catch (NumberFormatException e) {}
-
- }
- }
- return result;
- }
-
- protected List<String> screenNamesOnly(List<String> allIds) {
- List<String> result = Lists.newArrayList();
- for(String id : allIds) {
- if(id != null)
- {
- String potentialScreenName = id.replaceAll("@", "").trim().toLowerCase();
-
- // See if it is a long, if it is, add it to the user iD list, if it is not, add it to the
- // screen name list
- try {
- Long.parseLong(id);
- } catch (NumberFormatException e) {
- result.add(potentialScreenName);
- }
-
- }
- }
- return result;
- }
-
protected void addDatum(StreamsDatum datum) {
try {
lock.readLock().lock();
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/a14456fd/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProviderTask.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProviderTask.java b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProviderTask.java
index 0ad8ac3..96fbb42 100644
--- a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProviderTask.java
+++ b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProviderTask.java
@@ -48,8 +48,6 @@ public class TwitterTimelineProviderTask implements Runnable {
Paging paging = new Paging(1, 200);
List<Status> statuses = null;
- boolean KeepGoing = true;
- boolean hadFailure = false;
do
{
@@ -64,6 +62,8 @@ public class TwitterTimelineProviderTask implements Runnable {
try
{
+ this.client = provider.getTwitterClient();
+
statuses = client.getUserTimeline(id, paging);
for (Status tStat : statuses)