public static void checkTag(Instagram instagram) { Logger.info("----TAG-----------------------"); // check if the tag is in db if (TagInfo.contains((long) 1)) { // tag found, check if it's the right tag if (TagInfo.contains(appDisplayNameTag)) { // tag is already in db, start the tag scheduler (tagWatchdog) Logger.info(" tag is in the db"); displayTagInfo(); // tag info in the db // display local folder path Logger.info(" local folder: " + urlPath); } else { // old tag is in the db, update it with the new one Logger.info(" old tag is in the db, update the old tag"); // delete the old tag, add the new tag Logger.info(" delete old tag"); TagInfo.delete((long) 1); Logger.info(" add the new tag"); TagInfo.addNew( new TagInfo(appDisplayNameTag, getNumberOfImagesByTag(instagram, appDisplayNameTag))); displayTagInfo(); // delete old images from the image db Logger.info(" delete old images"); deleteAllImagesFormDb(); // add new images to the db Logger.info(" add the new images"); addImagesToDB(instagram); // local // add new local folder info Logger.info(" delete old local info"); LocalInfo.delete((long) 1); Logger.info(" add new local info"); LocalInfo.addNew(new LocalInfo(urlPath, getNumberOfLocalImages())); Logger.info( " localPath: " + LocalInfo.get((long) 1).urlPath + " nImages: " + LocalInfo.get((long) 1).numberOfImages); // add loacal images to the db addLocalImagesToDb(); } } else { // add the new tag to db Logger.info(" tag is not in the db"); Logger.info(" add the new tag"); TagInfo.addNew( new TagInfo(appDisplayNameTag, getNumberOfImagesByTag(instagram, appDisplayNameTag))); displayTagInfo(); // add images of the new tag to the db Logger.info(" add the new images"); addImagesToDB(instagram); // local // add local folder info Logger.info(" add new local info"); LocalInfo.addNew(new LocalInfo(urlPath, getNumberOfLocalImages())); Logger.info( " localPath: " + LocalInfo.get((long) 1).urlPath + " nImages: " + LocalInfo.get((long) 1).numberOfImages); // add loacal images to the db addLocalImagesToDb(); } } // checkTag
public static void tagWatchDog(Instagram instagram) { Logger.info(" --tag watchdog"); Long nImages = checkNumberOfNewImages(instagram, appDisplayNameTag); if (nImages > 0) { // there are new images to take care of Logger.info(" number of new images: " + nImages); // get the first page of media feeds (images) TagMediaFeed mediaFeed = getMediaFeed(instagram); List<MediaFeedData> images = mediaFeed.getData(); // TODO: support adding new images from other pages // limit number of new images to the first page if (nImages > images.size()) { // number of new images excides the first page nImages = (long) images.size(); Logger.info(" number of limited images: " + nImages); } // TODO check if the image is already in db, double images problem!!! // for each new image from the first page for (int i = (int) (nImages - 1); i >= 0; i--) { // add new images to db MediaFeedData image = images.get(i); Caption caption = image.getCaption(); MImages newDbImage = new MImages( image.getId(), image.getImages().getLowResolution().getImageUrl(), "instagram", caption.getFrom().getFullName(), caption.getFrom().getProfilePicture(), image.getCreatedTime(), (long) image.getLikes().getCount(), (long) 0); MImages.addNew(newDbImage); Logger.info( " add image to db: index: " + i + " id: " + image.getId() + " from: " + caption.getFrom().getFullName()); // send the new image to clients sendImageToClients(newDbImage); } // update the tag count TagInfo.delete((long) 1); Logger.info(" update the tag +"); TagInfo.addNew( new TagInfo(appDisplayNameTag, getNumberOfImagesByTag(instagram, appDisplayNameTag))); displayTagInfo(); } else if (nImages < 0) { // TODO // some images have been deleted // for now keep them in the db, later consider deleting them // update the tag TagInfo.delete((long) 1); Logger.info(" update the tag -"); TagInfo.addNew( new TagInfo(appDisplayNameTag, getNumberOfImagesByTag(instagram, appDisplayNameTag))); displayTagInfo(); } Logger.info(" --tag watchdog---"); } // tagWatchDog()