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); }
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); }
/// <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(); } }
public EpisodeNamer(string path, EpisodeSearchResult search, eMediaType episodeType) { _path = path; _search = search; _mediaType = episodeType; }