/** * Process a list of Video objects. * @param videos List of Video * @param afterDate afterDate * @param beforeDate beforeDate * @param activity com.google.api.services.youtube.model.Activity * @param feed ActivityListResponse */ void processVideos(List<Video> videos, DateTime afterDate, DateTime beforeDate, com.google.api.services.youtube.model.Activity activity, ActivityListResponse feed) { try { for (Video video : videos) { if (video != null) { org.joda.time.DateTime published = new org.joda.time.DateTime(video.getSnippet().getPublishedAt().getValue()); if ((afterDate == null && beforeDate == null) || (beforeDate == null && afterDate.isBefore(published)) || (afterDate == null && beforeDate.isAfter(published)) || ((afterDate != null && beforeDate != null) && (afterDate.isAfter(published) && beforeDate.isBefore(published)))) { LOGGER.debug("Providing Youtube Activity: {}", MAPPER.writeValueAsString(video)); this.datumQueue.put(new StreamsDatum(gson.toJson(video), activity.getId())); } else if (afterDate != null && afterDate.isAfter(published)) { feed.setNextPageToken(null); // do not fetch next page break; } } } } catch (Exception ex) { LOGGER.error("Exception while trying to process video list: {}, {}", videos, ex); } }
private void prepareDate(Video video, YElement yElement) { DateTime publishedAt = video.getSnippet().getPublishedAt(); LocalDate publishedDate = new LocalDate(publishedAt.getValue()); YDate yDate = new YDate(DateTypes.DT_PUBLISHED, publishedDate.getYear(), publishedDate.getMonthOfYear(), publishedDate.getDayOfMonth(), null); yElement.addDate(yDate); }
/** * Given a {@link YouTube.Videos} object and an * {@link Activity} object, fill out the appropriate details * * @param video Video * @param activity Activity * @throws ActivitySerializerException ActivitySerializerException */ public static void updateActivity(Video video, Activity activity, String channelId) throws ActivitySerializerException { activity.setActor(buildActor(video, video.getSnippet().getChannelId())); activity.setVerb("post"); activity.setId(formatId(activity.getVerb(), Optional.ofNullable(video.getId()).orElse(null))); activity.setPublished(new DateTime(video.getSnippet().getPublishedAt().getValue())); activity.setTitle(video.getSnippet().getTitle()); activity.setContent(video.getSnippet().getDescription()); activity.setUrl("https://www.youtube.com/watch?v=" + video.getId()); activity.setProvider(getProvider()); activity.setObject(buildActivityObject(video)); addYoutubeExtensions(activity, video); }