private bool ShouldUseFolderName(List <string> videoFiles, Series series, ParsedEpisodeInfo folderInfo) { if (folderInfo == null) { return(false); } if (folderInfo.FullSeason) { return(false); } return(videoFiles.Count(file => { var size = _diskProvider.GetFileSize(file); var fileQuality = QualityParser.ParseQuality(file); var sample = _detectSample.IsSample(series, GetQuality(folderInfo, fileQuality, series), file, size, folderInfo.SeasonNumber); if (sample) { return false; } if (SceneChecker.IsSceneTitle(Path.GetFileName(file))) { return false; } return true; }) == 1); }
private ParsedEpisodeInfo GetBestEpisodeInfo(LocalEpisode localEpisode) { var parsedEpisodeInfo = localEpisode.FileEpisodeInfo; var downloadClientEpisodeInfo = localEpisode.DownloadClientEpisodeInfo; var folderEpisodeInfo = localEpisode.FolderEpisodeInfo; if (!localEpisode.OtherVideoFiles && !SceneChecker.IsSceneTitle(Path.GetFileNameWithoutExtension(localEpisode.Path))) { if (downloadClientEpisodeInfo != null && !downloadClientEpisodeInfo.FullSeason && PreferOtherEpisodeInfo(parsedEpisodeInfo, downloadClientEpisodeInfo)) { parsedEpisodeInfo = localEpisode.DownloadClientEpisodeInfo; } else if (folderEpisodeInfo != null && !folderEpisodeInfo.FullSeason && PreferOtherEpisodeInfo(parsedEpisodeInfo, folderEpisodeInfo)) { parsedEpisodeInfo = localEpisode.FolderEpisodeInfo; } } if (parsedEpisodeInfo == null) { parsedEpisodeInfo = GetSpecialEpisodeInfo(localEpisode, parsedEpisodeInfo); } return(parsedEpisodeInfo); }
private ParsedEpisodeInfo GetBestEpisodeInfo(LocalEpisode localEpisode, bool otherFiles) { var parsedEpisodeInfo = localEpisode.FileEpisodeInfo; var downloadClientEpisodeInfo = localEpisode.DownloadClientEpisodeInfo; var folderEpisodeInfo = localEpisode.FolderEpisodeInfo; if (!otherFiles && !SceneChecker.IsSceneTitle(Path.GetFileNameWithoutExtension(localEpisode.Path))) { if (downloadClientEpisodeInfo != null && !downloadClientEpisodeInfo.FullSeason && PreferOtherEpisodeInfo(parsedEpisodeInfo, downloadClientEpisodeInfo)) { parsedEpisodeInfo = localEpisode.DownloadClientEpisodeInfo; } else if (folderEpisodeInfo != null && !folderEpisodeInfo.FullSeason && PreferOtherEpisodeInfo(parsedEpisodeInfo, folderEpisodeInfo)) { parsedEpisodeInfo = localEpisode.FolderEpisodeInfo; } } if (parsedEpisodeInfo == null || parsedEpisodeInfo.IsPossibleSpecialEpisode) { var title = Path.GetFileNameWithoutExtension(localEpisode.Path); var specialEpisodeInfo = _parsingService.ParseSpecialEpisodeTitle(parsedEpisodeInfo, title, localEpisode.Series); return(specialEpisodeInfo); } return(parsedEpisodeInfo); }
public static string GetSceneName(LocalEpisode localEpisode) { var otherVideoFiles = localEpisode.OtherVideoFiles; var downloadClientInfo = localEpisode.DownloadClientEpisodeInfo; if (!otherVideoFiles && downloadClientInfo != null && !downloadClientInfo.FullSeason) { return(Parser.Parser.RemoveFileExtension(downloadClientInfo.ReleaseTitle)); } var fileName = Path.GetFileNameWithoutExtension(localEpisode.Path.CleanFilePath()); if (SceneChecker.IsSceneTitle(fileName)) { return(fileName); } var folderTitle = localEpisode.FolderEpisodeInfo?.ReleaseTitle; if (!otherVideoFiles && localEpisode.FolderEpisodeInfo?.FullSeason == false && folderTitle.IsNotNullOrWhiteSpace() && SceneChecker.IsSceneTitle(folderTitle)) { return(folderTitle); } return(null); }
private bool ShouldUseFolderName(List <string> videoFiles, Movie movie, ParsedMovieInfo folderInfo) { if (folderInfo == null) { return(false); } //if (folderInfo.FullSeason) //{ // return false; //} return(videoFiles.Count(file => { var size = _diskProvider.GetFileSize(file); var fileQuality = QualityParser.ParseQuality(file); //var sample = null;//_detectSample.IsSample(movie, GetQuality(folderInfo, fileQuality, movie), file, size, folderInfo.IsPossibleSpecialEpisode); //Todo to this return true; //if (sample) { return false; } if (SceneChecker.IsSceneTitle(Path.GetFileName(file))) { return false; } return true; }) == 1); }
private string GetSceneName(DownloadClientItem downloadClientItem, LocalMovie localMovie) { if (downloadClientItem != null) { var sceneNameTitle = SceneChecker.GetSceneTitle(downloadClientItem.Title); if (sceneNameTitle != null) { return(sceneNameTitle); } } var fileName = Path.GetFileNameWithoutExtension(localMovie.Path.CleanFilePath()); var sceneNameFile = SceneChecker.GetSceneTitle(fileName); if (sceneNameFile != null) { return(sceneNameFile); } var folderTitle = localMovie.FolderMovieInfo?.ReleaseTitle; if (folderTitle.IsNotNullOrWhiteSpace() && SceneChecker.IsSceneTitle(folderTitle)) { return(folderTitle); } return(null); }
private bool ShouldUseFolderName(List <string> videoFiles, Series series, ParsedEpisodeInfo folderInfo) { if (folderInfo == null) { return(false); } if (folderInfo.FullSeason) { return(false); } return(videoFiles.Count(file => { var sample = _detectSample.IsSample(series, file, folderInfo.IsPossibleSpecialEpisode); if (sample == DetectSampleResult.Sample) { return false; } if (SceneChecker.IsSceneTitle(Path.GetFileName(file))) { return false; } return true; }) == 1); }
// Deprecated: Use SetPropertiesBulk instead private object SetPropertiesEditor() { var resource = Request.Body.FromJson <EpisodeFileListResource>(); var episodeFiles = _mediaFileService.GetFiles(resource.EpisodeFileIds); foreach (var episodeFile in episodeFiles) { if (resource.Language != null) { episodeFile.Language = resource.Language; } if (resource.Quality != null) { episodeFile.Quality = resource.Quality; } if (resource.SceneName != null && SceneChecker.IsSceneTitle(resource.SceneName)) { episodeFile.SceneName = resource.SceneName; } if (resource.ReleaseGroup != null) { episodeFile.ReleaseGroup = resource.ReleaseGroup; } } _mediaFileService.Update(episodeFiles); var series = _seriesService.GetSeries(episodeFiles.First().SeriesId); return(ResponseWithCode(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification)), HttpStatusCode.Accepted)); }
private string GetSceneName(DownloadClientItem downloadClientItem, LocalEpisode localEpisode) { if (downloadClientItem != null) { var title = Parser.Parser.RemoveFileExtension(downloadClientItem.Title); var parsedTitle = Parser.Parser.ParseTitle(title); if (parsedTitle != null && !parsedTitle.FullSeason) { return(title); } } var fileName = Path.GetFileNameWithoutExtension(localEpisode.Path.CleanFilePath()); if (SceneChecker.IsSceneTitle(fileName)) { return(fileName); } var folderTitle = localEpisode.FolderEpisodeInfo?.ReleaseTitle; if (localEpisode.FolderEpisodeInfo?.FullSeason == false && folderTitle.IsNotNullOrWhiteSpace() && SceneChecker.IsSceneTitle(folderTitle)) { return(folderTitle); } return(null); }
private object SetMovieFile() { var resource = Request.Body.FromJson <MovieFileListResource>(); var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds); foreach (var movieFile in movieFiles) { if (resource.Quality != null) { movieFile.Quality = resource.Quality; } if (resource.Languages != null) { // Don't allow user to set movieFile with 'Any' or 'Original' language movieFile.Languages = resource.Languages.Where(l => l != Language.Any || l != Language.Original || l != null).ToList(); } if (resource.IndexerFlags != null) { movieFile.IndexerFlags = (IndexerFlags)resource.IndexerFlags.Value; } if (resource.Edition != null) { movieFile.Edition = resource.Edition; } if (resource.ReleaseGroup != null) { movieFile.ReleaseGroup = resource.ReleaseGroup; } if (resource.SceneName != null && SceneChecker.IsSceneTitle(resource.SceneName)) { movieFile.SceneName = resource.SceneName; } } _mediaFileService.Update(movieFiles); var movie = _movieService.GetMovie(movieFiles.First().MovieId); return(ResponseWithCode(movieFiles.ConvertAll(f => f.ToResource(movie, _qualityUpgradableSpecification)), HttpStatusCode.Accepted)); }
private void SetQuality(EpisodeFileResource episodeFileResource) { var episodeFile = _mediaFileService.Get(episodeFileResource.Id); episodeFile.Quality = episodeFileResource.Quality; if (episodeFileResource.SceneName != null && SceneChecker.IsSceneTitle(episodeFileResource.SceneName)) { episodeFile.SceneName = episodeFileResource.SceneName; } if (episodeFileResource.ReleaseGroup != null) { episodeFile.ReleaseGroup = episodeFileResource.ReleaseGroup; } _mediaFileService.Update(episodeFile); }
private void SetMovieFile(MovieFileResource movieFileResource) { var movieFile = _mediaFileService.GetMovie(movieFileResource.Id); movieFile.IndexerFlags = (IndexerFlags)movieFileResource.IndexerFlags; movieFile.Quality = movieFileResource.Quality; movieFile.Languages = movieFileResource.Languages; movieFile.Edition = movieFileResource.Edition; if (movieFileResource.ReleaseGroup != null) { movieFile.ReleaseGroup = movieFileResource.ReleaseGroup; } if (movieFileResource.SceneName != null && SceneChecker.IsSceneTitle(movieFileResource.SceneName)) { movieFile.SceneName = movieFileResource.SceneName; } _mediaFileService.Update(movieFile); }
private string GetSceneName(DownloadClientItem downloadClientItem, LocalEpisode localEpisode) { if (downloadClientItem != null) { var title = Parser.Parser.RemoveFileExtension(downloadClientItem.Title); var parsedTitle = Parser.Parser.ParseTitle(title); if (parsedTitle != null && !parsedTitle.FullSeason) { return(title); } } var fileName = Path.GetFileNameWithoutExtension(localEpisode.Path.CleanFilePath()); if (SceneChecker.IsSceneTitle(fileName)) { return(fileName); } return(null); }
public void should_return_false_for_non_scene_names(string title) { SceneChecker.IsSceneTitle(title).Should().BeFalse(); }
public void should_return_true_for_scene_names(string title) { SceneChecker.IsSceneTitle(title).Should().BeTrue(); }