コード例 #1
0
        public async Task EpisodeSearch_OK(string fileName)
        {
            EpisodeSearchResult episode = await _apiClient.EpisodeSearch(fileName);

            Assert.NotNull(episode);
            Assert.True(episode.Id > 0);
            Assert.True(episode.ShowId > 0);
        }
コード例 #2
0
        private async Task <ProcessedEpisode> ProcessFoundEpisodeAsync(string path, EpisodeSearchResult episode, eMediaType mediaType)
        {
            var namer            = new EpisodeNamer(path, episode, mediaType);
            var finalDestination = await _episodeStore.SaveDownload(path, namer.FolderPath, namer.FileName);

            // Save.
            var processedEpisode = new ProcessedEpisode {
                EpisodeId = episode.Id, Source = path, Output = finalDestination
            };

            await UpdateOrAddToRepo(processedEpisode);

            _logger.LogInformation($"Processed Episode - FROM: (processorStore)/{path} | TO: (mediaStore)/{finalDestination}");

            return(processedEpisode);
        }
コード例 #3
0
        /// <summary>
        /// Processes the episode file passed into storage.
        /// </summary>
        public async Task ProcessAsync(string path, eMediaType mediaType)
        {
            if (mediaType == eMediaType.Movie)
            {
                throw new ArgumentException("Media Type is not an episode");
            }

            string episodeFileName      = Path.GetFileName(path);
            EpisodeSearchResult episode = await _mediaInfoRepository.EpisodeSearch(episodeFileName);

            if (episode?.Id > 0)
            {
                await ProcessFoundEpisodeAsync(path, episode, mediaType);

                _broker.Publish(mediaType.ToString(), episode.Id, "StorageProcessed");
            }
            else
            {
                _logger.LogWarning($"Did not process '{episodeFileName}' as it was not found by the media information service. Show Id: {episode?.ShowId.ToString() ?? "0 (SHOW NOT FOUND)"} / Full path: {path}");
                throw new EpisodeNotFoundException();
            }
        }
コード例 #4
0
 public EpisodeNamer(string path, EpisodeSearchResult search, eMediaType episodeType)
 {
     _path      = path;
     _search    = search;
     _mediaType = episodeType;
 }