예제 #1
0
        public void should_not_use_file_name_as_scenename_if_it_doesnt_look_like_scenename()
        {
            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", _episodeName, "aaaaa.mkv")
                                 .AsOsAgnostic();

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }
예제 #2
0
        public void should_use_file_name_as_scenename_only_if_it_looks_like_scenename()
        {
            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", _seasonName, _episodeName + ".mkv")
                                 .AsOsAgnostic();

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .Be(_episodeName);
        }
예제 #3
0
        public void should_use_download_client_item_title_as_scene_name()
        {
            _localEpisode.DownloadClientEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _episodeName
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .Be(_episodeName);
        }
예제 #4
0
        public void should_remove_extension_from_nzb_title_for_scene_name(string extension)
        {
            _localEpisode.DownloadClientEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _episodeName + extension
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .Be(_episodeName);
        }
예제 #5
0
        public void should_use_folder_name_as_scenename_only_if_it_looks_like_scenename()
        {
            _localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _episodeName
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .Be(_episodeName);
        }
예제 #6
0
        public void should_not_use_folder_name_as_scenename_if_it_doesnt_look_like_scenename()
        {
            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", _episodeName, "aaaaa.mkv")
                                 .AsOsAgnostic();

            _localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = "aaaaa"
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }
예제 #7
0
        public void should_not_use_download_client_item_title_as_scene_name_if_full_season()
        {
            _localEpisode.DownloadClientEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _seasonName,
                FullSeason   = true
            };

            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", _seasonName, _episodeName)
                                 .AsOsAgnostic();

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }
예제 #8
0
        public void should_not_use_folder_name_as_scenename_if_it_is_for_a_full_season()
        {
            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", _episodeName, "aaaaa.mkv")
                                 .AsOsAgnostic();

            _localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _seasonName,
                FullSeason   = true
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }
예제 #9
0
        public void should_not_use_folder_name_as_scenename_if_there_are_other_video_files()
        {
            _localEpisode.OtherVideoFiles = true;
            _localEpisode.Path            = Path.Combine(@"C:\Test\Unsorted TV", _episodeName, "aaaaa.mkv")
                                            .AsOsAgnostic();

            _localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _seasonName,
                FullSeason   = false
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }
예제 #10
0
        public LocalEpisode Augment(LocalEpisode localEpisode, DownloadClientItem downloadClientItem)
        {
            var isMediaFile = MediaFileExtensions.Extensions.Contains(Path.GetExtension(localEpisode.Path));

            if (localEpisode.DownloadClientEpisodeInfo == null &&
                localEpisode.FolderEpisodeInfo == null &&
                localEpisode.FileEpisodeInfo == null)
            {
                if (isMediaFile)
                {
                    throw new AugmentingFailedException("Unable to parse episode info from path: {0}", localEpisode.Path);
                }
            }

            localEpisode.Size      = _diskProvider.GetFileSize(localEpisode.Path);
            localEpisode.SceneName = localEpisode.SceneSource ? SceneNameCalculator.GetSceneName(localEpisode) : null;

            if (isMediaFile && (!localEpisode.ExistingFile || _configService.EnableMediaInfo))
            {
                localEpisode.MediaInfo = _videoFileInfoReader.GetMediaInfo(localEpisode.Path);
            }

            foreach (var augmenter in _augmenters)
            {
                try
                {
                    augmenter.Aggregate(localEpisode, downloadClientItem);
                }
                catch (Exception ex)
                {
                    _logger.Warn(ex, ex.Message);
                }
            }

            return(localEpisode);
        }
예제 #11
0
        public void should_not_use_folder_name_as_scenename_if_it_is_for_batch()
        {
            var batchName = "[HorribleSubs] Series Title (01-62) [1080p] (Batch)";

            _localEpisode.DownloadClientEpisodeInfo = new ParsedEpisodeInfo
            {
                FullSeason   = false,
                ReleaseTitle = batchName
            };

            _localEpisode.Path = Path.Combine(@"C:\Test\Unsorted TV", batchName, "[HorribleSubs] Series Title - 14 [1080p].mkv")
                                 .AsOsAgnostic();

            _localEpisode.OtherVideoFiles = true;

            _localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo
            {
                ReleaseTitle = _seasonName,
                FullSeason   = false
            };

            SceneNameCalculator.GetSceneName(_localEpisode).Should()
            .BeNull();
        }