public static boolean doHuluCBS(MyLibraryFile video, boolean isHulu, boolean isCBS) { String matchingPattern = null; if (!video.knownType() || video.isTvShow()) { Pattern seasonEpisodePattern = Pattern.compile("s[0-9]+e[0-9]+", Pattern.CASE_INSENSITIVE); Matcher seasonEpisodeMatcher = seasonEpisodePattern.matcher(video.getFullPath()); boolean match = seasonEpisodeMatcher.find(); if (match) { matchingPattern = seasonEpisodeMatcher.group(); video.setType(TV_SHOW); } else if (!video.isTvShow()) // dont over-ride config param video.setType(MOVIE); } boolean success; if (video.isTvShow()) success = addHuluOrCBSTvEpisodeMetaData(video, matchingPattern); else if (video.isMovie()) { video.setTitle(video.getFileLabel()); success = valid(video.getTitle()); } else // do hulu/cbs have music videos? { Logger.WARN( "Cannot Archive: Type of content cannot be auto-determined for Hulu video: " + video.getFullPathEscaped()); success = false; } Logger.DEBUG( (isCBS ? "CBS" : "Hulu") + ": success=" + success + "; " + (video.isTvShow() ? "TV: series=" + video.getSeries() + "; title=" + video.getTitle() + ", " + "season=" + video.getSeasonNumber() + ", episode=" + video.getEpisodeNumber() : "Movie: " + video.getTitle()) + " --- " + video.getFullPathEscaped()); return success; }
public static void copyVideoMetaData(MyLibraryFile source, MyLibraryFile dest) { dest.setTitle(source.getTitle()); dest.setType(source.getType()); dest.setArtist(source.getArtist()); dest.setEpisodeNumber(source.getEpisodeNumber()); dest.setFileLabel(source.getFileLabel()); dest.setFinalLocation(source.getFinalLocation()); dest.setHasBeenLookedUpOnTVDB(source.hasBeenLookedUpOnTVDB()); dest.setMultiFileVideo(source.isMultiFileVideo()); dest.setOriginalAirDate(source.getOriginalAirDate()); if (source.isDuplicate()) dest.setAsDuplicateTo(source.getOriginalVideo()); else dest.setOriginalVideo(source.getOriginalVideo()); dest.setSeasonNumber(source.getSeasonNumber()); dest.setSeries(source.getSeries()); dest.setSkippedBecauseAlreadyArchived(source.skippedBecauseAlreadyArchived); dest.setSubfolder(source.getSubfolder()); dest.setTVDBId(source.getTVDBId()); dest.setYear(source.getYear()); }