protected void collectActivityData()

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);

  }