in streams-contrib/streams-provider-youtube/src/main/java/org/apache/streams/youtube/provider/YoutubeUserActivityCollector.java [103:155]
protected void collectActivityData() {
int item_count = 0;
int last_count = 0;
int page_count = 0;
try {
YouTube.Activities.List request = null;
ActivityListResponse feed = null;
boolean tryAgain = false;
int attempt = 0;
DateTime afterDate = userInfo.getAfterDate();
DateTime beforeDate = userInfo.getBeforeDate();
do {
try {
if (request == null) {
request = this.youtube.activities().list("contentDetails")
.setChannelId(userInfo.getUserId())
.setMaxResults(MAX_RESULTS)
.setKey(config.getApiKey());
feed = request.execute();
} else {
request = this.youtube.activities().list("contentDetails")
.setChannelId(userInfo.getUserId())
.setMaxResults(MAX_RESULTS)
.setPageToken(feed.getNextPageToken())
.setKey(config.getApiKey());
feed = request.execute();
}
this.backOff.reset(); //successful pull reset api.
last_count = feed.getItems().size();
processActivityFeed(feed, afterDate, beforeDate);
item_count += last_count;
page_count++;
} catch (GoogleJsonResponseException gjre) {
tryAgain = backoffAndIdentifyIfRetry(gjre, this.backOff);
++attempt;
}
}
while ((tryAgain || (feed != null && feed.getNextPageToken() != null)) && attempt < MAX_ATTEMPTS);
} catch (Throwable throwable) {
if (throwable instanceof InterruptedException) {
Thread.currentThread().interrupt();
}
throwable.printStackTrace();
LOGGER.warn("Unable to pull Activities for user={} : {}", this.userInfo.getUserId(), throwable);
}
LOGGER.info("item_count: {} last_count: {} page_count: {} ", item_count, last_count, page_count);
}