diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-08 23:52:52 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-08 23:52:52 -0500 |
| commit | 60e2fd4d44ef5dcdcf2ce011bb79b55c148f1259 (patch) | |
| tree | e328c1b080b339c12a6c1fd7a8e8eff8081f865c /MediaBrowser.Providers | |
| parent | f29469c9056faf361ce7c6f6dc7909af4c3b3edc (diff) | |
support mcm episodes
Diffstat (limited to 'MediaBrowser.Providers')
24 files changed, 84 insertions, 53 deletions
diff --git a/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs b/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs index 40f9fded5..d98989503 100644 --- a/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs +++ b/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs @@ -18,9 +18,9 @@ namespace MediaBrowser.Providers.AdultVideos _logger = logger; } - protected override void Fetch(AdultVideo item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<AdultVideo> result, string path, CancellationToken cancellationToken) { - new MovieXmlParser(_logger).Fetch(item, path, cancellationToken); + new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/All/InternalMetadataFolderImageProvider.cs b/MediaBrowser.Providers/All/InternalMetadataFolderImageProvider.cs index 252616006..a5a714dd8 100644 --- a/MediaBrowser.Providers/All/InternalMetadataFolderImageProvider.cs +++ b/MediaBrowser.Providers/All/InternalMetadataFolderImageProvider.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using System.Collections.Generic; @@ -28,6 +29,12 @@ namespace MediaBrowser.Providers.All return true; } + // Extracted images will be saved in here + if (item is Audio) + { + return true; + } + var locationType = item.LocationType; if (locationType == LocationType.FileSystem || diff --git a/MediaBrowser.Providers/BaseXmlProvider.cs b/MediaBrowser.Providers/BaseXmlProvider.cs index c0629392d..60ae8333a 100644 --- a/MediaBrowser.Providers/BaseXmlProvider.cs +++ b/MediaBrowser.Providers/BaseXmlProvider.cs @@ -13,9 +13,9 @@ namespace MediaBrowser.Providers { protected IFileSystem FileSystem; - public async Task<MetadataResult<T>> GetMetadata(ItemInfo info, CancellationToken cancellationToken) + public async Task<LocalMetadataResult<T>> GetMetadata(ItemInfo info, CancellationToken cancellationToken) { - var result = new MetadataResult<T>(); + var result = new LocalMetadataResult<T>(); var file = GetXmlFile(info); @@ -32,7 +32,7 @@ namespace MediaBrowser.Providers { result.Item = new T(); - Fetch(result.Item, path, cancellationToken); + Fetch(result, path, cancellationToken); result.HasMetadata = true; } catch (FileNotFoundException) @@ -47,7 +47,7 @@ namespace MediaBrowser.Providers return result; } - protected abstract void Fetch(T item, string path, CancellationToken cancellationToken); + protected abstract void Fetch(LocalMetadataResult<T> result, string path, CancellationToken cancellationToken); protected BaseXmlProvider(IFileSystem fileSystem) { diff --git a/MediaBrowser.Providers/BoxSets/BoxSetXmlProvider.cs b/MediaBrowser.Providers/BoxSets/BoxSetXmlProvider.cs index a214dff8c..f3f60abdc 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetXmlProvider.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetXmlProvider.cs @@ -20,9 +20,9 @@ namespace MediaBrowser.Providers.BoxSets _logger = logger; } - protected override void Fetch(BoxSet item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<BoxSet> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<BoxSet>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<BoxSet>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Folders/FolderXmlProvider.cs b/MediaBrowser.Providers/Folders/FolderXmlProvider.cs index 2fc6a8290..612cef79b 100644 --- a/MediaBrowser.Providers/Folders/FolderXmlProvider.cs +++ b/MediaBrowser.Providers/Folders/FolderXmlProvider.cs @@ -20,9 +20,9 @@ namespace MediaBrowser.Providers.Folders _logger = logger; } - protected override void Fetch(Folder item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Folder> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<Folder>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<Folder>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Games/GameSystemXmlProvider.cs b/MediaBrowser.Providers/Games/GameSystemXmlProvider.cs index 3e74f4c32..e35d849db 100644 --- a/MediaBrowser.Providers/Games/GameSystemXmlProvider.cs +++ b/MediaBrowser.Providers/Games/GameSystemXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Games _logger = logger; } - protected override void Fetch(GameSystem item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<GameSystem> result, string path, CancellationToken cancellationToken) { - new GameSystemXmlParser(_logger).Fetch(item, path, cancellationToken); + new GameSystemXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Games/GameXmlProvider.cs b/MediaBrowser.Providers/Games/GameXmlProvider.cs index 644fe3e42..4c09ce1a0 100644 --- a/MediaBrowser.Providers/Games/GameXmlProvider.cs +++ b/MediaBrowser.Providers/Games/GameXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Games _logger = logger; } - protected override void Fetch(Game item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Game> result, string path, CancellationToken cancellationToken) { - new GameXmlParser(_logger).Fetch(item, path, cancellationToken); + new GameXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/LiveTv/ChannelXmlProvider.cs b/MediaBrowser.Providers/LiveTv/ChannelXmlProvider.cs index af3de824d..3d001596b 100644 --- a/MediaBrowser.Providers/LiveTv/ChannelXmlProvider.cs +++ b/MediaBrowser.Providers/LiveTv/ChannelXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.LiveTv _logger = logger; } - protected override void Fetch(LiveTvChannel item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<LiveTvChannel> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<LiveTvChannel>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<LiveTvChannel>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 1b0ae1b5e..c9425c5e5 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -345,6 +345,10 @@ namespace MediaBrowser.Providers.Manager // None of the save local conditions passed, so store it in our internal folders if (string.IsNullOrEmpty(path)) { + if (string.IsNullOrEmpty(filename)) + { + filename = "folder"; + } path = Path.Combine(_config.ApplicationPaths.GetInternalMetadataPath(item.Id), filename + extension); } diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs index 521f2869b..95e6d5611 100644 --- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs +++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs @@ -262,7 +262,7 @@ namespace MediaBrowser.Providers.Manager return providers; } - private bool MergeImages(IHasImages item, List<LocalImageInfo> images) + public bool MergeImages(IHasImages item, List<LocalImageInfo> images) { var changed = false; diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index b594c8cc8..f7c2cef94 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -111,7 +111,7 @@ namespace MediaBrowser.Providers.Manager if (providers.Count > 0) { - var result = await RefreshWithProviders(itemOfType, refreshOptions, providers, cancellationToken).ConfigureAwait(false); + var result = await RefreshWithProviders(itemOfType, refreshOptions, providers, itemImageProvider, cancellationToken).ConfigureAwait(false); updateType = updateType | result.UpdateType; refreshResult.AddStatus(result.Status, result.ErrorMessage); @@ -254,7 +254,7 @@ namespace MediaBrowser.Providers.Manager return item is TItemType; } - protected virtual async Task<RefreshResult> RefreshWithProviders(TItemType item, MetadataRefreshOptions options, List<IMetadataProvider> providers, CancellationToken cancellationToken) + protected virtual async Task<RefreshResult> RefreshWithProviders(TItemType item, MetadataRefreshOptions options, List<IMetadataProvider> providers, ItemImageProvider imageService, CancellationToken cancellationToken) { var refreshResult = new RefreshResult { @@ -285,6 +285,11 @@ namespace MediaBrowser.Providers.Manager if (localItem.HasMetadata) { + if (imageService.MergeImages(item, localItem.Images)) + { + refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport; + } + if (!string.IsNullOrEmpty(localItem.Item.Name)) { MergeData(localItem.Item, temp, new List<MetadataFields>(), !options.ReplaceAllMetadata, true); diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs index 9ed82d511..56f6c6730 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs @@ -215,11 +215,12 @@ namespace MediaBrowser.Providers.MediaInfo foreach (var whitelistArtist in GetSplitWhitelist()) { - if (val.IndexOf(whitelistArtist, StringComparison.OrdinalIgnoreCase) != -1) - { - val = val.Replace(whitelistArtist, "|", StringComparison.OrdinalIgnoreCase); + var originalVal = val; + val = val.Replace(whitelistArtist, "|", StringComparison.OrdinalIgnoreCase); - // TODO: Preserve casing from original tag + if (!string.Equals(originalVal, val, StringComparison.OrdinalIgnoreCase)) + { + // TODO: Preserve casing from original value artistsFound.Add(whitelistArtist); } } diff --git a/MediaBrowser.Providers/Movies/MovieDbSearch.cs b/MediaBrowser.Providers/Movies/MovieDbSearch.cs index a15e03aac..5b178b0a9 100644 --- a/MediaBrowser.Providers/Movies/MovieDbSearch.cs +++ b/MediaBrowser.Providers/Movies/MovieDbSearch.cs @@ -71,6 +71,10 @@ namespace MediaBrowser.Providers.Movies name = name.Replace(".", " "); name = name.Replace("_", " "); name = name.Replace("-", " "); + name = name.Replace("!", " "); + name = name.Replace("?", " "); + + name = name.Trim(); // Search again if the new name is different if (!string.Equals(name, originalName)) diff --git a/MediaBrowser.Providers/Movies/MovieXmlProvider.cs b/MediaBrowser.Providers/Movies/MovieXmlProvider.cs index 8eabc0a2d..afc0055a7 100644 --- a/MediaBrowser.Providers/Movies/MovieXmlProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Movies _logger = logger; } - protected override void Fetch(Movie item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Movie> result, string path, CancellationToken cancellationToken) { - new MovieXmlParser(_logger).Fetch(item, path, cancellationToken); + new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs b/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs index 52704b151..044d87a48 100644 --- a/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs +++ b/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Movies _logger = logger; } - protected override void Fetch(Trailer item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Trailer> result, string path, CancellationToken cancellationToken) { - new MovieXmlParser(_logger).Fetch(item, path, cancellationToken); + new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Music/AlbumXmlProvider.cs b/MediaBrowser.Providers/Music/AlbumXmlProvider.cs index 06a1ed121..18e59fe68 100644 --- a/MediaBrowser.Providers/Music/AlbumXmlProvider.cs +++ b/MediaBrowser.Providers/Music/AlbumXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Music _logger = logger; } - protected override void Fetch(MusicAlbum item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<MusicAlbum> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<MusicAlbum>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<MusicAlbum>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Music/ArtistXmlProvider.cs b/MediaBrowser.Providers/Music/ArtistXmlProvider.cs index 921cbc8b9..f6da70702 100644 --- a/MediaBrowser.Providers/Music/ArtistXmlProvider.cs +++ b/MediaBrowser.Providers/Music/ArtistXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.Music _logger = logger; } - protected override void Fetch(MusicArtist item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<MusicArtist> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<MusicArtist>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<MusicArtist>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Music/MusicVideoXmlProvider.cs b/MediaBrowser.Providers/Music/MusicVideoXmlProvider.cs index ec763c852..3911777c1 100644 --- a/MediaBrowser.Providers/Music/MusicVideoXmlProvider.cs +++ b/MediaBrowser.Providers/Music/MusicVideoXmlProvider.cs @@ -19,9 +19,9 @@ namespace MediaBrowser.Providers.Music _logger = logger; } - protected override void Fetch(MusicVideo item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<MusicVideo> result, string path, CancellationToken cancellationToken) { - new MusicVideoXmlParser(_logger).Fetch(item, path, cancellationToken); + new MusicVideoXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs index ad985943f..5ef747674 100644 --- a/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs +++ b/MediaBrowser.Providers/Omdb/OmdbItemProvider.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Providers.Omdb public string Name { - get { return "OMDb"; } + get { return "IMDb via The Open Movie Database"; } } public Task<ItemUpdateType> FetchAsync(Series item, CancellationToken cancellationToken) diff --git a/MediaBrowser.Providers/People/PersonXmlProvider.cs b/MediaBrowser.Providers/People/PersonXmlProvider.cs index 0996615d3..9248e1b67 100644 --- a/MediaBrowser.Providers/People/PersonXmlProvider.cs +++ b/MediaBrowser.Providers/People/PersonXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.People _logger = logger; } - protected override void Fetch(Person item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Person> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<Person>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<Person>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs index 16d03f7b4..ee78c3777 100644 --- a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs +++ b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System; +using System.Collections.Generic; using System.Globalization; using System.IO; using System.Threading; @@ -15,14 +16,18 @@ namespace MediaBrowser.Providers.TV /// </summary> public class EpisodeXmlParser : BaseItemXmlParser<Episode> { + private List<LocalImageInfo> _imagesFound; + public EpisodeXmlParser(ILogger logger) : base(logger) { } - public void FetchAsync(Episode item, string metadataFile, CancellationToken cancellationToken) + public void Fetch(Episode item, List<LocalImageInfo> images, string metadataFile, CancellationToken cancellationToken) { - Fetch(item, metadataFile, cancellationToken); + _imagesFound = images; + + Fetch(item, metadataFile, cancellationToken); } private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); @@ -66,17 +71,22 @@ namespace MediaBrowser.Providers.TV if (!string.IsNullOrWhiteSpace(filename)) { - //// Strip off everything but the filename. Some metadata tools like MetaBrowser v1.0 will have an 'episodes' prefix - //// even though it's actually using the metadata folder. - //filename = Path.GetFileName(filename); + // Strip off everything but the filename. Some metadata tools like MetaBrowser v1.0 will have an 'episodes' prefix + // even though it's actually using the metadata folder. + filename = Path.GetFileName(filename); - //var seasonFolder = Path.GetDirectoryName(item.Path); - //filename = Path.Combine(seasonFolder, "metadata", filename); + var parentFolder = Path.GetDirectoryName(item.Path); + filename = Path.Combine(parentFolder, "metadata", filename); + var file = new FileInfo(filename); - //if (File.Exists(filename)) - //{ - // item.SetImagePath(ImageType.Primary, 0, filename); - //} + if (file.Exists) + { + _imagesFound.Add(new LocalImageInfo + { + Type = ImageType.Primary, + FileInfo = file + }); + } } break; } diff --git a/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs b/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs index b1f8ef976..18330e80f 100644 --- a/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs +++ b/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs @@ -17,9 +17,9 @@ namespace MediaBrowser.Providers.TV _logger = logger; } - protected override void Fetch(Episode item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Episode> result, string path, CancellationToken cancellationToken) { - new EpisodeXmlParser(_logger).Fetch(item, path, cancellationToken); + new EpisodeXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/TV/SeasonXmlProvider.cs b/MediaBrowser.Providers/TV/SeasonXmlProvider.cs index f9fe45120..07bec8dc9 100644 --- a/MediaBrowser.Providers/TV/SeasonXmlProvider.cs +++ b/MediaBrowser.Providers/TV/SeasonXmlProvider.cs @@ -20,9 +20,9 @@ namespace MediaBrowser.Providers.TV _logger = logger; } - protected override void Fetch(Season item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Season> result, string path, CancellationToken cancellationToken) { - new BaseItemXmlParser<Season>(_logger).Fetch(item, path, cancellationToken); + new BaseItemXmlParser<Season>(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) diff --git a/MediaBrowser.Providers/TV/SeriesXmlProvider.cs b/MediaBrowser.Providers/TV/SeriesXmlProvider.cs index 4dfaa3925..3a0c7f9d7 100644 --- a/MediaBrowser.Providers/TV/SeriesXmlProvider.cs +++ b/MediaBrowser.Providers/TV/SeriesXmlProvider.cs @@ -20,9 +20,9 @@ namespace MediaBrowser.Providers.TV _logger = logger; } - protected override void Fetch(Series item, string path, CancellationToken cancellationToken) + protected override void Fetch(LocalMetadataResult<Series> result, string path, CancellationToken cancellationToken) { - new SeriesXmlParser(_logger).Fetch(item, path, cancellationToken); + new SeriesXmlParser(_logger).Fetch(result.Item, path, cancellationToken); } protected override FileInfo GetXmlFile(ItemInfo info) |
