aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Books/AudioBookMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Books/BookMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Channels/ChannelMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Folders/FolderMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Folders/UserViewMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Genres/GenreMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Manager/ImageSaver.cs37
-rw-r--r--MediaBrowser.Providers/Manager/ItemImageProvider.cs49
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs39
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs28
-rw-r--r--MediaBrowser.Providers/Manager/ProviderUtils.cs24
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj15
-rw-r--r--MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs6
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs27
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs4
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs24
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs5
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs7
-rw-r--r--MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs4
-rw-r--r--MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs6
-rw-r--r--MediaBrowser.Providers/Movies/MovieExternalIds.cs6
-rw-r--r--MediaBrowser.Providers/Movies/MovieMetadataService.cs6
-rw-r--r--MediaBrowser.Providers/Movies/TrailerMetadataService.cs6
-rw-r--r--MediaBrowser.Providers/Music/AlbumMetadataService.cs6
-rw-r--r--MediaBrowser.Providers/Music/ArtistMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Music/AudioMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Music/Extensions.cs20
-rw-r--r--MediaBrowser.Providers/Music/MusicExternalIds.cs2
-rw-r--r--MediaBrowser.Providers/Music/MusicVideoMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/People/PersonMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Photos/PhotoMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Playlists/PlaylistItemsProvider.cs10
-rw-r--r--MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/AlbumImageProvider.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/AlbumProvider.cs47
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/ArtistImageProvider.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/ArtistProvider.cs48
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/Configuration/PluginConfiguration.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/Configuration/config.html8
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs10
-rw-r--r--MediaBrowser.Providers/Plugins/AudioDb/Plugin.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/AlbumProvider.cs26
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/ArtistProvider.cs14
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html8
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs14
-rw-r--r--MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/Configuration/PluginConfiguration.cs11
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/Configuration/config.html49
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs6
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs5
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs44
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs151
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/Plugin.cs37
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/Configuration/PluginConfiguration.cs10
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/Plugin.cs26
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbClientManager.cs7
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeImageProvider.cs8
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeProvider.cs14
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbPersonImageProvider.cs7
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeasonImageProvider.cs13
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesImageProvider.cs9
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesProvider.cs91
-rw-r--r--MediaBrowser.Providers/Plugins/TheTvdb/TvdbUtils.cs2
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetExternalId.cs (renamed from MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetExternalId.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs)15
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs (renamed from MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetProvider.cs)32
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionImages.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Collections/CollectionImages.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Collections/CollectionResult.cs)10
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/Part.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Collections/Part.cs)8
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Backdrop.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Backdrop.cs)10
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Crew.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Crew.cs)9
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/ExternalIds.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/ExternalIds.cs)8
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Genre.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Genre.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Images.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Images.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keyword.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Keyword.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keywords.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Keywords.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Poster.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Poster.cs)10
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Profile.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Profile.cs)8
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Still.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Still.cs)11
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/StillImages.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/StillImages.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Video.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Video.cs)11
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/General/Videos.cs (renamed from MediaBrowser.Providers/Tmdb/Models/General/Videos.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/BelongsToCollection.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/BelongsToCollection.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Cast.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Cast.cs)9
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Casts.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Casts.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Country.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Country.cs)6
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/MovieResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/MovieResult.cs)35
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCompany.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCompany.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCountry.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCountry.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Releases.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Releases.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/SpokenLanguage.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/SpokenLanguage.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Trailers.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Trailers.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Youtube.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Movies/Youtube.cs)6
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonImages.cs12
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/People/PersonResult.cs)19
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Search/ExternalIdLookupResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Search/ExternalIdLookupResult.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Search/MovieResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Search/MovieResult.cs)17
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Search/PersonSearchResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Search/PersonSearchResult.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TmdbSearchResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Search/TmdbSearchResult.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TvResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/Search/TvResult.cs)12
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Cast.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/Cast.cs)9
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRating.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/ContentRating.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRatings.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/ContentRatings.cs)4
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/CreatedBy.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/CreatedBy.cs)6
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Credits.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/Credits.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Episode.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/Episode.cs)11
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeCredits.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/EpisodeCredits.cs)8
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/EpisodeResult.cs)19
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/GuestStar.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/GuestStar.cs)9
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Network.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/Network.cs)5
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Season.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/Season.cs)8
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonImages.cs12
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/SeasonResult.cs)16
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeriesResult.cs (renamed from MediaBrowser.Providers/Tmdb/Models/TV/SeriesResult.cs)35
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/GenericTmdbMovieInfo.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/GenericTmdbMovieInfo.cs)37
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/TmdbImageProvider.cs)15
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieExternalId.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/TmdbMovieExternalId.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/TmdbMovieProvider.cs)29
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSearch.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/TmdbSearch.cs)103
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSettings.cs (renamed from MediaBrowser.Providers/Tmdb/Movies/TmdbSettings.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Music/TmdbMusicVideoProvider.cs (renamed from MediaBrowser.Providers/Tmdb/Music/TmdbMusicVideoProvider.cs)6
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonExternalId.cs (renamed from MediaBrowser.Providers/Tmdb/People/TmdbPersonExternalId.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/People/TmdbPersonImageProvider.cs)15
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonProvider.cs (renamed from MediaBrowser.Providers/Tmdb/People/TmdbPersonProvider.cs)34
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeImageProvider.cs)16
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProvider.cs)15
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProviderBase.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProviderBase.cs)15
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbSeasonImageProvider.cs)10
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbSeasonProvider.cs)33
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesExternalId.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbSeriesExternalId.cs)7
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesImageProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbSeriesImageProvider.cs)16
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesProvider.cs (renamed from MediaBrowser.Providers/Tmdb/TV/TmdbSeriesProvider.cs)53
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs (renamed from MediaBrowser.Providers/Tmdb/TmdbUtils.cs)6
-rw-r--r--MediaBrowser.Providers/Plugins/Tmdb/Trailers/TmdbTrailerProvider.cs (renamed from MediaBrowser.Providers/Tmdb/Trailers/TmdbTrailerProvider.cs)6
-rw-r--r--MediaBrowser.Providers/Studios/StudioMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Studios/StudiosImageProvider.cs3
-rw-r--r--MediaBrowser.Providers/Subtitles/SubtitleManager.cs8
-rw-r--r--MediaBrowser.Providers/TV/DummySeasonProvider.cs9
-rw-r--r--MediaBrowser.Providers/TV/EpisodeMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/TV/MissingEpisodeProvider.cs8
-rw-r--r--MediaBrowser.Providers/TV/SeasonMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/TV/SeriesMetadataService.cs9
-rw-r--r--MediaBrowser.Providers/TV/TvExternalIds.cs11
-rw-r--r--MediaBrowser.Providers/Tmdb/Models/People/PersonImages.cs10
-rw-r--r--MediaBrowser.Providers/Tmdb/Models/TV/SeasonImages.cs10
-rw-r--r--MediaBrowser.Providers/Users/UserMetadataService.cs30
-rw-r--r--MediaBrowser.Providers/Videos/VideoMetadataService.cs4
-rw-r--r--MediaBrowser.Providers/Years/YearMetadataService.cs4
154 files changed, 1466 insertions, 669 deletions
diff --git a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs
index 8eaeeea08..eabc66c6b 100644
--- a/MediaBrowser.Providers/Books/AudioBookMetadataService.cs
+++ b/MediaBrowser.Providers/Books/AudioBookMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -25,7 +27,7 @@ namespace MediaBrowser.Providers.Books
protected override void MergeData(
MetadataResult<AudioBook> source,
MetadataResult<AudioBook> target,
- MetadataFields[] lockedFields,
+ MetadataField[] lockedFields,
bool replaceData,
bool mergeMetadataSettings)
{
diff --git a/MediaBrowser.Providers/Books/BookMetadataService.cs b/MediaBrowser.Providers/Books/BookMetadataService.cs
index 340641711..3f3782dfb 100644
--- a/MediaBrowser.Providers/Books/BookMetadataService.cs
+++ b/MediaBrowser.Providers/Books/BookMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Books
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Book> source, MetadataResult<Book> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Book> source, MetadataResult<Book> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
index 3c9760ea7..e5326da71 100644
--- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
+++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Controller.Configuration;
@@ -43,7 +45,7 @@ namespace MediaBrowser.Providers.BoxSets
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<BoxSet> source, MetadataResult<BoxSet> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<BoxSet> source, MetadataResult<BoxSet> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs
index 9afa82319..db2213bad 100644
--- a/MediaBrowser.Providers/Channels/ChannelMetadataService.cs
+++ b/MediaBrowser.Providers/Channels/ChannelMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Channels
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Channel> source, MetadataResult<Channel> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Channel> source, MetadataResult<Channel> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs
index 921222543..46f368f72 100644
--- a/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs
+++ b/MediaBrowser.Providers/Folders/CollectionFolderMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
@@ -23,7 +25,7 @@ namespace MediaBrowser.Providers.Folders
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<CollectionFolder> source, MetadataResult<CollectionFolder> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<CollectionFolder> source, MetadataResult<CollectionFolder> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Folders/FolderMetadataService.cs b/MediaBrowser.Providers/Folders/FolderMetadataService.cs
index b6bd2515d..998bf4c6a 100644
--- a/MediaBrowser.Providers/Folders/FolderMetadataService.cs
+++ b/MediaBrowser.Providers/Folders/FolderMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -26,7 +28,7 @@ namespace MediaBrowser.Providers.Folders
public override int Order => 10;
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Folder> source, MetadataResult<Folder> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Folder> source, MetadataResult<Folder> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs
index 60ee81114..2d536f12e 100644
--- a/MediaBrowser.Providers/Folders/UserViewMetadataService.cs
+++ b/MediaBrowser.Providers/Folders/UserViewMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Folders
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<UserView> source, MetadataResult<UserView> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<UserView> source, MetadataResult<UserView> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Genres/GenreMetadataService.cs b/MediaBrowser.Providers/Genres/GenreMetadataService.cs
index f3406c1ab..f7ea767e7 100644
--- a/MediaBrowser.Providers/Genres/GenreMetadataService.cs
+++ b/MediaBrowser.Providers/Genres/GenreMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Genres
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Genre> source, MetadataResult<Genre> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Genre> source, MetadataResult<Genre> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs b/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs
index 7dd49c71a..2e6cf4530 100644
--- a/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs
+++ b/MediaBrowser.Providers/LiveTv/ProgramMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.LiveTv
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<LiveTvChannel> source, MetadataResult<LiveTvChannel> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<LiveTvChannel> source, MetadataResult<LiveTvChannel> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs
index 3ab621ba4..f655b8edd 100644
--- a/MediaBrowser.Providers/Manager/ImageSaver.cs
+++ b/MediaBrowser.Providers/Manager/ImageSaver.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -5,34 +7,38 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Jellyfin.Data.Entities;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using Microsoft.Extensions.Logging;
+using Episode = MediaBrowser.Controller.Entities.TV.Episode;
+using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum;
+using Person = MediaBrowser.Controller.Entities.Person;
+using Season = MediaBrowser.Controller.Entities.TV.Season;
namespace MediaBrowser.Providers.Manager
{
/// <summary>
- /// Class ImageSaver
+ /// Class ImageSaver.
/// </summary>
public class ImageSaver
{
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
/// <summary>
- /// The _config
+ /// The _config.
/// </summary>
private readonly IServerConfigurationManager _config;
/// <summary>
- /// The _directory watchers
+ /// The _directory watchers.
/// </summary>
private readonly ILibraryMonitor _libraryMonitor;
private readonly IFileSystem _fileSystem;
@@ -78,11 +84,6 @@ namespace MediaBrowser.Providers.Manager
var saveLocally = item.SupportsLocalMetadata && item.IsSaveLocalMetadataEnabled() && !item.ExtraType.HasValue && !(item is Audio);
- if (item is User)
- {
- saveLocally = true;
- }
-
if (type != ImageType.Primary && item is Episode)
{
saveLocally = false;
@@ -105,6 +106,7 @@ namespace MediaBrowser.Providers.Manager
}
}
}
+
if (saveLocallyWithMedia.HasValue && !saveLocallyWithMedia.Value)
{
saveLocally = saveLocallyWithMedia.Value;
@@ -132,11 +134,11 @@ namespace MediaBrowser.Providers.Manager
var currentImage = GetCurrentImage(item, type, index);
var currentImageIsLocalFile = currentImage != null && currentImage.IsLocalFile;
- var currentImagePath = currentImage == null ? null : currentImage.Path;
+ var currentImagePath = currentImage?.Path;
var savedPaths = new List<string>();
- using (source)
+ await using (source)
{
var currentPathIndex = 0;
@@ -148,6 +150,7 @@ namespace MediaBrowser.Providers.Manager
{
retryPath = retryPaths[currentPathIndex];
}
+
var savedPath = await SaveImageToLocation(source, path, retryPath, cancellationToken).ConfigureAwait(false);
savedPaths.Add(savedPath);
currentPathIndex++;
@@ -172,7 +175,6 @@ namespace MediaBrowser.Providers.Manager
}
catch (FileNotFoundException)
{
-
}
finally
{
@@ -181,6 +183,11 @@ namespace MediaBrowser.Providers.Manager
}
}
+ public async Task SaveImage(User user, Stream source, string path)
+ {
+ await SaveImageToLocation(source, path, path, CancellationToken.None).ConfigureAwait(false);
+ }
+
private async Task<string> SaveImageToLocation(Stream source, string path, string retryPath, CancellationToken cancellationToken)
{
try
@@ -244,7 +251,7 @@ namespace MediaBrowser.Providers.Manager
_fileSystem.SetAttributes(path, false, false);
- using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous))
+ await using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous))
{
await source.CopyToAsync(fs, IODefaults.CopyToBufferSize, cancellationToken).ConfigureAwait(false);
}
@@ -439,7 +446,6 @@ namespace MediaBrowser.Providers.Manager
{
path = Path.Combine(Path.GetDirectoryName(item.Path), "metadata", filename + extension);
}
-
else if (item.IsInMixedFolder)
{
path = GetSavePathForItemInMixedFolder(item, type, filename, extension);
@@ -458,6 +464,7 @@ namespace MediaBrowser.Providers.Manager
{
filename = folderName;
}
+
path = Path.Combine(item.GetInternalMetadataPath(), filename + extension);
}
@@ -549,6 +556,7 @@ namespace MediaBrowser.Providers.Manager
{
list.Add(Path.Combine(item.ContainingFolderPath, "extrathumbs", "thumb" + outputIndex.ToString(UsCulture) + extension));
}
+
return list.ToArray();
}
@@ -617,6 +625,7 @@ namespace MediaBrowser.Providers.Manager
{
imageFilename = "poster";
}
+
var folder = Path.GetDirectoryName(item.Path);
return Path.Combine(folder, Path.GetFileNameWithoutExtension(item.Path) + "-" + imageFilename + extension);
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index 6ef0e44a2..6cc3ca369 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -58,6 +60,7 @@ namespace MediaBrowser.Providers.Manager
{
ClearImages(item, ImageType.Backdrop);
}
+
if (refreshOptions.IsReplacingImage(ImageType.Screenshot))
{
ClearImages(item, ImageType.Screenshot);
@@ -112,7 +115,10 @@ namespace MediaBrowser.Providers.Manager
foreach (var imageType in images)
{
- if (!IsEnabled(savedOptions, imageType, item)) continue;
+ if (!IsEnabled(savedOptions, imageType, item))
+ {
+ continue;
+ }
if (!HasImage(item, imageType) || (refreshOptions.IsReplacingImage(imageType) && !downloadedImages.Contains(imageType)))
{
@@ -168,7 +174,7 @@ namespace MediaBrowser.Providers.Manager
}
/// <summary>
- /// Image types that are only one per item
+ /// Image types that are only one per item.
/// </summary>
private readonly ImageType[] _singularImages =
{
@@ -189,7 +195,7 @@ namespace MediaBrowser.Providers.Manager
}
/// <summary>
- /// Determines if an item already contains the given images
+ /// Determines if an item already contains the given images.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="images">The images.</param>
@@ -221,6 +227,7 @@ namespace MediaBrowser.Providers.Manager
/// Refreshes from provider.
/// </summary>
/// <param name="item">The item.</param>
+ /// <param name="libraryOptions">The library options.</param>
/// <param name="provider">The provider.</param>
/// <param name="refreshOptions">The refresh options.</param>
/// <param name="savedOptions">The saved options.</param>
@@ -230,7 +237,9 @@ namespace MediaBrowser.Providers.Manager
/// <param name="result">The result.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- private async Task RefreshFromProvider(BaseItem item, LibraryOptions libraryOptions,
+ private async Task RefreshFromProvider(
+ BaseItem item,
+ LibraryOptions libraryOptions,
IRemoteImageProvider provider,
ImageRefreshOptions refreshOptions,
TypeOptions savedOptions,
@@ -256,20 +265,24 @@ namespace MediaBrowser.Providers.Manager
_logger.LogDebug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name);
- var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
- {
- ProviderName = provider.Name,
- IncludeAllLanguages = false,
- IncludeDisabledProviders = false,
-
- }, cancellationToken).ConfigureAwait(false);
+ var images = await _providerManager.GetAvailableRemoteImages(
+ item,
+ new RemoteImageQuery(provider.Name)
+ {
+ IncludeAllLanguages = false,
+ IncludeDisabledProviders = false,
+ },
+ cancellationToken).ConfigureAwait(false);
var list = images.ToList();
int minWidth;
foreach (var imageType in _singularImages)
{
- if (!IsEnabled(savedOptions, imageType, item)) continue;
+ if (!IsEnabled(savedOptions, imageType, item))
+ {
+ continue;
+ }
if (!HasImage(item, imageType) || (refreshOptions.IsReplacingImage(imageType) && !downloadedImages.Contains(imageType)))
{
@@ -329,7 +342,6 @@ namespace MediaBrowser.Providers.Manager
}
catch (FileNotFoundException)
{
-
}
}
@@ -463,10 +475,12 @@ namespace MediaBrowser.Providers.Manager
catch (HttpException ex)
{
// Sometimes providers send back bad url's. Just move to the next image
- if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound)
+ if (ex.StatusCode.HasValue
+ && (ex.StatusCode.Value == HttpStatusCode.NotFound || ex.StatusCode.Value == HttpStatusCode.Forbidden))
{
continue;
}
+
break;
}
}
@@ -500,7 +514,7 @@ namespace MediaBrowser.Providers.Manager
return false;
}
- //if (!item.IsSaveLocalMetadataEnabled())
+ // if (!item.IsSaveLocalMetadataEnabled())
//{
// return true;
//}
@@ -523,7 +537,6 @@ namespace MediaBrowser.Providers.Manager
{
Path = path,
Type = imageType
-
}, newIndex);
}
@@ -577,10 +590,12 @@ namespace MediaBrowser.Providers.Manager
catch (HttpException ex)
{
// Sometimes providers send back bad urls. Just move onto the next image
- if (ex.StatusCode.HasValue && ex.StatusCode.Value == HttpStatusCode.NotFound)
+ if (ex.StatusCode.HasValue
+ && (ex.StatusCode.Value == HttpStatusCode.NotFound || ex.StatusCode.Value == HttpStatusCode.Forbidden))
{
continue;
}
+
break;
}
}
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index c49aa407a..ecfa3d46d 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -20,12 +22,12 @@ namespace MediaBrowser.Providers.Manager
where TIdType : ItemLookupInfo, new()
{
protected readonly IServerConfigurationManager ServerConfigurationManager;
- protected readonly ILogger Logger;
+ protected readonly ILogger<MetadataService<TItemType, TIdType>> Logger;
protected readonly IProviderManager ProviderManager;
protected readonly IFileSystem FileSystem;
protected readonly ILibraryManager LibraryManager;
- protected MetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager)
+ protected MetadataService(IServerConfigurationManager serverConfigurationManager, ILogger<MetadataService<TItemType, TIdType>> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager)
{
ServerConfigurationManager = serverConfigurationManager;
Logger = logger;
@@ -125,7 +127,7 @@ namespace MediaBrowser.Providers.Manager
ApplySearchResult(id, refreshOptions.SearchResult);
}
- //await FindIdentities(id, cancellationToken).ConfigureAwait(false);
+ // await FindIdentities(id, cancellationToken).ConfigureAwait(false);
id.IsAutomated = refreshOptions.IsAutomated;
var result = await RefreshWithProviders(metadataResult, id, refreshOptions, providers, itemImageProvider, cancellationToken).ConfigureAwait(false);
@@ -210,6 +212,7 @@ namespace MediaBrowser.Providers.Manager
LibraryManager.UpdatePeople(baseItem, result.People);
SavePeopleMetadata(result.People, libraryOptions, cancellationToken);
}
+
result.Item.UpdateToRepository(reason, cancellationToken);
}
@@ -252,7 +255,7 @@ namespace MediaBrowser.Providers.Manager
private void AddPersonImage(Person personEntity, LibraryOptions libraryOptions, string imageUrl, CancellationToken cancellationToken)
{
- //if (libraryOptions.DownloadImagesInAdvance)
+ // if (libraryOptions.DownloadImagesInAdvance)
//{
// try
// {
@@ -324,6 +327,7 @@ namespace MediaBrowser.Providers.Manager
{
return true;
}
+
var folder = item as Folder;
if (folder != null)
{
@@ -389,7 +393,7 @@ namespace MediaBrowser.Providers.Manager
{
if (!child.IsFolder)
{
- ticks += (child.RunTimeTicks ?? 0);
+ ticks += child.RunTimeTicks ?? 0;
}
}
@@ -422,6 +426,7 @@ namespace MediaBrowser.Providers.Manager
{
dateLastMediaAdded = childDateCreated;
}
+
any = true;
}
}
@@ -486,7 +491,7 @@ namespace MediaBrowser.Providers.Manager
{
var updateType = ItemUpdateType.None;
- if (!item.LockedFields.Contains(MetadataFields.Genres))
+ if (!item.LockedFields.Contains(MetadataField.Genres))
{
var currentList = item.Genres;
@@ -507,7 +512,7 @@ namespace MediaBrowser.Providers.Manager
{
var updateType = ItemUpdateType.None;
- if (!item.LockedFields.Contains(MetadataFields.Studios))
+ if (!item.LockedFields.Contains(MetadataField.Studios))
{
var currentList = item.Studios;
@@ -528,7 +533,7 @@ namespace MediaBrowser.Providers.Manager
{
var updateType = ItemUpdateType.None;
- if (!item.LockedFields.Contains(MetadataFields.OfficialRating))
+ if (!item.LockedFields.Contains(MetadataField.OfficialRating))
{
if (item.UpdateRatingToItems(children))
{
@@ -718,7 +723,7 @@ namespace MediaBrowser.Providers.Manager
userDataList.AddRange(localItem.UserDataList);
}
- MergeData(localItem, temp, new MetadataFields[] { }, !options.ReplaceAllMetadata, true);
+ MergeData(localItem, temp, new MetadataField[] { }, !options.ReplaceAllMetadata, true);
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport;
// Only one local provider allowed per item
@@ -726,6 +731,7 @@ namespace MediaBrowser.Providers.Manager
{
hasLocalMetadata = true;
}
+
break;
}
@@ -766,20 +772,20 @@ namespace MediaBrowser.Providers.Manager
else
{
// TODO: If the new metadata from above has some blank data, this can cause old data to get filled into those empty fields
- MergeData(metadata, temp, new MetadataFields[] { }, false, false);
+ MergeData(metadata, temp, new MetadataField[] { }, false, false);
MergeData(temp, metadata, item.LockedFields, true, false);
}
}
}
- //var isUnidentified = failedProviderCount > 0 && successfulProviderCount == 0;
+ // var isUnidentified = failedProviderCount > 0 && successfulProviderCount == 0;
foreach (var provider in customProviders.Where(i => !(i is IPreRefreshProvider)))
{
await RunCustomProvider(provider, item, logName, options, refreshResult, cancellationToken).ConfigureAwait(false);
}
- //ImportUserData(item, userDataList, cancellationToken);
+ // ImportUserData(item, userDataList, cancellationToken);
return refreshResult;
}
@@ -843,7 +849,7 @@ namespace MediaBrowser.Providers.Manager
{
result.Provider = provider.Name;
- MergeData(result, temp, new MetadataFields[] { }, false, false);
+ MergeData(result, temp, new MetadataField[] { }, false, false);
MergeNewData(temp.Item, id);
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataDownload;
@@ -874,6 +880,7 @@ namespace MediaBrowser.Providers.Manager
{
return "en";
}
+
return language;
}
@@ -894,7 +901,7 @@ namespace MediaBrowser.Providers.Manager
protected abstract void MergeData(MetadataResult<TItemType> source,
MetadataResult<TItemType> target,
- MetadataFields[] lockedFields,
+ MetadataField[] lockedFields,
bool replaceData,
bool mergeMetadataSettings);
@@ -906,7 +913,7 @@ namespace MediaBrowser.Providers.Manager
{
var hasChanged = changeMonitor.HasChanged(item, directoryService);
- //if (hasChanged)
+ // if (hasChanged)
//{
// logger.LogDebug("{0} reports change to {1}", changeMonitor.GetType().Name, item.Path ?? item.Name);
//}
@@ -924,7 +931,9 @@ namespace MediaBrowser.Providers.Manager
public class RefreshResult
{
public ItemUpdateType UpdateType { get; set; }
+
public string ErrorMessage { get; set; }
+
public int Failures { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index 95133a9a7..86a182fe5 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -8,6 +8,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Jellyfin.Data.Entities;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Progress;
using MediaBrowser.Controller;
@@ -16,7 +17,6 @@ using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
-using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Subtitles;
@@ -28,15 +28,21 @@ using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
using Microsoft.Extensions.Logging;
using Priority_Queue;
+using Book = MediaBrowser.Controller.Entities.Book;
+using Episode = MediaBrowser.Controller.Entities.TV.Episode;
+using Movie = MediaBrowser.Controller.Entities.Movies.Movie;
+using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum;
+using Season = MediaBrowser.Controller.Entities.TV.Season;
+using Series = MediaBrowser.Controller.Entities.TV.Series;
namespace MediaBrowser.Providers.Manager
{
/// <summary>
- /// Class ProviderManager
+ /// Class ProviderManager.
/// </summary>
public class ProviderManager : IProviderManager, IDisposable
{
- private readonly ILogger _logger;
+ private readonly ILogger<ProviderManager> _logger;
private readonly IHttpClient _httpClient;
private readonly ILibraryMonitor _libraryMonitor;
private readonly IFileSystem _fileSystem;
@@ -182,6 +188,12 @@ namespace MediaBrowser.Providers.Manager
return new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken);
}
+ public Task SaveImage(User user, Stream source, string mimeType, string path)
+ {
+ return new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger)
+ .SaveImage(user, source, path);
+ }
+
public async Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(BaseItem item, RemoteImageQuery query, CancellationToken cancellationToken)
{
var providers = GetRemoteImageProviders(item, query.IncludeDisabledProviders);
@@ -255,11 +267,7 @@ namespace MediaBrowser.Providers.Manager
/// <returns>IEnumerable{IImageProvider}.</returns>
public IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(BaseItem item)
{
- return GetRemoteImageProviders(item, true).Select(i => new ImageProviderInfo
- {
- Name = i.Name,
- SupportedImages = i.GetSupportedImages(item).ToArray()
- });
+ return GetRemoteImageProviders(item, true).Select(i => new ImageProviderInfo(i.Name, i.GetSupportedImages(item).ToArray()));
}
public IEnumerable<IImageProvider> GetImageProviders(BaseItem item, ImageRefreshOptions refreshOptions)
@@ -779,6 +787,7 @@ namespace MediaBrowser.Providers.Manager
{
searchInfo.SearchInfo.MetadataLanguage = _configurationManager.Configuration.PreferredMetadataLanguage;
}
+
if (string.IsNullOrWhiteSpace(searchInfo.SearchInfo.MetadataCountryCode))
{
searchInfo.SearchInfo.MetadataCountryCode = _configurationManager.Configuration.MetadataCountryCode;
@@ -823,7 +832,7 @@ namespace MediaBrowser.Providers.Manager
}
}
- //_logger.LogDebug("Returning search results {0}", _json.SerializeToString(resultList));
+ // _logger.LogDebug("Returning search results {0}", _json.SerializeToString(resultList));
return resultList;
}
@@ -897,7 +906,6 @@ namespace MediaBrowser.Providers.Manager
i.UrlFormatString,
value)
};
-
}).Where(i => i != null).Concat(item.GetRelatedUrls());
}
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index 8d1588c4e..a4fd6ca84 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -14,7 +16,7 @@ namespace MediaBrowser.Providers.Manager
public static void MergeBaseItemData<T>(
MetadataResult<T> sourceResult,
MetadataResult<T> targetResult,
- MetadataFields[] lockedFields,
+ MetadataField[] lockedFields,
bool replaceData,
bool mergeMetadataSettings)
where T : BaseItem
@@ -26,12 +28,13 @@ namespace MediaBrowser.Providers.Manager
{
throw new ArgumentNullException(nameof(source));
}
+
if (target == null)
{
throw new ArgumentNullException(nameof(target));
}
- if (!lockedFields.Contains(MetadataFields.Name))
+ if (!lockedFields.Contains(MetadataField.Name))
{
if (replaceData || string.IsNullOrEmpty(target.Name))
{
@@ -62,7 +65,7 @@ namespace MediaBrowser.Providers.Manager
target.EndDate = source.EndDate;
}
- if (!lockedFields.Contains(MetadataFields.Genres))
+ if (!lockedFields.Contains(MetadataField.Genres))
{
if (replaceData || target.Genres.Length == 0)
{
@@ -75,7 +78,7 @@ namespace MediaBrowser.Providers.Manager
target.IndexNumber = source.IndexNumber;
}
- if (!lockedFields.Contains(MetadataFields.OfficialRating))
+ if (!lockedFields.Contains(MetadataField.OfficialRating))
{
if (replaceData || string.IsNullOrEmpty(target.OfficialRating))
{
@@ -93,7 +96,7 @@ namespace MediaBrowser.Providers.Manager
target.Tagline = source.Tagline;
}
- if (!lockedFields.Contains(MetadataFields.Overview))
+ if (!lockedFields.Contains(MetadataField.Overview))
{
if (replaceData || string.IsNullOrEmpty(target.Overview))
{
@@ -106,12 +109,11 @@ namespace MediaBrowser.Providers.Manager
target.ParentIndexNumber = source.ParentIndexNumber;
}
- if (!lockedFields.Contains(MetadataFields.Cast))
+ if (!lockedFields.Contains(MetadataField.Cast))
{
if (replaceData || targetResult.People == null || targetResult.People.Count == 0)
{
targetResult.People = sourceResult.People;
-
}
else if (targetResult.People != null && sourceResult.People != null)
{
@@ -129,7 +131,7 @@ namespace MediaBrowser.Providers.Manager
target.ProductionYear = source.ProductionYear;
}
- if (!lockedFields.Contains(MetadataFields.Runtime))
+ if (!lockedFields.Contains(MetadataField.Runtime))
{
if (replaceData || !target.RunTimeTicks.HasValue)
{
@@ -140,7 +142,7 @@ namespace MediaBrowser.Providers.Manager
}
}
- if (!lockedFields.Contains(MetadataFields.Studios))
+ if (!lockedFields.Contains(MetadataField.Studios))
{
if (replaceData || target.Studios.Length == 0)
{
@@ -148,7 +150,7 @@ namespace MediaBrowser.Providers.Manager
}
}
- if (!lockedFields.Contains(MetadataFields.Tags))
+ if (!lockedFields.Contains(MetadataField.Tags))
{
if (replaceData || target.Tags.Length == 0)
{
@@ -156,7 +158,7 @@ namespace MediaBrowser.Providers.Manager
}
}
- if (!lockedFields.Contains(MetadataFields.ProductionLocations))
+ if (!lockedFields.Contains(MetadataField.ProductionLocations))
{
if (replaceData || target.ProductionLocations.Length == 0)
{
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 1b3df63b6..446e27df6 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -16,17 +16,18 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.3" />
- <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="3.1.3" />
+ <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.5" />
+ <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="3.1.5" />
<PackageReference Include="OptimizedPriorityQueue" Version="4.2.0" />
- <PackageReference Include="PlaylistsNET" Version="1.0.4" />
- <PackageReference Include="TvDbSharper" Version="3.0.1" />
+ <PackageReference Include="PlaylistsNET" Version="1.0.6" />
+ <PackageReference Include="TvDbSharper" Version="3.2.0" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
+ <TreatWarningsAsErrors Condition=" '$(Configuration)' == 'Release'" >true</TreatWarningsAsErrors>
</PropertyGroup>
<!-- Code Analyzers-->
@@ -44,11 +45,9 @@
<ItemGroup>
<None Remove="Plugins\AudioDb\Configuration\config.html" />
<EmbeddedResource Include="Plugins\AudioDb\Configuration\config.html" />
- </ItemGroup>
-
- <ItemGroup>
+ <None Remove="Plugins\Omdb\Configuration\config.html" />
+ <EmbeddedResource Include="Plugins\Omdb\Configuration\config.html" />
<None Remove="Plugins\MusicBrainz\Configuration\config.html" />
<EmbeddedResource Include="Plugins\MusicBrainz\Configuration\config.html" />
</ItemGroup>
-
</Project>
diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs
index 7023ef706..80acb2c05 100644
--- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -17,7 +19,7 @@ using MediaBrowser.Model.IO;
namespace MediaBrowser.Providers.MediaInfo
{
/// <summary>
- /// Uses ffmpeg to create video images
+ /// Uses ffmpeg to create video images.
/// </summary>
public class AudioImageProvider : IDynamicImageProvider
{
@@ -79,7 +81,6 @@ namespace MediaBrowser.Providers.MediaInfo
}
catch
{
-
}
}
@@ -130,6 +131,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
return false;
}
+
if (!item.IsFileProtocol)
{
return false;
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
index 207d75524..69c6fd722 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -19,7 +21,7 @@ using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Providers.MediaInfo
{
- class FFProbeAudioInfo
+ public class FFProbeAudioInfo
{
private readonly IMediaEncoder _mediaEncoder;
private readonly IItemRepository _itemRepo;
@@ -63,7 +65,6 @@ namespace MediaBrowser.Providers.MediaInfo
Path = path,
Protocol = protocol
}
-
}, cancellationToken).ConfigureAwait(false);
cancellationToken.ThrowIfCancellationRequested();
@@ -91,8 +92,8 @@ namespace MediaBrowser.Providers.MediaInfo
audio.RunTimeTicks = mediaInfo.RunTimeTicks;
audio.Size = mediaInfo.Size;
- //var extension = (Path.GetExtension(audio.Path) ?? string.Empty).TrimStart('.');
- //audio.Container = extension;
+ // var extension = (Path.GetExtension(audio.Path) ?? string.Empty).TrimStart('.');
+ // audio.Container = extension;
FetchDataFromTags(audio, mediaInfo);
@@ -100,7 +101,7 @@ namespace MediaBrowser.Providers.MediaInfo
}
/// <summary>
- /// Fetches data from the tags dictionary
+ /// Fetches data from the tags dictionary.
/// </summary>
/// <param name="audio">The audio.</param>
/// <param name="data">The data.</param>
@@ -112,7 +113,7 @@ namespace MediaBrowser.Providers.MediaInfo
audio.Name = data.Name;
}
- if (audio.SupportsPeople && !audio.LockedFields.Contains(MetadataFields.Cast))
+ if (audio.SupportsPeople && !audio.LockedFields.Contains(MetadataField.Cast))
{
var people = new List<PersonInfo>();
@@ -143,7 +144,7 @@ namespace MediaBrowser.Providers.MediaInfo
audio.ProductionYear = audio.PremiereDate.Value.ToLocalTime().Year;
}
- if (!audio.LockedFields.Contains(MetadataFields.Genres))
+ if (!audio.LockedFields.Contains(MetadataField.Genres))
{
audio.Genres = Array.Empty<string>();
@@ -153,16 +154,16 @@ namespace MediaBrowser.Providers.MediaInfo
}
}
- if (!audio.LockedFields.Contains(MetadataFields.Studios))
+ if (!audio.LockedFields.Contains(MetadataField.Studios))
{
audio.SetStudios(data.Studios);
}
- audio.SetProviderId(MetadataProviders.MusicBrainzAlbumArtist, data.GetProviderId(MetadataProviders.MusicBrainzAlbumArtist));
- audio.SetProviderId(MetadataProviders.MusicBrainzArtist, data.GetProviderId(MetadataProviders.MusicBrainzArtist));
- audio.SetProviderId(MetadataProviders.MusicBrainzAlbum, data.GetProviderId(MetadataProviders.MusicBrainzAlbum));
- audio.SetProviderId(MetadataProviders.MusicBrainzReleaseGroup, data.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup));
- audio.SetProviderId(MetadataProviders.MusicBrainzTrack, data.GetProviderId(MetadataProviders.MusicBrainzTrack));
+ audio.SetProviderId(MetadataProvider.MusicBrainzAlbumArtist, data.GetProviderId(MetadataProvider.MusicBrainzAlbumArtist));
+ audio.SetProviderId(MetadataProvider.MusicBrainzArtist, data.GetProviderId(MetadataProvider.MusicBrainzArtist));
+ audio.SetProviderId(MetadataProvider.MusicBrainzAlbum, data.GetProviderId(MetadataProvider.MusicBrainzAlbum));
+ audio.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, data.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup));
+ audio.SetProviderId(MetadataProvider.MusicBrainzTrack, data.GetProviderId(MetadataProvider.MusicBrainzTrack));
}
}
}
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
index 6982568eb..4fabe709b 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.IO;
using System.Linq;
@@ -37,7 +39,7 @@ namespace MediaBrowser.Providers.MediaInfo
IPreRefreshProvider,
IHasItemChangeMonitor
{
- private readonly ILogger _logger;
+ private readonly ILogger<FFProbeProvider> _logger;
private readonly IIsoManager _isoManager;
private readonly IMediaEncoder _mediaEncoder;
private readonly IItemRepository _itemRepo;
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
index 89496622f..53a6bb619 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
@@ -24,7 +24,6 @@ using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
-using MediaBrowser.Model.IO;
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Providers;
using Microsoft.Extensions.Logging;
@@ -176,7 +175,7 @@ namespace MediaBrowser.Providers.MediaInfo
mediaAttachments = mediaInfo.MediaAttachments;
video.TotalBitrate = mediaInfo.Bitrate;
- //video.FormatName = (mediaInfo.Container ?? string.Empty)
+ // video.FormatName = (mediaInfo.Container ?? string.Empty)
// .Replace("matroska", "mkv", StringComparison.OrdinalIgnoreCase);
// For dvd's this may not always be accurate, so don't set the runtime if the item already has one
@@ -283,7 +282,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
var video = (Video)item;
- //video.PlayableStreamFileNames = blurayInfo.Files.ToList();
+ // video.PlayableStreamFileNames = blurayInfo.Files.ToList();
// Use BD Info if it has multiple m2ts. Otherwise, treat it like a video file and rely more on ffprobe output
if (blurayInfo.Files.Length > 1)
@@ -342,7 +341,7 @@ namespace MediaBrowser.Providers.MediaInfo
}
/// <summary>
- /// Gets information about the longest playlist on a bdrom
+ /// Gets information about the longest playlist on a bdrom.
/// </summary>
/// <param name="path">The path.</param>
/// <returns>VideoStream.</returns>
@@ -368,7 +367,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
var isFullRefresh = refreshOptions.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.OfficialRating))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.OfficialRating))
{
if (!string.IsNullOrWhiteSpace(data.OfficialRating) || isFullRefresh)
{
@@ -376,7 +375,7 @@ namespace MediaBrowser.Providers.MediaInfo
}
}
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Genres))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.Genres))
{
if (video.Genres.Length == 0 || isFullRefresh)
{
@@ -389,7 +388,7 @@ namespace MediaBrowser.Providers.MediaInfo
}
}
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Studios))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.Studios))
{
if (video.Studios.Length == 0 || isFullRefresh)
{
@@ -404,6 +403,7 @@ namespace MediaBrowser.Providers.MediaInfo
video.ProductionYear = data.ProductionYear;
}
}
+
if (data.PremiereDate.HasValue)
{
if (!video.PremiereDate.HasValue || isFullRefresh)
@@ -411,6 +411,7 @@ namespace MediaBrowser.Providers.MediaInfo
video.PremiereDate = data.PremiereDate;
}
}
+
if (data.IndexNumber.HasValue)
{
if (!video.IndexNumber.HasValue || isFullRefresh)
@@ -418,6 +419,7 @@ namespace MediaBrowser.Providers.MediaInfo
video.IndexNumber = data.IndexNumber;
}
}
+
if (data.ParentIndexNumber.HasValue)
{
if (!video.ParentIndexNumber.HasValue || isFullRefresh)
@@ -426,7 +428,7 @@ namespace MediaBrowser.Providers.MediaInfo
}
}
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Name))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.Name))
{
if (!string.IsNullOrWhiteSpace(data.Name) && libraryOptions.EnableEmbeddedTitles)
{
@@ -444,7 +446,7 @@ namespace MediaBrowser.Providers.MediaInfo
video.ProductionYear = video.PremiereDate.Value.ToLocalTime().Year;
}
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Overview))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.Overview))
{
if (string.IsNullOrWhiteSpace(video.Overview) || isFullRefresh)
{
@@ -457,7 +459,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
var isFullRefresh = options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
- if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Cast))
+ if (!video.IsLocked && !video.LockedFields.Contains(MetadataField.Cast))
{
if (isFullRefresh || _libraryManager.GetPeople(video).Count == 0)
{
@@ -565,7 +567,7 @@ namespace MediaBrowser.Providers.MediaInfo
/// Creates dummy chapters.
/// </summary>
/// <param name="video">The video.</param>
- /// <return>An array of dummy chapters.</returns>
+ /// <returns>An array of dummy chapters.</returns>
private ChapterInfo[] CreateDummyChapters(Video video)
{
var runtime = video.RunTimeTicks ?? 0;
diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
index 77c0e9b4e..acddb73d0 100644
--- a/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
+++ b/MediaBrowser.Providers/MediaInfo/SubtitleDownloader.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -25,7 +27,8 @@ namespace MediaBrowser.Providers.MediaInfo
_subtitleManager = subtitleManager;
}
- public async Task<List<string>> DownloadSubtitles(Video video,
+ public async Task<List<string>> DownloadSubtitles(
+ Video video,
List<MediaStream> mediaStreams,
bool skipIfEmbeddedSubtitlesPresent,
bool skipIfAudioTrackMatches,
diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs b/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs
index 2bbe8a968..64a5e7c8e 100644
--- a/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs
+++ b/MediaBrowser.Providers/MediaInfo/SubtitleResolver.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -60,7 +62,6 @@ namespace MediaBrowser.Providers.MediaInfo
}
catch (IOException)
{
-
}
return streams;
@@ -189,9 +190,9 @@ namespace MediaBrowser.Providers.MediaInfo
filename = filename.Replace(" ", string.Empty);
// can't normalize this due to languages such as pt-br
- //filename = filename.Replace("-", string.Empty);
+ // filename = filename.Replace("-", string.Empty);
- //filename = filename.Replace(".", string.Empty);
+ // filename = filename.Replace(".", string.Empty);
return filename;
}
diff --git a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs
index 2615f2dbb..91ab7b4ac 100644
--- a/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs
+++ b/MediaBrowser.Providers/MediaInfo/SubtitleScheduledTask.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -24,7 +26,7 @@ namespace MediaBrowser.Providers.MediaInfo
private readonly IServerConfigurationManager _config;
private readonly ISubtitleManager _subtitleManager;
private readonly IMediaSourceManager _mediaSourceManager;
- private readonly ILogger _logger;
+ private readonly ILogger<SubtitleScheduledTask> _logger;
private readonly IJsonSerializer _json;
private readonly ILocalizationManager _localization;
diff --git a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
index f40570040..e23854d90 100644
--- a/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -17,7 +19,7 @@ namespace MediaBrowser.Providers.MediaInfo
public class VideoImageProvider : IDynamicImageProvider, IHasOrder
{
private readonly IMediaEncoder _mediaEncoder;
- private readonly ILogger _logger;
+ private readonly ILogger<VideoImageProvider> _logger;
private readonly IFileSystem _fileSystem;
public VideoImageProvider(IMediaEncoder mediaEncoder, ILogger<VideoImageProvider> logger, IFileSystem fileSystem)
@@ -93,6 +95,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
videoIndex++;
}
+
if (mediaStream == imageStream)
{
break;
@@ -132,6 +135,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
return false;
}
+
if (!item.IsFileProtocol)
{
return false;
diff --git a/MediaBrowser.Providers/Movies/MovieExternalIds.cs b/MediaBrowser.Providers/Movies/MovieExternalIds.cs
index b43ae63ab..14080841c 100644
--- a/MediaBrowser.Providers/Movies/MovieExternalIds.cs
+++ b/MediaBrowser.Providers/Movies/MovieExternalIds.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
@@ -14,7 +16,7 @@ namespace MediaBrowser.Providers.Movies
public string ProviderName => "IMDb";
/// <inheritdoc />
- public string Key => MetadataProviders.Imdb.ToString();
+ public string Key => MetadataProvider.Imdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => null;
@@ -41,7 +43,7 @@ namespace MediaBrowser.Providers.Movies
public string ProviderName => "IMDb";
/// <inheritdoc />
- public string Key => MetadataProviders.Imdb.ToString();
+ public string Key => MetadataProvider.Imdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Person;
diff --git a/MediaBrowser.Providers/Movies/MovieMetadataService.cs b/MediaBrowser.Providers/Movies/MovieMetadataService.cs
index 1e2c325d9..c477fb70f 100644
--- a/MediaBrowser.Providers/Movies/MovieMetadataService.cs
+++ b/MediaBrowser.Providers/Movies/MovieMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
@@ -28,15 +30,17 @@ namespace MediaBrowser.Providers.Movies
{
return false;
}
+
if (!item.ProductionYear.HasValue)
{
return false;
}
+
return base.IsFullLocalMetadata(item);
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Movie> source, MetadataResult<Movie> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Movie> source, MetadataResult<Movie> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/Movies/TrailerMetadataService.cs b/MediaBrowser.Providers/Movies/TrailerMetadataService.cs
index 2e6f762b8..f32d9ec0a 100644
--- a/MediaBrowser.Providers/Movies/TrailerMetadataService.cs
+++ b/MediaBrowser.Providers/Movies/TrailerMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -28,15 +30,17 @@ namespace MediaBrowser.Providers.Movies
{
return false;
}
+
if (!item.ProductionYear.HasValue)
{
return false;
}
+
return base.IsFullLocalMetadata(item);
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Trailer> source, MetadataResult<Trailer> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Trailer> source, MetadataResult<Trailer> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
index ed6c01968..8c9a1f59b 100644
--- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs
+++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -45,7 +47,7 @@ namespace MediaBrowser.Providers.Music
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
{
- if (!item.LockedFields.Contains(MetadataFields.Name))
+ if (!item.LockedFields.Contains(MetadataField.Name))
{
var name = children.Select(i => i.Album).FirstOrDefault(i => !string.IsNullOrEmpty(i));
@@ -108,7 +110,7 @@ namespace MediaBrowser.Providers.Music
protected override void MergeData(
MetadataResult<MusicAlbum> source,
MetadataResult<MusicAlbum> target,
- MetadataFields[] lockedFields,
+ MetadataField[] lockedFields,
bool replaceData,
bool mergeMetadataSettings)
{
diff --git a/MediaBrowser.Providers/Music/ArtistMetadataService.cs b/MediaBrowser.Providers/Music/ArtistMetadataService.cs
index 5a30260a5..e29475dd7 100644
--- a/MediaBrowser.Providers/Music/ArtistMetadataService.cs
+++ b/MediaBrowser.Providers/Music/ArtistMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
@@ -39,7 +41,7 @@ namespace MediaBrowser.Providers.Music
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<MusicArtist> source, MetadataResult<MusicArtist> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<MusicArtist> source, MetadataResult<MusicArtist> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Music/AudioMetadataService.cs b/MediaBrowser.Providers/Music/AudioMetadataService.cs
index e726fa1e2..8b9fc8a08 100644
--- a/MediaBrowser.Providers/Music/AudioMetadataService.cs
+++ b/MediaBrowser.Providers/Music/AudioMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Music
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Audio> source, MetadataResult<Audio> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Audio> source, MetadataResult<Audio> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/Music/Extensions.cs b/MediaBrowser.Providers/Music/Extensions.cs
index ea1efe266..b57d35256 100644
--- a/MediaBrowser.Providers/Music/Extensions.cs
+++ b/MediaBrowser.Providers/Music/Extensions.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Linq;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
@@ -21,11 +23,11 @@ namespace MediaBrowser.Providers.Music
public static string GetReleaseGroupId(this AlbumInfo info)
{
- var id = info.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup);
+ var id = info.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup);
if (string.IsNullOrEmpty(id))
{
- return info.SongInfos.Select(i => i.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup))
+ return info.SongInfos.Select(i => i.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup))
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
@@ -34,11 +36,11 @@ namespace MediaBrowser.Providers.Music
public static string GetReleaseId(this AlbumInfo info)
{
- var id = info.GetProviderId(MetadataProviders.MusicBrainzAlbum);
+ var id = info.GetProviderId(MetadataProvider.MusicBrainzAlbum);
if (string.IsNullOrEmpty(id))
{
- return info.SongInfos.Select(i => i.GetProviderId(MetadataProviders.MusicBrainzAlbum))
+ return info.SongInfos.Select(i => i.GetProviderId(MetadataProvider.MusicBrainzAlbum))
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
@@ -47,16 +49,16 @@ namespace MediaBrowser.Providers.Music
public static string GetMusicBrainzArtistId(this AlbumInfo info)
{
- info.ProviderIds.TryGetValue(MetadataProviders.MusicBrainzAlbumArtist.ToString(), out string id);
+ info.ProviderIds.TryGetValue(MetadataProvider.MusicBrainzAlbumArtist.ToString(), out string id);
if (string.IsNullOrEmpty(id))
{
- info.ArtistProviderIds.TryGetValue(MetadataProviders.MusicBrainzArtist.ToString(), out id);
+ info.ArtistProviderIds.TryGetValue(MetadataProvider.MusicBrainzArtist.ToString(), out id);
}
if (string.IsNullOrEmpty(id))
{
- return info.SongInfos.Select(i => i.GetProviderId(MetadataProviders.MusicBrainzAlbumArtist))
+ return info.SongInfos.Select(i => i.GetProviderId(MetadataProvider.MusicBrainzAlbumArtist))
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
@@ -65,11 +67,11 @@ namespace MediaBrowser.Providers.Music
public static string GetMusicBrainzArtistId(this ArtistInfo info)
{
- info.ProviderIds.TryGetValue(MetadataProviders.MusicBrainzArtist.ToString(), out var id);
+ info.ProviderIds.TryGetValue(MetadataProvider.MusicBrainzArtist.ToString(), out var id);
if (string.IsNullOrEmpty(id))
{
- return info.SongInfos.Select(i => i.GetProviderId(MetadataProviders.MusicBrainzAlbumArtist))
+ return info.SongInfos.Select(i => i.GetProviderId(MetadataProvider.MusicBrainzAlbumArtist))
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
diff --git a/MediaBrowser.Providers/Music/MusicExternalIds.cs b/MediaBrowser.Providers/Music/MusicExternalIds.cs
index 42694fdee..a1726b996 100644
--- a/MediaBrowser.Providers/Music/MusicExternalIds.cs
+++ b/MediaBrowser.Providers/Music/MusicExternalIds.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
diff --git a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs
index d653e1063..1d611a746 100644
--- a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs
+++ b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -25,7 +27,7 @@ namespace MediaBrowser.Providers.Music
protected override void MergeData(
MetadataResult<MusicVideo> source,
MetadataResult<MusicVideo> target,
- MetadataFields[] lockedFields,
+ MetadataField[] lockedFields,
bool replaceData,
bool mergeMetadataSettings)
{
diff --git a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs
index bb47de40b..7dda7e9bf 100644
--- a/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs
+++ b/MediaBrowser.Providers/MusicGenres/MusicGenreMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.MusicGenres
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<MusicGenre> source, MetadataResult<MusicGenre> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<MusicGenre> source, MetadataResult<MusicGenre> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/People/PersonMetadataService.cs b/MediaBrowser.Providers/People/PersonMetadataService.cs
index 804f3f3e3..fe6d1d4d3 100644
--- a/MediaBrowser.Providers/People/PersonMetadataService.cs
+++ b/MediaBrowser.Providers/People/PersonMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.People
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Person> source, MetadataResult<Person> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Person> source, MetadataResult<Person> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs
index af8f7a262..60ed96452 100644
--- a/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs
+++ b/MediaBrowser.Providers/Photos/PhotoAlbumMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Photos
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<PhotoAlbum> source, MetadataResult<PhotoAlbum> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<PhotoAlbum> source, MetadataResult<PhotoAlbum> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs
index 579b5a4d0..cbbb433c0 100644
--- a/MediaBrowser.Providers/Photos/PhotoMetadataService.cs
+++ b/MediaBrowser.Providers/Photos/PhotoMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Photos
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Photo> source, MetadataResult<Photo> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Photo> source, MetadataResult<Photo> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Playlists/PlaylistItemsProvider.cs b/MediaBrowser.Providers/Playlists/PlaylistItemsProvider.cs
index ae837c591..5cc0a527e 100644
--- a/MediaBrowser.Providers/Playlists/PlaylistItemsProvider.cs
+++ b/MediaBrowser.Providers/Playlists/PlaylistItemsProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -20,7 +22,7 @@ namespace MediaBrowser.Providers.Playlists
IPreRefreshProvider,
IHasItemChangeMonitor
{
- private ILogger _logger;
+ private readonly ILogger<PlaylistItemsProvider> _logger;
private IFileSystem _fileSystem;
public PlaylistItemsProvider(IFileSystem fileSystem, ILogger<PlaylistItemsProvider> logger)
@@ -61,18 +63,22 @@ namespace MediaBrowser.Providers.Playlists
{
return GetWplItems(stream);
}
+
if (string.Equals(".zpl", extension, StringComparison.OrdinalIgnoreCase))
{
return GetZplItems(stream);
}
+
if (string.Equals(".m3u", extension, StringComparison.OrdinalIgnoreCase))
{
return GetM3uItems(stream);
}
+
if (string.Equals(".m3u8", extension, StringComparison.OrdinalIgnoreCase))
{
return GetM3u8Items(stream);
}
+
if (string.Equals(".pls", extension, StringComparison.OrdinalIgnoreCase))
{
return GetPlsItems(stream);
@@ -95,7 +101,7 @@ namespace MediaBrowser.Providers.Playlists
private IEnumerable<LinkedChild> GetM3u8Items(Stream stream)
{
- var content = new M3u8Content();
+ var content = new M3uContent();
var playlist = content.GetFromStream(stream);
return playlist.PlaylistEntries.Select(i => new LinkedChild
diff --git a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
index a41362ea3..5262919d5 100644
--- a/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
+++ b/MediaBrowser.Providers/Playlists/PlaylistMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
@@ -37,7 +39,7 @@ namespace MediaBrowser.Providers.Playlists
=> item.GetLinkedChildren();
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Playlist> source, MetadataResult<Playlist> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Playlist> source, MetadataResult<Playlist> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/AlbumImageProvider.cs b/MediaBrowser.Providers/Plugins/AudioDb/AlbumImageProvider.cs
index dee2d59f0..b211ed8b7 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/AlbumImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/AlbumImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -45,7 +47,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
/// <inheritdoc />
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
- var id = item.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup);
+ var id = item.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup);
if (!string.IsNullOrWhiteSpace(id))
{
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/AlbumProvider.cs b/MediaBrowser.Providers/Plugins/AudioDb/AlbumProvider.cs
index 1a0e87871..7e54fcbdd 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/AlbumProvider.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/AlbumProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -104,11 +106,11 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
item.Genres = new[] { result.strGenre };
}
- item.SetProviderId(MetadataProviders.AudioDbArtist, result.idArtist);
- item.SetProviderId(MetadataProviders.AudioDbAlbum, result.idAlbum);
+ item.SetProviderId(MetadataProvider.AudioDbArtist, result.idArtist);
+ item.SetProviderId(MetadataProvider.AudioDbAlbum, result.idAlbum);
- item.SetProviderId(MetadataProviders.MusicBrainzAlbumArtist, result.strMusicBrainzArtistID);
- item.SetProviderId(MetadataProviders.MusicBrainzReleaseGroup, result.strMusicBrainzID);
+ item.SetProviderId(MetadataProvider.MusicBrainzAlbumArtist, result.strMusicBrainzArtistID);
+ item.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, result.strMusicBrainzID);
string overview = null;
@@ -210,42 +212,79 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public class Album
{
public string idAlbum { get; set; }
+
public string idArtist { get; set; }
+
public string strAlbum { get; set; }
+
public string strArtist { get; set; }
+
public string intYearReleased { get; set; }
+
public string strGenre { get; set; }
+
public string strSubGenre { get; set; }
+
public string strReleaseFormat { get; set; }
+
public string intSales { get; set; }
+
public string strAlbumThumb { get; set; }
+
public string strAlbumCDart { get; set; }
+
public string strDescriptionEN { get; set; }
+
public string strDescriptionDE { get; set; }
+
public string strDescriptionFR { get; set; }
+
public string strDescriptionCN { get; set; }
+
public string strDescriptionIT { get; set; }
+
public string strDescriptionJP { get; set; }
+
public string strDescriptionRU { get; set; }
+
public string strDescriptionES { get; set; }
+
public string strDescriptionPT { get; set; }
+
public string strDescriptionSE { get; set; }
+
public string strDescriptionNL { get; set; }
+
public string strDescriptionHU { get; set; }
+
public string strDescriptionNO { get; set; }
+
public string strDescriptionIL { get; set; }
+
public string strDescriptionPL { get; set; }
+
public object intLoved { get; set; }
+
public object intScore { get; set; }
+
public string strReview { get; set; }
+
public object strMood { get; set; }
+
public object strTheme { get; set; }
+
public object strSpeed { get; set; }
+
public object strLocation { get; set; }
+
public string strMusicBrainzID { get; set; }
+
public string strMusicBrainzArtistID { get; set; }
+
public object strItunesID { get; set; }
+
public object strAmazonID { get; set; }
+
public string strLocked { get; set; }
}
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/ArtistImageProvider.cs b/MediaBrowser.Providers/Plugins/AudioDb/ArtistImageProvider.cs
index 18afd5dd5..243b62f7b 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/ArtistImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/ArtistImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -47,7 +49,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
/// <inheritdoc />
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
- var id = item.GetProviderId(MetadataProviders.MusicBrainzArtist);
+ var id = item.GetProviderId(MetadataProvider.MusicBrainzArtist);
if (!string.IsNullOrWhiteSpace(id))
{
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/ArtistProvider.cs b/MediaBrowser.Providers/Plugins/AudioDb/ArtistProvider.cs
index df0f3df8f..892f73422 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/ArtistProvider.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/ArtistProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -85,15 +87,15 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
private void ProcessResult(MusicArtist item, Artist result, string preferredLanguage)
{
- //item.HomePageUrl = result.strWebsite;
+ // item.HomePageUrl = result.strWebsite;
if (!string.IsNullOrEmpty(result.strGenre))
{
item.Genres = new[] { result.strGenre };
}
- item.SetProviderId(MetadataProviders.AudioDbArtist, result.idArtist);
- item.SetProviderId(MetadataProviders.MusicBrainzArtist, result.strMusicBrainzID);
+ item.SetProviderId(MetadataProvider.AudioDbArtist, result.idArtist);
+ item.SetProviderId(MetadataProvider.MusicBrainzArtist, result.strMusicBrainzID);
string overview = null;
@@ -199,45 +201,85 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public class Artist
{
public string idArtist { get; set; }
+
public string strArtist { get; set; }
+
public string strArtistAlternate { get; set; }
+
public object idLabel { get; set; }
+
public string intFormedYear { get; set; }
+
public string intBornYear { get; set; }
+
public object intDiedYear { get; set; }
+
public object strDisbanded { get; set; }
+
public string strGenre { get; set; }
+
public string strSubGenre { get; set; }
+
public string strWebsite { get; set; }
+
public string strFacebook { get; set; }
+
public string strTwitter { get; set; }
+
public string strBiographyEN { get; set; }
+
public string strBiographyDE { get; set; }
+
public string strBiographyFR { get; set; }
+
public string strBiographyCN { get; set; }
+
public string strBiographyIT { get; set; }
+
public string strBiographyJP { get; set; }
+
public string strBiographyRU { get; set; }
+
public string strBiographyES { get; set; }
+
public string strBiographyPT { get; set; }
+
public string strBiographySE { get; set; }
+
public string strBiographyNL { get; set; }
+
public string strBiographyHU { get; set; }
+
public string strBiographyNO { get; set; }
+
public string strBiographyIL { get; set; }
+
public string strBiographyPL { get; set; }
+
public string strGender { get; set; }
+
public string intMembers { get; set; }
+
public string strCountry { get; set; }
+
public string strCountryCode { get; set; }
+
public string strArtistThumb { get; set; }
+
public string strArtistLogo { get; set; }
+
public string strArtistFanart { get; set; }
+
public string strArtistFanart2 { get; set; }
+
public string strArtistFanart3 { get; set; }
+
public string strArtistBanner { get; set; }
+
public string strMusicBrainzID { get; set; }
+
public object strLastFMChart { get; set; }
+
public string strLocked { get; set; }
}
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/AudioDb/Configuration/PluginConfiguration.cs
index ad3c7eb4b..9657a290f 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/Configuration/PluginConfiguration.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/Configuration/PluginConfiguration.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Model.Plugins;
+#pragma warning disable CS1591
+
+using MediaBrowser.Model.Plugins;
namespace MediaBrowser.Providers.Plugins.AudioDb
{
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/Configuration/config.html b/MediaBrowser.Providers/Plugins/AudioDb/Configuration/config.html
index 34494644d..fbf413f2b 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/Configuration/config.html
+++ b/MediaBrowser.Providers/Plugins/AudioDb/Configuration/config.html
@@ -31,8 +31,8 @@
$('.configPage').on('pageshow', function () {
Dashboard.showLoadingMsg();
ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
- $('#enable').checked(config.Enable);
- $('#replaceAlbumName').checked(config.ReplaceAlbumName);
+ $('#enable').checked = config.Enable;
+ $('#replaceAlbumName').checked = config.ReplaceAlbumName;
Dashboard.hideLoadingMsg();
});
@@ -43,8 +43,8 @@
var form = this;
ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
- config.Enable = $('#enable', form).checked();
- config.ReplaceAlbumName = $('#replaceAlbumName', form).checked();
+ config.Enable = $('#enable', form).checked;
+ config.ReplaceAlbumName = $('#replaceAlbumName', form).checked;
ApiClient.updatePluginConfiguration(PluginConfig.pluginId, config).then(Dashboard.processPluginConfigurationUpdateResult);
});
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs b/MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs
index 1dd5b21a9..1cc1f0fa1 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
@@ -11,7 +13,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public string ProviderName => "TheAudioDb";
/// <inheritdoc />
- public string Key => MetadataProviders.AudioDbAlbum.ToString();
+ public string Key => MetadataProvider.AudioDbAlbum.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => null;
@@ -29,7 +31,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public string ProviderName => "TheAudioDb";
/// <inheritdoc />
- public string Key => MetadataProviders.AudioDbAlbum.ToString();
+ public string Key => MetadataProvider.AudioDbAlbum.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Album;
@@ -47,7 +49,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public string ProviderName => "TheAudioDb";
/// <inheritdoc />
- public string Key => MetadataProviders.AudioDbArtist.ToString();
+ public string Key => MetadataProvider.AudioDbArtist.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Artist;
@@ -65,7 +67,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
public string ProviderName => "TheAudioDb";
/// <inheritdoc />
- public string Key => MetadataProviders.AudioDbArtist.ToString();
+ public string Key => MetadataProvider.AudioDbArtist.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.OtherArtist;
diff --git a/MediaBrowser.Providers/Plugins/AudioDb/Plugin.cs b/MediaBrowser.Providers/Plugins/AudioDb/Plugin.cs
index 8532c4df3..cb7c0362e 100644
--- a/MediaBrowser.Providers/Plugins/AudioDb/Plugin.cs
+++ b/MediaBrowser.Providers/Plugins/AudioDb/Plugin.cs
@@ -1,4 +1,6 @@
-using System;
+#pragma warning disable CS1591
+
+using System;
using System.Collections.Generic;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Plugins;
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/AlbumProvider.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/AlbumProvider.cs
index 31cdaf616..9f36a03f9 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/AlbumProvider.cs
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/AlbumProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -42,7 +44,7 @@ namespace MediaBrowser.Providers.Music
private readonly IHttpClient _httpClient;
private readonly IApplicationHost _appHost;
- private readonly ILogger _logger;
+ private readonly ILogger<MusicBrainzAlbumProvider> _logger;
private readonly string _musicBrainzBaseUrl;
@@ -163,17 +165,17 @@ namespace MediaBrowser.Providers.Music
Name = i.Artists[0].Item1
};
- result.AlbumArtist.SetProviderId(MetadataProviders.MusicBrainzArtist, i.Artists[0].Item2);
+ result.AlbumArtist.SetProviderId(MetadataProvider.MusicBrainzArtist, i.Artists[0].Item2);
}
if (!string.IsNullOrWhiteSpace(i.ReleaseId))
{
- result.SetProviderId(MetadataProviders.MusicBrainzAlbum, i.ReleaseId);
+ result.SetProviderId(MetadataProvider.MusicBrainzAlbum, i.ReleaseId);
}
if (!string.IsNullOrWhiteSpace(i.ReleaseGroupId))
{
- result.SetProviderId(MetadataProviders.MusicBrainzReleaseGroup, i.ReleaseGroupId);
+ result.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, i.ReleaseGroupId);
}
return result;
@@ -247,12 +249,12 @@ namespace MediaBrowser.Providers.Music
{
if (!string.IsNullOrEmpty(releaseId))
{
- result.Item.SetProviderId(MetadataProviders.MusicBrainzAlbum, releaseId);
+ result.Item.SetProviderId(MetadataProvider.MusicBrainzAlbum, releaseId);
}
if (!string.IsNullOrEmpty(releaseGroupId))
{
- result.Item.SetProviderId(MetadataProviders.MusicBrainzReleaseGroup, releaseGroupId);
+ result.Item.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, releaseGroupId);
}
}
@@ -361,6 +363,7 @@ namespace MediaBrowser.Providers.Music
return ParseReleaseList(subReader).ToList();
}
}
+
default:
{
reader.Skip();
@@ -396,6 +399,7 @@ namespace MediaBrowser.Providers.Music
reader.Read();
continue;
}
+
var releaseId = reader.GetAttribute("id");
using (var subReader = reader.ReadSubtree())
@@ -406,8 +410,10 @@ namespace MediaBrowser.Providers.Music
yield return release;
}
}
+
break;
}
+
default:
{
reader.Skip();
@@ -453,6 +459,7 @@ namespace MediaBrowser.Providers.Music
{
result.Year = date.Year;
}
+
break;
}
case "annotation":
@@ -480,6 +487,7 @@ namespace MediaBrowser.Providers.Music
break;
}
+
default:
{
reader.Skip();
@@ -518,6 +526,7 @@ namespace MediaBrowser.Providers.Music
return ParseArtistNameCredit(subReader);
}
}
+
default:
{
reader.Skip();
@@ -556,6 +565,7 @@ namespace MediaBrowser.Providers.Music
return ParseArtistArtistCredit(subReader, id);
}
}
+
default:
{
reader.Skip();
@@ -593,6 +603,7 @@ namespace MediaBrowser.Providers.Music
name = reader.ReadElementContentAsString();
break;
}
+
default:
{
reader.Skip();
@@ -680,11 +691,13 @@ namespace MediaBrowser.Providers.Music
reader.Read();
continue;
}
+
using (var subReader = reader.ReadSubtree())
{
return GetFirstReleaseGroupId(subReader);
}
}
+
default:
{
reader.Skip();
@@ -719,6 +732,7 @@ namespace MediaBrowser.Providers.Music
{
return reader.GetAttribute("id");
}
+
default:
{
reader.Skip();
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/ArtistProvider.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/ArtistProvider.cs
index 260a3b6e7..955766403 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/ArtistProvider.cs
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/ArtistProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -108,11 +110,13 @@ namespace MediaBrowser.Providers.Music
reader.Read();
continue;
}
+
using (var subReader = reader.ReadSubtree())
{
return ParseArtistList(subReader).ToList();
}
}
+
default:
{
reader.Skip();
@@ -150,6 +154,7 @@ namespace MediaBrowser.Providers.Music
reader.Read();
continue;
}
+
var mbzId = reader.GetAttribute("id");
using (var subReader = reader.ReadSubtree())
@@ -160,8 +165,10 @@ namespace MediaBrowser.Providers.Music
yield return artist;
}
}
+
break;
}
+
default:
{
reader.Skip();
@@ -202,6 +209,7 @@ namespace MediaBrowser.Providers.Music
result.Overview = reader.ReadElementContentAsString();
break;
}
+
default:
{
// there is sort-name if ever needed
@@ -216,7 +224,7 @@ namespace MediaBrowser.Providers.Music
}
}
- result.SetProviderId(MetadataProviders.MusicBrainzArtist, artistId);
+ result.SetProviderId(MetadataProvider.MusicBrainzArtist, artistId);
if (string.IsNullOrWhiteSpace(artistId) || string.IsNullOrWhiteSpace(result.Name))
{
@@ -249,7 +257,7 @@ namespace MediaBrowser.Providers.Music
if (singleResult != null)
{
- musicBrainzId = singleResult.GetProviderId(MetadataProviders.MusicBrainzArtist);
+ musicBrainzId = singleResult.GetProviderId(MetadataProvider.MusicBrainzArtist);
result.Item.Overview = singleResult.Overview;
if (Plugin.Instance.Configuration.ReplaceArtistName)
@@ -262,7 +270,7 @@ namespace MediaBrowser.Providers.Music
if (!string.IsNullOrWhiteSpace(musicBrainzId))
{
result.HasMetadata = true;
- result.Item.SetProviderId(MetadataProviders.MusicBrainzArtist, musicBrainzId);
+ result.Item.SetProviderId(MetadataProvider.MusicBrainzArtist, musicBrainzId);
}
return result;
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs
index 5843b0c7d..980da9a01 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/PluginConfiguration.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Model.Plugins;
+#pragma warning disable CS1591
+
+using MediaBrowser.Model.Plugins;
namespace MediaBrowser.Providers.Plugins.MusicBrainz
{
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html
index 1f02461da..90196b046 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/Configuration/config.html
@@ -41,8 +41,8 @@
ApiClient.getPluginConfiguration(MusicBrainzPluginConfig.uniquePluginId).then(function (config) {
$('#server').val(config.Server).change();
$('#rateLimit').val(config.RateLimit).change();
- $('#enable').checked(config.Enable);
- $('#replaceArtistName').checked(config.ReplaceArtistName);
+ $('#enable').checked = config.Enable;
+ $('#replaceArtistName').checked = config.ReplaceArtistName;
Dashboard.hideLoadingMsg();
});
@@ -55,8 +55,8 @@
ApiClient.getPluginConfiguration(MusicBrainzPluginConfig.uniquePluginId).then(function (config) {
config.Server = $('#server', form).val();
config.RateLimit = $('#rateLimit', form).val();
- config.Enable = $('#enable', form).checked();
- config.ReplaceArtistName = $('#replaceArtistName', form).checked();
+ config.Enable = $('#enable', form).checked;
+ config.ReplaceArtistName = $('#replaceArtistName', form).checked;
ApiClient.updatePluginConfiguration(MusicBrainzPluginConfig.uniquePluginId, config).then(Dashboard.processPluginConfigurationUpdateResult);
});
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs
index 969bdd01d..5600c389c 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
@@ -12,7 +14,7 @@ namespace MediaBrowser.Providers.Music
public string ProviderName => "MusicBrainz";
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzReleaseGroup.ToString();
+ public string Key => MetadataProvider.MusicBrainzReleaseGroup.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.ReleaseGroup;
@@ -30,7 +32,7 @@ namespace MediaBrowser.Providers.Music
public string ProviderName => "MusicBrainz";
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzAlbumArtist.ToString();
+ public string Key => MetadataProvider.MusicBrainzAlbumArtist.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.AlbumArtist;
@@ -48,7 +50,7 @@ namespace MediaBrowser.Providers.Music
public string ProviderName => "MusicBrainz";
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzAlbum.ToString();
+ public string Key => MetadataProvider.MusicBrainzAlbum.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Album;
@@ -66,7 +68,7 @@ namespace MediaBrowser.Providers.Music
public string ProviderName => "MusicBrainz";
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzArtist.ToString();
+ public string Key => MetadataProvider.MusicBrainzArtist.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Artist;
@@ -85,7 +87,7 @@ namespace MediaBrowser.Providers.Music
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzArtist.ToString();
+ public string Key => MetadataProvider.MusicBrainzArtist.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.OtherArtist;
@@ -103,7 +105,7 @@ namespace MediaBrowser.Providers.Music
public string ProviderName => "MusicBrainz";
/// <inheritdoc />
- public string Key => MetadataProviders.MusicBrainzTrack.ToString();
+ public string Key => MetadataProvider.MusicBrainzTrack.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Track;
diff --git a/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs b/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs
index 8e1b3ea37..a7e6267da 100644
--- a/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs
+++ b/MediaBrowser.Providers/Plugins/MusicBrainz/Plugin.cs
@@ -1,4 +1,6 @@
-using System;
+#pragma warning disable CS1591
+
+using System;
using System.Collections.Generic;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Plugins;
diff --git a/MediaBrowser.Providers/Plugins/Omdb/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/Omdb/Configuration/PluginConfiguration.cs
new file mode 100644
index 000000000..196f14e7c
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/Omdb/Configuration/PluginConfiguration.cs
@@ -0,0 +1,11 @@
+#pragma warning disable CS1591
+
+using MediaBrowser.Model.Plugins;
+
+namespace MediaBrowser.Providers.Plugins.Omdb
+{
+ public class PluginConfiguration : BasePluginConfiguration
+ {
+ public bool CastAndCrew { get; set; }
+ }
+}
diff --git a/MediaBrowser.Providers/Plugins/Omdb/Configuration/config.html b/MediaBrowser.Providers/Plugins/Omdb/Configuration/config.html
new file mode 100644
index 000000000..8b117ec8d
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/Omdb/Configuration/config.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>OMDb</title>
+</head>
+<body>
+ <div data-role="page" class="page type-interior pluginConfigurationPage configPage" data-require="emby-input,emby-button,emby-checkbox">
+ <div data-role="content">
+ <div class="content-primary">
+ <form class="configForm">
+ <label class="checkboxContainer">
+ <input is="emby-checkbox" type="checkbox" id="castAndCrew" />
+ <span>Collect information about the cast and other crew members from OMDb.</span>
+ </label>
+ <br />
+ <div>
+ <button is="emby-button" type="submit" class="raised button-submit block"><span>Save</span></button>
+ </div>
+ </form>
+ </div>
+ </div>
+ <script type="text/javascript">
+ var PluginConfig = {
+ pluginId: "a628c0da-fac5-4c7e-9d1a-7134223f14c8"
+ };
+
+ $('.configPage').on('pageshow', function () {
+ Dashboard.showLoadingMsg();
+ ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
+ $('#castAndCrew').checked = config.CastAndCrew;
+ Dashboard.hideLoadingMsg();
+ });
+ });
+
+ $('.configForm').on('submit', function (e) {
+ Dashboard.showLoadingMsg();
+
+ var form = this;
+ ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) {
+ config.CastAndCrew = $('#castAndCrew', form).checked;
+ ApiClient.updatePluginConfiguration(PluginConfig.pluginId, config).then(Dashboard.processPluginConfigurationUpdateResult);
+ });
+
+ return false;
+ });
+ </script>
+ </div>
+</body>
+</html>
diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs
index f0328e8d8..50d6b78ae 100644
--- a/MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbEpisodeProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -63,12 +65,12 @@ namespace MediaBrowser.Providers.Plugins.Omdb
return result;
}
- if (info.SeriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out string seriesImdbId) && !string.IsNullOrEmpty(seriesImdbId))
+ if (info.SeriesProviderIds.TryGetValue(MetadataProvider.Imdb.ToString(), out string seriesImdbId) && !string.IsNullOrEmpty(seriesImdbId))
{
if (info.IndexNumber.HasValue && info.ParentIndexNumber.HasValue)
{
result.HasMetadata = await new OmdbProvider(_jsonSerializer, _httpClient, _fileSystem, _appHost, _configurationManager)
- .FetchEpisodeData(result, info.IndexNumber.Value, info.ParentIndexNumber.Value, info.GetProviderId(MetadataProviders.Imdb), seriesImdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
+ .FetchEpisodeData(result, info.IndexNumber.Value, info.ParentIndexNumber.Value, info.GetProviderId(MetadataProvider.Imdb), seriesImdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
}
}
diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs
index a450c2a6d..2d09a66c3 100644
--- a/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -42,7 +44,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
- var imdbId = item.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = item.GetProviderId(MetadataProvider.Imdb);
var list = new List<RemoteImageInfo>();
@@ -92,6 +94,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
return item is Movie || item is Trailer || item is Episode;
}
+
// After other internet providers, because they're better
// But before fallback providers like screengrab
public int Order => 90;
diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs
index 64a75955a..944ba26af 100644
--- a/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -68,12 +70,12 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
var episodeSearchInfo = searchInfo as EpisodeInfo;
- var imdbId = searchInfo.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = searchInfo.GetProviderId(MetadataProvider.Imdb);
var urlQuery = "plot=full&r=json";
if (type == "episode" && episodeSearchInfo != null)
{
- episodeSearchInfo.SeriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out imdbId);
+ episodeSearchInfo.SeriesProviderIds.TryGetValue(MetadataProvider.Imdb.ToString(), out imdbId);
}
var name = searchInfo.Name;
@@ -103,6 +105,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
urlQuery += "&t=" + WebUtility.UrlEncode(name);
}
+
urlQuery += "&type=" + type;
}
else
@@ -117,6 +120,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
urlQuery += string.Format(CultureInfo.InvariantCulture, "&Episode={0}", searchInfo.IndexNumber);
}
+
if (searchInfo.ParentIndexNumber.HasValue)
{
urlQuery += string.Format(CultureInfo.InvariantCulture, "&Season={0}", searchInfo.ParentIndexNumber);
@@ -163,7 +167,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.IndexNumberEnd = episodeSearchInfo.IndexNumberEnd.Value;
}
- item.SetProviderId(MetadataProviders.Imdb, result.imdbID);
+ item.SetProviderId(MetadataProvider.Imdb, result.imdbID);
if (result.Year.Length > 0
&& int.TryParse(result.Year.Substring(0, Math.Min(result.Year.Length, 4)), NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsedYear))
@@ -208,7 +212,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
QueriedById = true
};
- var imdbId = info.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = info.GetProviderId(MetadataProvider.Imdb);
if (string.IsNullOrWhiteSpace(imdbId))
{
imdbId = await GetSeriesImdbId(info, cancellationToken).ConfigureAwait(false);
@@ -217,7 +221,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
if (!string.IsNullOrEmpty(imdbId))
{
- result.Item.SetProviderId(MetadataProviders.Imdb, imdbId);
+ result.Item.SetProviderId(MetadataProvider.Imdb, imdbId);
result.HasMetadata = true;
await new OmdbProvider(_jsonSerializer, _httpClient, _fileSystem, _appHost, _configurationManager).Fetch(result, imdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
@@ -240,7 +244,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
QueriedById = true
};
- var imdbId = info.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = info.GetProviderId(MetadataProvider.Imdb);
if (string.IsNullOrWhiteSpace(imdbId))
{
imdbId = await GetMovieImdbId(info, cancellationToken).ConfigureAwait(false);
@@ -249,7 +253,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
if (!string.IsNullOrEmpty(imdbId))
{
- result.Item.SetProviderId(MetadataProviders.Imdb, imdbId);
+ result.Item.SetProviderId(MetadataProvider.Imdb, imdbId);
result.HasMetadata = true;
await new OmdbProvider(_jsonSerializer, _httpClient, _fileSystem, _appHost, _configurationManager).Fetch(result, imdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
@@ -262,14 +266,14 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
var results = await GetSearchResultsInternal(info, "movie", false, cancellationToken).ConfigureAwait(false);
var first = results.FirstOrDefault();
- return first == null ? null : first.GetProviderId(MetadataProviders.Imdb);
+ return first == null ? null : first.GetProviderId(MetadataProvider.Imdb);
}
private async Task<string> GetSeriesImdbId(SeriesInfo info, CancellationToken cancellationToken)
{
var results = await GetSearchResultsInternal(info, "series", false, cancellationToken).ConfigureAwait(false);
var first = results.FirstOrDefault();
- return first == null ? null : first.GetProviderId(MetadataProviders.Imdb);
+ return first == null ? null : first.GetProviderId(MetadataProvider.Imdb);
}
public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
@@ -284,27 +288,49 @@ namespace MediaBrowser.Providers.Plugins.Omdb
class SearchResult
{
public string Title { get; set; }
+
public string Year { get; set; }
+
public string Rated { get; set; }
+
public string Released { get; set; }
+
public string Season { get; set; }
+
public string Episode { get; set; }
+
public string Runtime { get; set; }
+
public string Genre { get; set; }
+
public string Director { get; set; }
+
public string Writer { get; set; }
+
public string Actors { get; set; }
+
public string Plot { get; set; }
+
public string Language { get; set; }
+
public string Country { get; set; }
+
public string Awards { get; set; }
+
public string Poster { get; set; }
+
public string Metascore { get; set; }
+
public string imdbRating { get; set; }
+
public string imdbVotes { get; set; }
+
public string imdbID { get; set; }
+
public string seriesID { get; set; }
+
public string Type { get; set; }
+
public string Response { get; set; }
}
diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
index fbdd293ed..9700f3b18 100644
--- a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -77,7 +79,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
&& int.TryParse(result.imdbVotes, NumberStyles.Number, _usCulture, out var voteCount)
&& voteCount >= 0)
{
- //item.VoteCount = voteCount;
+ // item.VoteCount = voteCount;
}
if (!string.IsNullOrEmpty(result.imdbRating)
@@ -87,14 +89,14 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.CommunityRating = imdbRating;
}
- //if (!string.IsNullOrEmpty(result.Website))
- //{
- // item.HomePageUrl = result.Website;
- //}
+ if (!string.IsNullOrEmpty(result.Website))
+ {
+ item.HomePageUrl = result.Website;
+ }
if (!string.IsNullOrWhiteSpace(result.imdbID))
{
- item.SetProviderId(MetadataProviders.Imdb, result.imdbID);
+ item.SetProviderId(MetadataProvider.Imdb, result.imdbID);
}
ParseAdditionalMetadata(itemResult, result);
@@ -121,7 +123,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
if (!string.IsNullOrWhiteSpace(episodeImdbId))
{
- foreach (var episode in (seasonResult.Episodes ?? new RootObject[] { }))
+ foreach (var episode in seasonResult.Episodes)
{
if (string.Equals(episodeImdbId, episode.imdbID, StringComparison.OrdinalIgnoreCase))
{
@@ -134,7 +136,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
// finally, search by numbers
if (result == null)
{
- foreach (var episode in (seasonResult.Episodes ?? new RootObject[] { }))
+ foreach (var episode in seasonResult.Episodes)
{
if (episode.Episode == episodeNumber)
{
@@ -178,7 +180,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
&& int.TryParse(result.imdbVotes, NumberStyles.Number, _usCulture, out var voteCount)
&& voteCount >= 0)
{
- //item.VoteCount = voteCount;
+ // item.VoteCount = voteCount;
}
if (!string.IsNullOrEmpty(result.imdbRating)
@@ -188,14 +190,14 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.CommunityRating = imdbRating;
}
- //if (!string.IsNullOrEmpty(result.Website))
- //{
- // item.HomePageUrl = result.Website;
- //}
+ if (!string.IsNullOrEmpty(result.Website))
+ {
+ item.HomePageUrl = result.Website;
+ }
if (!string.IsNullOrWhiteSpace(result.imdbID))
{
- item.SetProviderId(MetadataProviders.Imdb, result.imdbID);
+ item.SetProviderId(MetadataProvider.Imdb, result.imdbID);
}
ParseAdditionalMetadata(itemResult, result);
@@ -243,7 +245,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
internal static bool IsValidSeries(Dictionary<string, string> seriesProviderIds)
{
- if (seriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out string id) && !string.IsNullOrEmpty(id))
+ if (seriesProviderIds.TryGetValue(MetadataProvider.Imdb.ToString(), out string id) && !string.IsNullOrEmpty(id))
{
// This check should ideally never be necessary but we're seeing some cases of this and haven't tracked them down yet.
if (!string.IsNullOrWhiteSpace(id))
@@ -263,6 +265,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{
return url;
}
+
return url + "&" + query;
}
@@ -386,7 +389,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
var isConfiguredForEnglish = IsConfiguredForEnglish(item) || _configurationManager.Configuration.EnableNewOmdbSupport;
- // Grab series genres because imdb data is better than tvdb. Leave movies alone
+ // Grab series genres because IMDb data is better than TVDB. Leave movies alone
// But only do it if english is the preferred language because this data will not be localized
if (isConfiguredForEnglish && !string.IsNullOrWhiteSpace(result.Genre))
{
@@ -407,45 +410,50 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.Overview = result.Plot;
}
- //if (!string.IsNullOrWhiteSpace(result.Director))
- //{
- // var person = new PersonInfo
- // {
- // Name = result.Director.Trim(),
- // Type = PersonType.Director
- // };
-
- // itemResult.AddPerson(person);
- //}
-
- //if (!string.IsNullOrWhiteSpace(result.Writer))
- //{
- // var person = new PersonInfo
- // {
- // Name = result.Director.Trim(),
- // Type = PersonType.Writer
- // };
-
- // itemResult.AddPerson(person);
- //}
-
- //if (!string.IsNullOrWhiteSpace(result.Actors))
- //{
- // var actorList = result.Actors.Split(',');
- // foreach (var actor in actorList)
- // {
- // if (!string.IsNullOrWhiteSpace(actor))
- // {
- // var person = new PersonInfo
- // {
- // Name = actor.Trim(),
- // Type = PersonType.Actor
- // };
-
- // itemResult.AddPerson(person);
- // }
- // }
- //}
+ if (!Plugin.Instance.Configuration.CastAndCrew)
+ {
+ return;
+ }
+
+ if (!string.IsNullOrWhiteSpace(result.Director))
+ {
+ var person = new PersonInfo
+ {
+ Name = result.Director.Trim(),
+ Type = PersonType.Director
+ };
+
+ itemResult.AddPerson(person);
+ }
+
+ if (!string.IsNullOrWhiteSpace(result.Writer))
+ {
+ var person = new PersonInfo
+ {
+ Name = result.Director.Trim(),
+ Type = PersonType.Writer
+ };
+
+ itemResult.AddPerson(person);
+ }
+
+ if (!string.IsNullOrWhiteSpace(result.Actors))
+ {
+ var actorList = result.Actors.Split(',');
+ foreach (var actor in actorList)
+ {
+ if (!string.IsNullOrWhiteSpace(actor))
+ {
+ var person = new PersonInfo
+ {
+ Name = actor.Trim(),
+ Type = PersonType.Actor
+ };
+
+ itemResult.AddPerson(person);
+ }
+ }
+ }
}
private bool IsConfiguredForEnglish(BaseItem item)
@@ -459,40 +467,70 @@ namespace MediaBrowser.Providers.Plugins.Omdb
internal class SeasonRootObject
{
public string Title { get; set; }
+
public string seriesID { get; set; }
+
public int Season { get; set; }
+
public int? totalSeasons { get; set; }
+
public RootObject[] Episodes { get; set; }
+
public string Response { get; set; }
}
internal class RootObject
{
public string Title { get; set; }
+
public string Year { get; set; }
+
public string Rated { get; set; }
+
public string Released { get; set; }
+
public string Runtime { get; set; }
+
public string Genre { get; set; }
+
public string Director { get; set; }
+
public string Writer { get; set; }
+
public string Actors { get; set; }
+
public string Plot { get; set; }
+
public string Language { get; set; }
+
public string Country { get; set; }
+
public string Awards { get; set; }
+
public string Poster { get; set; }
+
public List<OmdbRating> Ratings { get; set; }
+
public string Metascore { get; set; }
+
public string imdbRating { get; set; }
+
public string imdbVotes { get; set; }
+
public string imdbID { get; set; }
+
public string Type { get; set; }
+
public string DVD { get; set; }
+
public string BoxOffice { get; set; }
+
public string Production { get; set; }
+
public string Website { get; set; }
+
public string Response { get; set; }
+
public int Episode { get; set; }
public float? GetRottenTomatoScore()
@@ -509,12 +547,15 @@ namespace MediaBrowser.Providers.Plugins.Omdb
}
}
}
+
return null;
}
}
+
public class OmdbRating
{
public string Source { get; set; }
+
public string Value { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Plugins/Omdb/Plugin.cs b/MediaBrowser.Providers/Plugins/Omdb/Plugin.cs
new file mode 100644
index 000000000..4cf5f4ce6
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/Omdb/Plugin.cs
@@ -0,0 +1,37 @@
+#pragma warning disable CS1591
+
+using System;
+using System.Collections.Generic;
+using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Plugins;
+using MediaBrowser.Model.Plugins;
+using MediaBrowser.Model.Serialization;
+
+namespace MediaBrowser.Providers.Plugins.Omdb
+{
+ public class Plugin : BasePlugin<PluginConfiguration>, IHasWebPages
+ {
+ public static Plugin Instance { get; private set; }
+
+ public override Guid Id => new Guid("a628c0da-fac5-4c7e-9d1a-7134223f14c8");
+
+ public override string Name => "OMDb";
+
+ public override string Description => "Get metadata for movies and other video content from OMDb.";
+
+ public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
+ : base(applicationPaths, xmlSerializer)
+ {
+ Instance = this;
+ }
+
+ public IEnumerable<PluginPageInfo> GetPages()
+ {
+ yield return new PluginPageInfo
+ {
+ Name = Name,
+ EmbeddedResourcePath = GetType().Namespace + ".Configuration.config.html"
+ };
+ }
+ }
+}
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/TheTvdb/Configuration/PluginConfiguration.cs
new file mode 100644
index 000000000..690a52c4d
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/Configuration/PluginConfiguration.cs
@@ -0,0 +1,10 @@
+#pragma warning disable CS1591
+
+using MediaBrowser.Model.Plugins;
+
+namespace MediaBrowser.Providers.Plugins.TheTvdb
+{
+ public class PluginConfiguration : BasePluginConfiguration
+ {
+ }
+}
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/Plugin.cs b/MediaBrowser.Providers/Plugins/TheTvdb/Plugin.cs
new file mode 100644
index 000000000..aa5f819f0
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/Plugin.cs
@@ -0,0 +1,26 @@
+#pragma warning disable CS1591
+
+using System;
+using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Plugins;
+using MediaBrowser.Model.Serialization;
+
+namespace MediaBrowser.Providers.Plugins.TheTvdb
+{
+ public class Plugin : BasePlugin<PluginConfiguration>
+ {
+ public static Plugin Instance { get; private set; }
+
+ public override Guid Id => new Guid("a677c0da-fac5-4cde-941a-7134223f14c8");
+
+ public override string Name => "TheTVDB";
+
+ public override string Description => "Get metadata for movies and other video content from TheTVDB.";
+
+ public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
+ : base(applicationPaths, xmlSerializer)
+ {
+ Instance = this;
+ }
+ }
+}
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbClientManager.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbClientManager.cs
index b73834155..2c6682f82 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbClientManager.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbClientManager.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -120,6 +122,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
var cacheKey = GenerateKey("series", zap2ItId, language);
return TryGetValue(cacheKey, language, () => TvDbClient.Search.SearchSeriesByZap2ItIdAsync(zap2ItId, cancellationToken));
}
+
public Task<TvDbResponse<Actor[]>> GetActorsAsync(
int tvdbId,
string language,
@@ -172,7 +175,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
string language,
CancellationToken cancellationToken)
{
- searchInfo.SeriesProviderIds.TryGetValue(MetadataProviders.Tvdb.ToString(),
+ searchInfo.SeriesProviderIds.TryGetValue(MetadataProvider.Tvdb.ToString(),
out var seriesTvdbId);
var episodeQuery = new EpisodeQuery();
@@ -190,7 +193,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
episodeQuery.AbsoluteNumber = searchInfo.IndexNumber.Value;
break;
default:
- //aired order
+ // aired order
episodeQuery.AiredEpisode = searchInfo.IndexNumber.Value;
episodeQuery.AiredSeason = searchInfo.ParentIndexNumber.Value;
break;
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeImageProvider.cs
index 6118a9c53..9b87e3617 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Threading;
@@ -17,7 +19,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbEpisodeImageProvider : IRemoteImageProvider
{
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbEpisodeImageProvider> _logger;
private readonly TvdbClientManager _tvdbClientManager;
public TvdbEpisodeImageProvider(IHttpClient httpClient, ILogger<TvdbEpisodeImageProvider> logger, TvdbClientManager tvdbClientManager)
@@ -68,7 +70,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
"Episode {SeasonNumber}x{EpisodeNumber} not found for series {SeriesTvdbId}",
episodeInfo.ParentIndexNumber,
episodeInfo.IndexNumber,
- series.GetProviderId(MetadataProviders.Tvdb));
+ series.GetProviderId(MetadataProvider.Tvdb));
return imageResult;
}
@@ -85,7 +87,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
}
catch (TvDbServerException e)
{
- _logger.LogError(e, "Failed to retrieve episode images for series {TvDbId}", series.GetProviderId(MetadataProviders.Tvdb));
+ _logger.LogError(e, "Failed to retrieve episode images for series {TvDbId}", series.GetProviderId(MetadataProvider.Tvdb));
}
}
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeProvider.cs
index 08c2a74d2..ced287d54 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbEpisodeProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Threading;
@@ -14,14 +16,13 @@ using TvDbSharper.Dto;
namespace MediaBrowser.Providers.Plugins.TheTvdb
{
-
/// <summary>
- /// Class RemoteEpisodeProvider
+ /// Class RemoteEpisodeProvider.
/// </summary>
public class TvdbEpisodeProvider : IRemoteMetadataProvider<Episode, EpisodeInfo>, IHasOrder
{
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbEpisodeProvider> _logger;
private readonly TvdbClientManager _tvdbClientManager;
public TvdbEpisodeProvider(IHttpClient httpClient, ILogger<TvdbEpisodeProvider> logger, TvdbClientManager tvdbClientManager)
@@ -95,7 +96,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
QueriedById = true
};
- string seriesTvdbId = searchInfo.GetProviderId(MetadataProviders.Tvdb);
+ string seriesTvdbId = searchInfo.GetProviderId(MetadataProvider.Tvdb);
string episodeTvdbId = null;
try
{
@@ -139,14 +140,13 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
Name = episode.EpisodeName,
Overview = episode.Overview,
CommunityRating = (float?)episode.SiteRating,
-
}
};
result.ResetPeople();
var item = result.Item;
- item.SetProviderId(MetadataProviders.Tvdb, episode.Id.ToString());
- item.SetProviderId(MetadataProviders.Imdb, episode.ImdbId);
+ item.SetProviderId(MetadataProvider.Tvdb, episode.Id.ToString());
+ item.SetProviderId(MetadataProvider.Imdb, episode.ImdbId);
if (string.Equals(id.SeriesDisplayOrder, "dvd", StringComparison.OrdinalIgnoreCase))
{
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbPersonImageProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbPersonImageProvider.cs
index c1cdc90e9..9db21f012 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbPersonImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbPersonImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -19,7 +21,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbPersonImageProvider : IRemoteImageProvider, IHasOrder
{
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbPersonImageProvider> _logger;
private readonly ILibraryManager _libraryManager;
private readonly TvdbClientManager _tvdbClientManager;
@@ -57,7 +59,6 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
{
EnableImages = false
}
-
}).Cast<Series>()
.Where(i => TvdbSeriesProvider.IsValidSeries(i.ProviderIds))
.ToList();
@@ -73,7 +74,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
private async Task<RemoteImageInfo> GetImageFromSeriesData(Series series, string personName, CancellationToken cancellationToken)
{
- var tvdbId = Convert.ToInt32(series.GetProviderId(MetadataProviders.Tvdb));
+ var tvdbId = Convert.ToInt32(series.GetProviderId(MetadataProvider.Tvdb));
try
{
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeasonImageProvider.cs
index a5d183df7..5af99a573 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeasonImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeasonImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -19,7 +21,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbSeasonImageProvider : IRemoteImageProvider, IHasOrder
{
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbSeasonImageProvider> _logger;
private readonly TvdbClientManager _tvdbClientManager;
public TvdbSeasonImageProvider(IHttpClient httpClient, ILogger<TvdbSeasonImageProvider> logger, TvdbClientManager tvdbClientManager)
@@ -55,10 +57,10 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
if (series == null || !season.IndexNumber.HasValue || !TvdbSeriesProvider.IsValidSeries(series.ProviderIds))
{
- return new RemoteImageInfo[] { };
+ return Array.Empty<RemoteImageInfo>();
}
- var tvdbId = Convert.ToInt32(series.GetProviderId(MetadataProviders.Tvdb));
+ var tvdbId = Convert.ToInt32(series.GetProviderId(MetadataProvider.Tvdb));
var seasonNumber = season.IndexNumber.Value;
var language = item.GetPreferredMetadataLanguage();
var remoteImages = new List<RemoteImageInfo>();
@@ -89,7 +91,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
private IEnumerable<RemoteImageInfo> GetImages(Image[] images, string preferredLanguage)
{
var list = new List<RemoteImageInfo>();
- var languages = _tvdbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data;
+ // any languages with null ids are ignored
+ var languages = _tvdbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data.Where(x => x.Id.HasValue);
foreach (Image image in images)
{
var imageInfo = new RemoteImageInfo
@@ -113,8 +116,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType);
list.Add(imageInfo);
}
- var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
+ var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i =>
{
if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase))
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesImageProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesImageProvider.cs
index 1bad60756..7dd012825 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -19,7 +21,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbSeriesImageProvider : IRemoteImageProvider, IHasOrder
{
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbSeriesImageProvider> _logger;
private readonly TvdbClientManager _tvdbClientManager;
public TvdbSeriesImageProvider(IHttpClient httpClient, ILogger<TvdbSeriesImageProvider> logger, TvdbClientManager tvdbClientManager)
@@ -58,7 +60,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
var language = item.GetPreferredMetadataLanguage();
var remoteImages = new List<RemoteImageInfo>();
var keyTypes = new[] { KeyType.Poster, KeyType.Series, KeyType.Fanart };
- var tvdbId = Convert.ToInt32(item.GetProviderId(MetadataProviders.Tvdb));
+ var tvdbId = Convert.ToInt32(item.GetProviderId(MetadataProvider.Tvdb));
foreach (KeyType keyType in keyTypes)
{
var imageQuery = new ImagesQuery
@@ -79,6 +81,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
tvdbId);
}
}
+
return remoteImages;
}
@@ -110,8 +113,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType);
list.Add(imageInfo);
}
- var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
+ var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i =>
{
if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase))
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesProvider.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesProvider.cs
index f6cd249f5..b3641dc9f 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesProvider.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbSeriesProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -22,8 +24,9 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
{
internal static TvdbSeriesProvider Current { get; private set; }
+
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TvdbSeriesProvider> _logger;
private readonly ILibraryManager _libraryManager;
private readonly ILocalizationManager _localizationManager;
private readonly TvdbClientManager _tvdbClientManager;
@@ -94,22 +97,22 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
{
var series = result.Item;
- if (seriesProviderIds.TryGetValue(MetadataProviders.Tvdb.ToString(), out var tvdbId) && !string.IsNullOrEmpty(tvdbId))
+ if (seriesProviderIds.TryGetValue(MetadataProvider.Tvdb.ToString(), out var tvdbId) && !string.IsNullOrEmpty(tvdbId))
{
- series.SetProviderId(MetadataProviders.Tvdb, tvdbId);
+ series.SetProviderId(MetadataProvider.Tvdb, tvdbId);
}
- if (seriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out var imdbId) && !string.IsNullOrEmpty(imdbId))
+ if (seriesProviderIds.TryGetValue(MetadataProvider.Imdb.ToString(), out var imdbId) && !string.IsNullOrEmpty(imdbId))
{
- series.SetProviderId(MetadataProviders.Imdb, imdbId);
- tvdbId = await GetSeriesByRemoteId(imdbId, MetadataProviders.Imdb.ToString(), metadataLanguage,
+ series.SetProviderId(MetadataProvider.Imdb, imdbId);
+ tvdbId = await GetSeriesByRemoteId(imdbId, MetadataProvider.Imdb.ToString(), metadataLanguage,
cancellationToken).ConfigureAwait(false);
}
- if (seriesProviderIds.TryGetValue(MetadataProviders.Zap2It.ToString(), out var zap2It) && !string.IsNullOrEmpty(zap2It))
+ if (seriesProviderIds.TryGetValue(MetadataProvider.Zap2It.ToString(), out var zap2It) && !string.IsNullOrEmpty(zap2It))
{
- series.SetProviderId(MetadataProviders.Zap2It, zap2It);
- tvdbId = await GetSeriesByRemoteId(zap2It, MetadataProviders.Zap2It.ToString(), metadataLanguage,
+ series.SetProviderId(MetadataProvider.Zap2It, zap2It);
+ tvdbId = await GetSeriesByRemoteId(zap2It, MetadataProvider.Zap2It.ToString(), metadataLanguage,
cancellationToken).ConfigureAwait(false);
}
@@ -145,12 +148,11 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
private async Task<string> GetSeriesByRemoteId(string id, string idType, string language, CancellationToken cancellationToken)
{
-
TvDbResponse<SeriesSearchResult[]> result = null;
try
{
- if (string.Equals(idType, MetadataProviders.Zap2It.ToString(), StringComparison.OrdinalIgnoreCase))
+ if (string.Equals(idType, MetadataProvider.Zap2It.ToString(), StringComparison.OrdinalIgnoreCase))
{
result = await _tvdbClientManager.GetSeriesByZap2ItIdAsync(id, language, cancellationToken)
.ConfigureAwait(false);
@@ -176,9 +178,9 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
/// <returns>True, if the dictionary contains a valid TV provider ID, otherwise false.</returns>
internal static bool IsValidSeries(Dictionary<string, string> seriesProviderIds)
{
- return seriesProviderIds.ContainsKey(MetadataProviders.Tvdb.ToString()) ||
- seriesProviderIds.ContainsKey(MetadataProviders.Imdb.ToString()) ||
- seriesProviderIds.ContainsKey(MetadataProviders.Zap2It.ToString());
+ return seriesProviderIds.ContainsKey(MetadataProvider.Tvdb.ToString()) ||
+ seriesProviderIds.ContainsKey(MetadataProvider.Imdb.ToString()) ||
+ seriesProviderIds.ContainsKey(MetadataProvider.Zap2It.ToString());
}
/// <summary>
@@ -247,22 +249,22 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
ProductionYear = firstAired.Year,
SearchProviderName = Name,
ImageUrl = TvdbUtils.BannerUrl + seriesSearchResult.Banner
-
};
+
try
{
var seriesSesult =
await _tvdbClientManager.GetSeriesByIdAsync(seriesSearchResult.Id, language, cancellationToken)
.ConfigureAwait(false);
- remoteSearchResult.SetProviderId(MetadataProviders.Imdb, seriesSesult.Data.ImdbId);
- remoteSearchResult.SetProviderId(MetadataProviders.Zap2It, seriesSesult.Data.Zap2itId);
+ remoteSearchResult.SetProviderId(MetadataProvider.Imdb, seriesSesult.Data.ImdbId);
+ remoteSearchResult.SetProviderId(MetadataProvider.Zap2It, seriesSesult.Data.Zap2itId);
}
catch (TvDbServerException e)
{
_logger.LogError(e, "Unable to retrieve series with id {TvdbId}", seriesSearchResult.Id);
}
- remoteSearchResult.SetProviderId(MetadataProviders.Tvdb, seriesSearchResult.Id.ToString());
+ remoteSearchResult.SetProviderId(MetadataProvider.Tvdb, seriesSearchResult.Id.ToString());
list.Add(new Tuple<List<string>, RemoteSearchResult>(tvdbTitles, remoteSearchResult));
}
@@ -274,15 +276,6 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
}
/// <summary>
- /// The remove
- /// </summary>
- const string remove = "\"'!`?";
- /// <summary>
- /// The spacers
- /// </summary>
- const string spacers = "/,.:;\\(){}[]+-_=–*"; // (there are two types of dashes, short and long)
-
- /// <summary>
/// Gets the name of the comparable.
/// </summary>
/// <param name="name">The name.</param>
@@ -291,47 +284,25 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
{
name = name.ToLowerInvariant();
name = name.Normalize(NormalizationForm.FormKD);
- var sb = new StringBuilder();
- foreach (var c in name)
- {
- if (c >= 0x2B0 && c <= 0x0333)
- {
- // skip char modifier and diacritics
- }
- else if (remove.IndexOf(c) > -1)
- {
- // skip chars we are removing
- }
- else if (spacers.IndexOf(c) > -1)
- {
- sb.Append(" ");
- }
- else if (c == '&')
- {
- sb.Append(" and ");
- }
- else
- {
- sb.Append(c);
- }
- }
- sb.Replace(", the", string.Empty).Replace("the ", " ").Replace(" the ", " ");
-
- return Regex.Replace(sb.ToString().Trim(), @"\s+", " ");
+ name = name.Replace(", the", string.Empty).Replace("the ", " ").Replace(" the ", " ");
+ name = name.Replace("&", " and " );
+ name = Regex.Replace(name, @"[\p{Lm}\p{Mn}]", string.Empty); // Remove diacritics, etc
+ name = Regex.Replace(name, @"[\W\p{Pc}]+", " "); // Replace sequences of non-word characters and _ with " "
+ return name.Trim();
}
private void MapSeriesToResult(MetadataResult<Series> result, TvDbSharper.Dto.Series tvdbSeries, string metadataLanguage)
{
Series series = result.Item;
- series.SetProviderId(MetadataProviders.Tvdb, tvdbSeries.Id.ToString());
+ series.SetProviderId(MetadataProvider.Tvdb, tvdbSeries.Id.ToString());
series.Name = tvdbSeries.SeriesName;
series.Overview = (tvdbSeries.Overview ?? string.Empty).Trim();
result.ResultLanguage = metadataLanguage;
series.AirDays = TVUtils.GetAirDays(tvdbSeries.AirsDayOfWeek);
series.AirTime = tvdbSeries.AirsTime;
series.CommunityRating = (float?)tvdbSeries.SiteRating;
- series.SetProviderId(MetadataProviders.Imdb, tvdbSeries.ImdbId);
- series.SetProviderId(MetadataProviders.Zap2It, tvdbSeries.Zap2itId);
+ series.SetProviderId(MetadataProvider.Imdb, tvdbSeries.ImdbId);
+ series.SetProviderId(MetadataProvider.Zap2It, tvdbSeries.Zap2itId);
if (Enum.TryParse(tvdbSeries.Status, true, out SeriesStatus seriesStatus))
{
series.Status = seriesStatus;
@@ -409,7 +380,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public async Task Identify(SeriesInfo info)
{
- if (!string.IsNullOrWhiteSpace(info.GetProviderId(MetadataProviders.Tvdb)))
+ if (!string.IsNullOrWhiteSpace(info.GetProviderId(MetadataProvider.Tvdb)))
{
return;
}
@@ -421,8 +392,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
if (entry != null)
{
- var id = entry.GetProviderId(MetadataProviders.Tvdb);
- info.SetProviderId(MetadataProviders.Tvdb, id);
+ var id = entry.GetProviderId(MetadataProvider.Tvdb);
+ info.SetProviderId(MetadataProvider.Tvdb, id);
}
}
diff --git a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbUtils.cs b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbUtils.cs
index 79d879aa1..3f71041b2 100644
--- a/MediaBrowser.Providers/Plugins/TheTvdb/TvdbUtils.cs
+++ b/MediaBrowser.Providers/Plugins/TheTvdb/TvdbUtils.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using MediaBrowser.Model.Entities;
diff --git a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetExternalId.cs b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetExternalId.cs
index bfef1e038..1f7ec6433 100644
--- a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetExternalId.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetExternalId.cs
@@ -4,15 +4,18 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Tmdb.BoxSets
+namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{
+ /// <summary>
+ /// External ID for a TMDB box set.
+ /// </summary>
public class TmdbBoxSetExternalId : IExternalId
{
/// <inheritdoc />
public string ProviderName => TmdbUtils.ProviderName;
/// <inheritdoc />
- public string Key => MetadataProviders.TmdbCollection.ToString();
+ public string Key => MetadataProvider.TmdbCollection.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.BoxSet;
diff --git a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs
index 0bdf2bce1..c41bd925e 100644
--- a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -10,11 +12,11 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-using MediaBrowser.Providers.Tmdb.Models.Collections;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Collections;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.BoxSets
+namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{
public class TmdbBoxSetImageProvider : IRemoteImageProvider, IHasOrder
{
@@ -45,7 +47,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
- var tmdbId = item.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = item.GetProviderId(MetadataProvider.Tmdb);
if (!string.IsNullOrEmpty(tmdbId))
{
@@ -105,6 +107,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
{
return 3;
}
+
if (!isLanguageEn)
{
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@@ -112,10 +115,12 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
return 2;
}
}
+
if (string.IsNullOrEmpty(i.Language))
{
return isLanguageEn ? 3 : 2;
}
+
return 0;
})
.ThenByDescending(i => i.CommunityRating ?? 0)
diff --git a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs
index dd3783ffb..20b6cd505 100644
--- a/MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -16,12 +18,12 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.Collections;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Collections;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.BoxSets
+namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{
public class TmdbBoxSetProvider : IRemoteMetadataProvider<BoxSet, BoxSetInfo>
{
@@ -29,7 +31,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
internal static TmdbBoxSetProvider Current;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbBoxSetProvider> _logger;
private readonly IJsonSerializer _json;
private readonly IServerConfigurationManager _config;
private readonly IFileSystem _fileSystem;
@@ -60,7 +62,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(BoxSetInfo searchInfo, CancellationToken cancellationToken)
{
- var tmdbId = searchInfo.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = searchInfo.GetProviderId(MetadataProvider.Tmdb);
if (!string.IsNullOrEmpty(tmdbId))
{
@@ -78,13 +80,11 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
var result = new RemoteSearchResult
{
Name = info.Name,
-
SearchProviderName = Name,
-
ImageUrl = images.Count == 0 ? null : (tmdbImageUrl + images[0].File_Path)
};
- result.SetProviderId(MetadataProviders.Tmdb, info.Id.ToString(_usCulture));
+ result.SetProviderId(MetadataProvider.Tmdb, info.Id.ToString(_usCulture));
return new[] { result };
}
@@ -94,7 +94,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
public async Task<MetadataResult<BoxSet>> GetMetadata(BoxSetInfo id, CancellationToken cancellationToken)
{
- var tmdbId = id.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = id.GetProviderId(MetadataProvider.Tmdb);
// We don't already have an Id, need to fetch it
if (string.IsNullOrEmpty(tmdbId))
@@ -105,7 +105,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
if (searchResult != null)
{
- tmdbId = searchResult.GetProviderId(MetadataProviders.Tmdb);
+ tmdbId = searchResult.GetProviderId(MetadataProvider.Tmdb);
}
}
@@ -152,7 +152,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
Overview = obj.Overview
};
- item.SetProviderId(MetadataProviders.Tmdb, obj.Id.ToString(_usCulture));
+ item.SetProviderId(MetadataProvider.Tmdb, obj.Id.ToString(_usCulture));
return item;
}
@@ -161,7 +161,10 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
{
var mainResult = await FetchMainResult(tmdbId, preferredMetadataLanguage, cancellationToken).ConfigureAwait(false);
- if (mainResult == null) return;
+ if (mainResult == null)
+ {
+ return;
+ }
var dataFilePath = GetDataFilePath(_config.ApplicationPaths, tmdbId, preferredMetadataLanguage);
@@ -191,7 +194,6 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -219,7 +221,6 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -229,6 +230,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
}
}
}
+
return mainResult;
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Collections/CollectionImages.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionImages.cs
index 18f26c397..0a8994d54 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Collections/CollectionImages.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionImages.cs
@@ -1,11 +1,14 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.Collections
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Collections
{
public class CollectionImages
{
public List<Backdrop> Backdrops { get; set; }
+
public List<Poster> Posters { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Collections/CollectionResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionResult.cs
index 53d2599f8..c6b851c23 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Collections/CollectionResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/CollectionResult.cs
@@ -1,15 +1,23 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.Collections
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Collections
{
public class CollectionResult
{
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Overview { get; set; }
+
public string Poster_Path { get; set; }
+
public string Backdrop_Path { get; set; }
+
public List<Part> Parts { get; set; }
+
public CollectionImages Images { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Collections/Part.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/Part.cs
index ff19291c7..a48124b3e 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Collections/Part.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Collections/Part.cs
@@ -1,11 +1,17 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Collections
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Collections
{
public class Part
{
public string Title { get; set; }
+
public int Id { get; set; }
+
public string Release_Date { get; set; }
+
public string Poster_Path { get; set; }
+
public string Backdrop_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Backdrop.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Backdrop.cs
index db4cd6681..5b7627f6e 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Backdrop.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Backdrop.cs
@@ -1,13 +1,21 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Backdrop
{
public double Aspect_Ratio { get; set; }
+
public string File_Path { get; set; }
+
public int Height { get; set; }
+
public string Iso_639_1 { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public int Width { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Crew.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Crew.cs
index 47b985403..339ecb628 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Crew.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Crew.cs
@@ -1,12 +1,19 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Crew
{
public int Id { get; set; }
+
public string Credit_Id { get; set; }
+
public string Name { get; set; }
+
public string Department { get; set; }
+
public string Job { get; set; }
+
public string Profile_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/ExternalIds.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/ExternalIds.cs
index 37e37b0be..310c871ec 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/ExternalIds.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/ExternalIds.cs
@@ -1,11 +1,17 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class ExternalIds
{
public string Imdb_Id { get; set; }
+
public object Freebase_Id { get; set; }
+
public string Freebase_Mid { get; set; }
+
public int Tvdb_Id { get; set; }
+
public int Tvrage_Id { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Genre.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Genre.cs
index 9a6686d50..9ba1c15c6 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Genre.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Genre.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Genre
{
public int Id { get; set; }
+
public string Name { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Images.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Images.cs
index f1c99537d..0538cf174 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Images.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Images.cs
@@ -1,10 +1,13 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.General
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Images
{
public List<Backdrop> Backdrops { get; set; }
+
public List<Poster> Posters { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Keyword.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keyword.cs
index 4e3011349..fff86931b 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Keyword.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keyword.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Keyword
{
public int Id { get; set; }
+
public string Name { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Keywords.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keywords.cs
index 1950a51b3..235ecb568 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Keywords.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Keywords.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.General
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Keywords
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Poster.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Poster.cs
index 33401b15d..4f61e978b 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Poster.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Poster.cs
@@ -1,13 +1,21 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Poster
{
public double Aspect_Ratio { get; set; }
+
public string File_Path { get; set; }
+
public int Height { get; set; }
+
public string Iso_639_1 { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public int Width { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Profile.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Profile.cs
index f87d14850..0a1f8843e 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Profile.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Profile.cs
@@ -1,11 +1,17 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Profile
{
public string File_Path { get; set; }
+
public int Width { get; set; }
+
public int Height { get; set; }
+
public object Iso_639_1 { get; set; }
+
public double Aspect_Ratio { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Still.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Still.cs
index 15ff4a099..61de819b9 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Still.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Still.cs
@@ -1,14 +1,23 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Still
{
public double Aspect_Ratio { get; set; }
+
public string File_Path { get; set; }
+
public int Height { get; set; }
+
public string Id { get; set; }
+
public string Iso_639_1 { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public int Width { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/StillImages.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/StillImages.cs
index 266965c47..59ab18b7b 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/StillImages.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/StillImages.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.General
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class StillImages
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Video.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Video.cs
index fb69e7767..ebd5c7ace 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Video.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Video.cs
@@ -1,14 +1,23 @@
-namespace MediaBrowser.Providers.Tmdb.Models.General
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Video
{
public string Id { get; set; }
+
public string Iso_639_1 { get; set; }
+
public string Iso_3166_1 { get; set; }
+
public string Key { get; set; }
+
public string Name { get; set; }
+
public string Site { get; set; }
+
public string Size { get; set; }
+
public string Type { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/General/Videos.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Videos.cs
index 26812780d..241dcab4d 100644
--- a/MediaBrowser.Providers/Tmdb/Models/General/Videos.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/General/Videos.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.General
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{
public class Videos
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/BelongsToCollection.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/BelongsToCollection.cs
index ac673df61..e8745be14 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/BelongsToCollection.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/BelongsToCollection.cs
@@ -1,10 +1,15 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class BelongsToCollection
{
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Poster_Path { get; set; }
+
public string Backdrop_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Cast.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Cast.cs
index 44af9e568..937cfb8f6 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Cast.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Cast.cs
@@ -1,12 +1,19 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Cast
{
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Character { get; set; }
+
public int Order { get; set; }
+
public int Cast_Id { get; set; }
+
public string Profile_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Casts.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Casts.cs
index 7b5094fa3..37547640f 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Casts.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Casts.cs
@@ -1,11 +1,14 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Casts
{
public List<Cast> Cast { get; set; }
+
public List<Crew> Crew { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Country.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Country.cs
index 6f843addd..edd656a46 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Country.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Country.cs
@@ -1,11 +1,15 @@
+#pragma warning disable CS1591
+
using System;
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Country
{
public string Iso_3166_1 { get; set; }
+
public string Certification { get; set; }
+
public DateTime Release_Date { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/MovieResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/MovieResult.cs
index 1b262946f..7566df8b6 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/MovieResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/MovieResult.cs
@@ -1,39 +1,70 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class MovieResult
{
public bool Adult { get; set; }
+
public string Backdrop_Path { get; set; }
+
public BelongsToCollection Belongs_To_Collection { get; set; }
+
public int Budget { get; set; }
+
public List<Genre> Genres { get; set; }
+
public string Homepage { get; set; }
+
public int Id { get; set; }
+
public string Imdb_Id { get; set; }
+
public string Original_Title { get; set; }
+
public string Original_Name { get; set; }
+
public string Overview { get; set; }
+
public double Popularity { get; set; }
+
public string Poster_Path { get; set; }
+
public List<ProductionCompany> Production_Companies { get; set; }
+
public List<ProductionCountry> Production_Countries { get; set; }
+
public string Release_Date { get; set; }
+
public int Revenue { get; set; }
+
public int Runtime { get; set; }
+
public List<SpokenLanguage> Spoken_Languages { get; set; }
+
public string Status { get; set; }
+
public string Tagline { get; set; }
+
public string Title { get; set; }
+
public string Name { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public Casts Casts { get; set; }
+
public Releases Releases { get; set; }
+
public Images Images { get; set; }
+
public Keywords Keywords { get; set; }
+
public Trailers Trailers { get; set; }
public string GetOriginalTitle()
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCompany.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCompany.cs
index c3382f305..2788731b2 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCompany.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCompany.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class ProductionCompany
{
public string Name { get; set; }
+
public int Id { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCountry.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCountry.cs
index 78112c915..1b6f2cc67 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/ProductionCountry.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/ProductionCountry.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class ProductionCountry
{
public string Iso_3166_1 { get; set; }
+
public string Name { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Releases.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Releases.cs
index c44f31e46..276fbaaf5 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Releases.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Releases.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Releases
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/SpokenLanguage.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/SpokenLanguage.cs
index 4bc5cfa48..67231d219 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/SpokenLanguage.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/SpokenLanguage.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class SpokenLanguage
{
public string Iso_639_1 { get; set; }
+
public string Name { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Trailers.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Trailers.cs
index 4bfa02f06..166860f51 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Trailers.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Trailers.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Trailers
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Movies/Youtube.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Youtube.cs
index 069572824..6885b7dab 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Movies/Youtube.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Movies/Youtube.cs
@@ -1,9 +1,13 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Movies
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{
public class Youtube
{
public string Name { get; set; }
+
public string Size { get; set; }
+
public string Source { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonImages.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonImages.cs
new file mode 100644
index 000000000..3ea12334e
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonImages.cs
@@ -0,0 +1,12 @@
+#pragma warning disable CS1591
+
+using System.Collections.Generic;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.People
+{
+ public class PersonImages
+ {
+ public List<Profile> Profiles { get; set; }
+ }
+}
diff --git a/MediaBrowser.Providers/Tmdb/Models/People/PersonResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonResult.cs
index 6e997050f..460ced49a 100644
--- a/MediaBrowser.Providers/Tmdb/Models/People/PersonResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/People/PersonResult.cs
@@ -1,23 +1,38 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.People
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.People
{
public class PersonResult
{
public bool Adult { get; set; }
+
public List<string> Also_Known_As { get; set; }
+
public string Biography { get; set; }
+
public string Birthday { get; set; }
+
public string Deathday { get; set; }
+
public string Homepage { get; set; }
+
public int Id { get; set; }
+
public string Imdb_Id { get; set; }
+
public string Name { get; set; }
+
public string Place_Of_Birth { get; set; }
+
public double Popularity { get; set; }
+
public string Profile_Path { get; set; }
+
public PersonImages Images { get; set; }
+
public ExternalIds External_Ids { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/Search/ExternalIdLookupResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/ExternalIdLookupResult.cs
index d19f4e8cb..87c2a723d 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Search/ExternalIdLookupResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/ExternalIdLookupResult.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.Search
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{
public class ExternalIdLookupResult
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Search/MovieResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/MovieResult.cs
index 245162728..401c75c31 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Search/MovieResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/MovieResult.cs
@@ -1,4 +1,6 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Search
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{
public class MovieResult
{
@@ -7,55 +9,66 @@ namespace MediaBrowser.Providers.Tmdb.Models.Search
/// </summary>
/// <value><c>true</c> if adult; otherwise, <c>false</c>.</value>
public bool Adult { get; set; }
+
/// <summary>
/// Gets or sets the backdrop_path.
/// </summary>
/// <value>The backdrop_path.</value>
public string Backdrop_Path { get; set; }
+
/// <summary>
/// Gets or sets the id.
/// </summary>
/// <value>The id.</value>
public int Id { get; set; }
+
/// <summary>
/// Gets or sets the original_title.
/// </summary>
/// <value>The original_title.</value>
public string Original_Title { get; set; }
+
/// <summary>
/// Gets or sets the original_name.
/// </summary>
/// <value>The original_name.</value>
public string Original_Name { get; set; }
+
/// <summary>
/// Gets or sets the release_date.
/// </summary>
/// <value>The release_date.</value>
public string Release_Date { get; set; }
+
/// <summary>
/// Gets or sets the poster_path.
/// </summary>
/// <value>The poster_path.</value>
public string Poster_Path { get; set; }
+
/// <summary>
/// Gets or sets the popularity.
/// </summary>
/// <value>The popularity.</value>
public double Popularity { get; set; }
+
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>The title.</value>
public string Title { get; set; }
+
/// <summary>
/// Gets or sets the vote_average.
/// </summary>
/// <value>The vote_average.</value>
public double Vote_Average { get; set; }
+
/// <summary>
- /// For collection search results
+ /// For collection search results.
/// </summary>
public string Name { get; set; }
+
/// <summary>
/// Gets or sets the vote_count.
/// </summary>
diff --git a/MediaBrowser.Providers/Tmdb/Models/Search/PersonSearchResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/PersonSearchResult.cs
index 93916068f..4cff45ca6 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Search/PersonSearchResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/PersonSearchResult.cs
@@ -1,4 +1,6 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Search
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{
public class PersonSearchResult
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Search/TmdbSearchResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TmdbSearchResult.cs
index a9f888e75..3b9257b62 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Search/TmdbSearchResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TmdbSearchResult.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.Search
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{
public class TmdbSearchResult<T>
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/Search/TvResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TvResult.cs
index ed140bedd..b2bb068b5 100644
--- a/MediaBrowser.Providers/Tmdb/Models/Search/TvResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/Search/TvResult.cs
@@ -1,15 +1,25 @@
-namespace MediaBrowser.Providers.Tmdb.Models.Search
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{
public class TvResult
{
public string Backdrop_Path { get; set; }
+
public string First_Air_Date { get; set; }
+
public int Id { get; set; }
+
public string Original_Name { get; set; }
+
public string Poster_Path { get; set; }
+
public double Popularity { get; set; }
+
public string Name { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/Cast.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Cast.cs
index c659df9ac..4ce26c65e 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/Cast.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Cast.cs
@@ -1,12 +1,19 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class Cast
{
public string Character { get; set; }
+
public string Credit_Id { get; set; }
+
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Profile_Path { get; set; }
+
public int Order { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/ContentRating.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRating.cs
index 3177cd71b..aef4e2863 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/ContentRating.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRating.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class ContentRating
{
public string Iso_3166_1 { get; set; }
+
public string Rating { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/ContentRatings.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRatings.cs
index 883e605c9..ae1b5668d 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/ContentRatings.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/ContentRatings.cs
@@ -1,6 +1,8 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class ContentRatings
{
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/CreatedBy.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/CreatedBy.cs
index 21588d897..ba36632e0 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/CreatedBy.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/CreatedBy.cs
@@ -1,9 +1,13 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class CreatedBy
{
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Profile_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/Credits.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Credits.cs
index b62b5f605..47205d875 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/Credits.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Credits.cs
@@ -1,11 +1,14 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class Credits
{
public List<Cast> Cast { get; set; }
+
public List<Crew> Crew { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/Episode.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Episode.cs
index ab11a6cd2..53e3c2695 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/Episode.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Episode.cs
@@ -1,14 +1,23 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class Episode
{
public string Air_Date { get; set; }
+
public int Episode_Number { get; set; }
+
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Overview { get; set; }
+
public string Still_Path { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/EpisodeCredits.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeCredits.cs
index 1c86be0f4..9707e4bf4 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/EpisodeCredits.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeCredits.cs
@@ -1,12 +1,16 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class EpisodeCredits
{
public List<Cast> Cast { get; set; }
+
public List<Crew> Crew { get; set; }
+
public List<GuestStar> Guest_Stars { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/EpisodeResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeResult.cs
index 0513ce7e2..4458bad36 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/EpisodeResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/EpisodeResult.cs
@@ -1,23 +1,38 @@
+#pragma warning disable CS1591
+
using System;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class EpisodeResult
{
public DateTime Air_Date { get; set; }
+
public int Episode_Number { get; set; }
+
public string Name { get; set; }
+
public string Overview { get; set; }
+
public int Id { get; set; }
+
public object Production_Code { get; set; }
+
public int Season_Number { get; set; }
+
public string Still_Path { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public StillImages Images { get; set; }
+
public ExternalIds External_Ids { get; set; }
+
public EpisodeCredits Credits { get; set; }
+
public Tmdb.Models.General.Videos Videos { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/GuestStar.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/GuestStar.cs
index 2dfe7a862..8f3988641 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/GuestStar.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/GuestStar.cs
@@ -1,12 +1,19 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class GuestStar
{
public int Id { get; set; }
+
public string Name { get; set; }
+
public string Credit_Id { get; set; }
+
public string Character { get; set; }
+
public int Order { get; set; }
+
public string Profile_Path { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/Network.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Network.cs
index f982682d1..3dc310d33 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/Network.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Network.cs
@@ -1,8 +1,11 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class Network
{
public int Id { get; set; }
+
public string Name { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/Season.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Season.cs
index 976e3c97e..9cbd283a9 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/Season.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/Season.cs
@@ -1,11 +1,17 @@
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+#pragma warning disable CS1591
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class Season
{
public string Air_Date { get; set; }
+
public int Episode_Count { get; set; }
+
public int Id { get; set; }
+
public string Poster_Path { get; set; }
+
public int Season_Number { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonImages.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonImages.cs
new file mode 100644
index 000000000..f364d4921
--- /dev/null
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonImages.cs
@@ -0,0 +1,12 @@
+#pragma warning disable CS1591
+
+using System.Collections.Generic;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
+{
+ public class SeasonImages
+ {
+ public List<Poster> Posters { get; set; }
+ }
+}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/SeasonResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonResult.cs
index bc9213c04..e98048eac 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/SeasonResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeasonResult.cs
@@ -1,21 +1,33 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class SeasonResult
{
public DateTime Air_Date { get; set; }
+
public List<Episode> Episodes { get; set; }
+
public string Name { get; set; }
+
public string Overview { get; set; }
+
public int Id { get; set; }
+
public string Poster_Path { get; set; }
+
public int Season_Number { get; set; }
+
public Credits Credits { get; set; }
+
public SeasonImages Images { get; set; }
+
public ExternalIds External_Ids { get; set; }
+
public General.Videos Videos { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/SeriesResult.cs b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeriesResult.cs
index ad95e502e..331cd59fa 100644
--- a/MediaBrowser.Providers/Tmdb/Models/TV/SeriesResult.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Models/TV/SeriesResult.cs
@@ -1,40 +1,71 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb.Models.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{
public class SeriesResult
{
public string Backdrop_Path { get; set; }
+
public List<CreatedBy> Created_By { get; set; }
+
public List<int> Episode_Run_Time { get; set; }
+
public DateTime First_Air_Date { get; set; }
+
public List<Genre> Genres { get; set; }
+
public string Homepage { get; set; }
+
public int Id { get; set; }
+
public bool In_Production { get; set; }
+
public List<string> Languages { get; set; }
+
public DateTime Last_Air_Date { get; set; }
+
public string Name { get; set; }
+
public List<Network> Networks { get; set; }
+
public int Number_Of_Episodes { get; set; }
+
public int Number_Of_Seasons { get; set; }
+
public string Original_Name { get; set; }
+
public List<string> Origin_Country { get; set; }
+
public string Overview { get; set; }
+
public string Popularity { get; set; }
+
public string Poster_Path { get; set; }
+
public List<Season> Seasons { get; set; }
+
public string Status { get; set; }
+
public double Vote_Average { get; set; }
+
public int Vote_Count { get; set; }
+
public Credits Credits { get; set; }
+
public Images Images { get; set; }
+
public Keywords Keywords { get; set; }
+
public ExternalIds External_Ids { get; set; }
+
public General.Videos Videos { get; set; }
+
public ContentRatings Content_Ratings { get; set; }
+
public string ResultLanguage { get; set; }
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Movies/GenericTmdbMovieInfo.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/GenericTmdbMovieInfo.cs
index ad42b564c..27ca3759e 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/GenericTmdbMovieInfo.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/GenericTmdbMovieInfo.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -13,10 +15,10 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
public class GenericTmdbMovieInfo<T>
where T : BaseItem, new()
@@ -38,8 +40,8 @@ namespace MediaBrowser.Providers.Tmdb.Movies
public async Task<MetadataResult<T>> GetMetadata(ItemLookupInfo itemId, CancellationToken cancellationToken)
{
- var tmdbId = itemId.GetProviderId(MetadataProviders.Tmdb);
- var imdbId = itemId.GetProviderId(MetadataProviders.Imdb);
+ var tmdbId = itemId.GetProviderId(MetadataProvider.Tmdb);
+ var imdbId = itemId.GetProviderId(MetadataProvider.Imdb);
// Don't search for music video id's because it is very easy to misidentify.
if (string.IsNullOrEmpty(tmdbId) && string.IsNullOrEmpty(imdbId) && typeof(T) != typeof(MusicVideo))
@@ -50,7 +52,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
if (searchResult != null)
{
- tmdbId = searchResult.GetProviderId(MetadataProviders.Tmdb);
+ tmdbId = searchResult.GetProviderId(MetadataProvider.Tmdb);
}
}
@@ -131,7 +133,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
movie.Overview = string.IsNullOrWhiteSpace(movieData.Overview) ? null : WebUtility.HtmlDecode(movieData.Overview);
movie.Overview = movie.Overview != null ? movie.Overview.Replace("\n\n", "\n") : null;
- //movie.HomePageUrl = movieData.homepage;
+ // movie.HomePageUrl = movieData.homepage;
if (!string.IsNullOrEmpty(movieData.Tagline))
{
@@ -146,12 +148,12 @@ namespace MediaBrowser.Providers.Tmdb.Movies
.ToArray();
}
- movie.SetProviderId(MetadataProviders.Tmdb, movieData.Id.ToString(_usCulture));
- movie.SetProviderId(MetadataProviders.Imdb, movieData.Imdb_Id);
+ movie.SetProviderId(MetadataProvider.Tmdb, movieData.Id.ToString(_usCulture));
+ movie.SetProviderId(MetadataProvider.Imdb, movieData.Imdb_Id);
if (movieData.Belongs_To_Collection != null)
{
- movie.SetProviderId(MetadataProviders.TmdbCollection,
+ movie.SetProviderId(MetadataProvider.TmdbCollection,
movieData.Belongs_To_Collection.Id.ToString(CultureInfo.InvariantCulture));
if (movie is Movie movieItem)
@@ -167,7 +169,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
movie.CommunityRating = rating;
}
- //movie.VoteCount = movieData.vote_count;
+ // movie.VoteCount = movieData.vote_count;
if (movieData.Releases != null && movieData.Releases.Countries != null)
{
@@ -201,7 +203,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
}
}
- //studios
+ // studios
if (movieData.Production_Companies != null)
{
movie.SetStudios(movieData.Production_Companies.Select(c => c.Name));
@@ -219,8 +221,8 @@ namespace MediaBrowser.Providers.Tmdb.Movies
resultItem.ResetPeople();
var tmdbImageUrl = settings.images.GetImageUrl("original");
- //Actors, Directors, Writers - all in People
- //actors come from cast
+ // Actors, Directors, Writers - all in People
+ // actors come from cast
if (movieData.Casts != null && movieData.Casts.Cast != null)
{
foreach (var actor in movieData.Casts.Cast.OrderBy(a => a.Order))
@@ -240,14 +242,14 @@ namespace MediaBrowser.Providers.Tmdb.Movies
if (actor.Id > 0)
{
- personInfo.SetProviderId(MetadataProviders.Tmdb, actor.Id.ToString(CultureInfo.InvariantCulture));
+ personInfo.SetProviderId(MetadataProvider.Tmdb, actor.Id.ToString(CultureInfo.InvariantCulture));
}
resultItem.AddPerson(personInfo);
}
}
- //and the rest from crew
+ // and the rest from crew
if (movieData.Casts?.Crew != null)
{
var keepTypes = new[]
@@ -282,14 +284,14 @@ namespace MediaBrowser.Providers.Tmdb.Movies
if (person.Id > 0)
{
- personInfo.SetProviderId(MetadataProviders.Tmdb, person.Id.ToString(CultureInfo.InvariantCulture));
+ personInfo.SetProviderId(MetadataProvider.Tmdb, person.Id.ToString(CultureInfo.InvariantCulture));
}
resultItem.AddPerson(personInfo);
}
}
- //if (movieData.keywords != null && movieData.keywords.keywords != null)
+ // if (movieData.keywords != null && movieData.keywords.keywords != null)
//{
// movie.Keywords = movieData.keywords.keywords.Select(i => i.name).ToList();
//}
@@ -304,6 +306,5 @@ namespace MediaBrowser.Providers.Tmdb.Movies
}).ToArray();
}
}
-
}
}
diff --git a/MediaBrowser.Providers/Tmdb/Movies/TmdbImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbImageProvider.cs
index 039a49728..36a06fba7 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/TmdbImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -13,10 +15,10 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Models.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
public class TmdbImageProvider : IRemoteImageProvider, IHasOrder
{
@@ -107,6 +109,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
{
return 3;
}
+
if (!isLanguageEn)
{
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@@ -114,10 +117,12 @@ namespace MediaBrowser.Providers.Tmdb.Movies
return 2;
}
}
+
if (string.IsNullOrEmpty(i.Language))
{
return isLanguageEn ? 3 : 2;
}
+
return 0;
})
.ThenByDescending(i => i.CommunityRating ?? 0)
@@ -158,11 +163,11 @@ namespace MediaBrowser.Providers.Tmdb.Movies
/// <returns>Task{MovieImages}.</returns>
private async Task<Images> FetchImages(BaseItem item, string language, IJsonSerializer jsonSerializer, CancellationToken cancellationToken)
{
- var tmdbId = item.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = item.GetProviderId(MetadataProvider.Tmdb);
if (string.IsNullOrWhiteSpace(tmdbId))
{
- var imdbId = item.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = item.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrWhiteSpace(imdbId))
{
var movieInfo = await TmdbMovieProvider.Current.FetchMainResult(imdbId, false, language, cancellationToken).ConfigureAwait(false);
diff --git a/MediaBrowser.Providers/Tmdb/Movies/TmdbMovieExternalId.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieExternalId.cs
index 5b0cd7509..9610e4058 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/TmdbMovieExternalId.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieExternalId.cs
@@ -5,15 +5,18 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
+ /// <summary>
+ /// External ID for a TMBD movie.
+ /// </summary>
public class TmdbMovieExternalId : IExternalId
{
/// <inheritdoc />
public string ProviderName => TmdbUtils.ProviderName;
/// <inheritdoc />
- public string Key => MetadataProviders.Tmdb.ToString();
+ public string Key => MetadataProvider.Tmdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Movie;
diff --git a/MediaBrowser.Providers/Tmdb/Movies/TmdbMovieProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs
index e2fd5b9e3..5e2b83294 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/TmdbMovieProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -15,18 +17,17 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
/// <summary>
- /// Class MovieDbProvider
+ /// Class MovieDbProvider.
/// </summary>
public class TmdbMovieProvider : IRemoteMetadataProvider<Movie, MovieInfo>, IHasOrder
{
@@ -36,7 +37,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
private readonly IHttpClient _httpClient;
private readonly IFileSystem _fileSystem;
private readonly IServerConfigurationManager _configurationManager;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbMovieProvider> _logger;
private readonly ILibraryManager _libraryManager;
private readonly IApplicationHost _appHost;
@@ -68,7 +69,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
public async Task<IEnumerable<RemoteSearchResult>> GetMovieSearchResults(ItemLookupInfo searchInfo, CancellationToken cancellationToken)
{
- var tmdbId = searchInfo.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = searchInfo.GetProviderId(MetadataProvider.Tmdb);
if (!string.IsNullOrEmpty(tmdbId))
{
@@ -101,11 +102,11 @@ namespace MediaBrowser.Providers.Tmdb.Movies
}
}
- remoteResult.SetProviderId(MetadataProviders.Tmdb, obj.Id.ToString(_usCulture));
+ remoteResult.SetProviderId(MetadataProvider.Tmdb, obj.Id.ToString(_usCulture));
if (!string.IsNullOrWhiteSpace(obj.Imdb_Id))
{
- remoteResult.SetProviderId(MetadataProviders.Imdb, obj.Imdb_Id);
+ remoteResult.SetProviderId(MetadataProvider.Imdb, obj.Imdb_Id);
}
return new[] { remoteResult };
@@ -130,7 +131,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
public string Name => TmdbUtils.ProviderName;
/// <summary>
- /// The _TMDB settings task
+ /// The _TMDB settings task.
/// </summary>
private TmdbSettingsResult _tmdbSettings;
@@ -150,7 +151,6 @@ namespace MediaBrowser.Providers.Tmdb.Movies
Url = string.Format(TmdbConfigUrl, TmdbUtils.ApiKey),
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (Stream json = response.Content)
@@ -196,7 +196,10 @@ namespace MediaBrowser.Providers.Tmdb.Movies
{
var mainResult = await FetchMainResult(id, true, preferredMetadataLanguage, cancellationToken).ConfigureAwait(false);
- if (mainResult == null) return;
+ if (mainResult == null)
+ {
+ return;
+ }
var dataFilePath = GetDataFilePath(id, preferredMetadataLanguage);
@@ -314,7 +317,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
/// <param name="id">The id.</param>
/// <param name="isTmdbId">if set to <c>true</c> [is TMDB identifier].</param>
/// <param name="language">The language.</param>
- /// <param name="cancellationToken">The cancellation token</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{CompleteMovieData}.</returns>
internal async Task<MovieResult> FetchMainResult(string id, bool isTmdbId, string language, CancellationToken cancellationToken)
{
@@ -345,7 +348,6 @@ namespace MediaBrowser.Providers.Tmdb.Movies
AcceptHeader = TmdbUtils.AcceptHeader,
CacheMode = cacheMode,
CacheLength = cacheLength
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -390,7 +392,6 @@ namespace MediaBrowser.Providers.Tmdb.Movies
AcceptHeader = TmdbUtils.AcceptHeader,
CacheMode = cacheMode,
CacheLength = cacheLength
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
diff --git a/MediaBrowser.Providers/Tmdb/Movies/TmdbSearch.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSearch.cs
index 223cef086..10935c655 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/TmdbSearch.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSearch.cs
@@ -1,8 +1,11 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
+using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Net;
@@ -11,15 +14,29 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.Search;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
public class TmdbSearch
{
- private static readonly CultureInfo EnUs = new CultureInfo("en-US");
- private const string Search3 = TmdbUtils.BaseTmdbApiUrl + @"3/search/{3}?api_key={1}&query={0}&language={2}";
+ private static readonly CultureInfo _usCulture = new CultureInfo("en-US");
+
+ private static readonly Regex _cleanEnclosed = new Regex(@"\p{Ps}.*\p{Pe}", RegexOptions.Compiled);
+ private static readonly Regex _cleanNonWord = new Regex(@"[\W_]+", RegexOptions.Compiled);
+ private static readonly Regex _cleanStopWords = new Regex(@"\b( # Start at word boundary
+ 19[0-9]{2}|20[0-9]{2}| # 1900-2099
+ S[0-9]{2}| # Season
+ E[0-9]{2}| # Episode
+ (2160|1080|720|576|480)[ip]?| # Resolution
+ [xh]?264| # Encoding
+ (web|dvd|bd|hdtv|hd)rip| # *Rip
+ web|hdtv|mp4|bluray|ktr|dl|single|imageset|internal|doku|dubbed|retail|xxx|flac
+ ).* # Match rest of string",
+ RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase);
+
+ private const string _searchURL = TmdbUtils.BaseTmdbApiUrl + @"3/search/{3}?api_key={1}&query={0}&language={2}";
private readonly ILogger _logger;
private readonly IJsonSerializer _json;
@@ -61,61 +78,60 @@ namespace MediaBrowser.Providers.Tmdb.Movies
var tmdbImageUrl = tmdbSettings.images.GetImageUrl("original");
- if (!string.IsNullOrWhiteSpace(name))
- {
- var parsedName = _libraryManager.ParseName(name);
- var yearInName = parsedName.Year;
- name = parsedName.Name;
- year = year ?? yearInName;
- }
+ // ParseName is required here.
+ // Caller provides the filename with extension stripped and NOT the parsed filename
+ var parsedName = _libraryManager.ParseName(name);
+ var yearInName = parsedName.Year;
+ name = parsedName.Name;
+ year ??= yearInName;
- _logger.LogInformation("MovieDbProvider: Finding id for item: " + name);
var language = idInfo.MetadataLanguage.ToLowerInvariant();
- //nope - search for it
- //var searchType = item is BoxSet ? "collection" : "movie";
+ // Replace sequences of non-word characters with space
+ // TMDB expects a space separated list of words make sure that is the case
+ name = _cleanNonWord.Replace(name, " ").Trim();
+ _logger.LogInformation("TmdbSearch: Finding id for item: {0} ({1})", name, year);
var results = await GetSearchResults(name, searchType, year, language, tmdbImageUrl, cancellationToken).ConfigureAwait(false);
if (results.Count == 0)
{
- //try in english if wasn't before
+ // try in english if wasn't before
if (!string.Equals(language, "en", StringComparison.OrdinalIgnoreCase))
{
results = await GetSearchResults(name, searchType, year, "en", tmdbImageUrl, cancellationToken).ConfigureAwait(false);
}
}
+ // TODO: retrying alternatives should be done outside the search
+ // provider so that the retry logic can be common for all search
+ // providers
if (results.Count == 0)
{
- // try with dot and _ turned to space
- var originalName = name;
-
- name = name.Replace(",", " ");
- name = name.Replace(".", " ");
- name = name.Replace("_", " ");
- name = name.Replace("-", " ");
- name = name.Replace("!", " ");
- name = name.Replace("?", " ");
-
- var parenthIndex = name.IndexOf('(');
- if (parenthIndex != -1)
- {
- name = name.Substring(0, parenthIndex);
- }
+ var name2 = parsedName.Name;
+
+ // Remove things enclosed in []{}() etc
+ name2 = _cleanEnclosed.Replace(name2, string.Empty);
- name = name.Trim();
+ // Replace sequences of non-word characters with space
+ name2 = _cleanNonWord.Replace(name2, " ");
+
+ // Clean based on common stop words / tokens
+ name2 = _cleanStopWords.Replace(name2, string.Empty);
+
+ // Trim whitespace
+ name2 = name2.Trim();
// Search again if the new name is different
- if (!string.Equals(name, originalName))
+ if (!string.Equals(name2, name) && !string.IsNullOrWhiteSpace(name2))
{
- results = await GetSearchResults(name, searchType, year, language, tmdbImageUrl, cancellationToken).ConfigureAwait(false);
+ _logger.LogInformation("TmdbSearch: Finding id for item: {0} ({1})", name2, year);
+ results = await GetSearchResults(name2, searchType, year, language, tmdbImageUrl, cancellationToken).ConfigureAwait(false);
if (results.Count == 0 && !string.Equals(language, "en", StringComparison.OrdinalIgnoreCase))
{
- //one more time, in english
- results = await GetSearchResults(name, searchType, year, "en", tmdbImageUrl, cancellationToken).ConfigureAwait(false);
-
+ // one more time, in english
+ results = await GetSearchResults(name2, searchType, year, "en", tmdbImageUrl, cancellationToken).ConfigureAwait(false);
}
}
}
@@ -150,7 +166,7 @@ namespace MediaBrowser.Providers.Tmdb.Movies
throw new ArgumentException("name");
}
- var url3 = string.Format(Search3, WebUtility.UrlEncode(name), TmdbUtils.ApiKey, language, type);
+ var url3 = string.Format(_searchURL, WebUtility.UrlEncode(name), TmdbUtils.ApiKey, language, type);
using (var response = await TmdbMovieProvider.Current.GetMovieDbResponse(new HttpRequestOptions
{
@@ -179,17 +195,16 @@ namespace MediaBrowser.Providers.Tmdb.Movies
if (!string.IsNullOrWhiteSpace(i.Release_Date))
{
// These dates are always in this exact format
- if (DateTime.TryParseExact(i.Release_Date, "yyyy-MM-dd", EnUs, DateTimeStyles.None, out var r))
+ if (DateTime.TryParseExact(i.Release_Date, "yyyy-MM-dd", _usCulture, DateTimeStyles.None, out var r))
{
remoteResult.PremiereDate = r.ToUniversalTime();
remoteResult.ProductionYear = remoteResult.PremiereDate.Value.Year;
}
}
- remoteResult.SetProviderId(MetadataProviders.Tmdb, i.Id.ToString(EnUs));
+ remoteResult.SetProviderId(MetadataProvider.Tmdb, i.Id.ToString(_usCulture));
return remoteResult;
-
})
.ToList();
}
@@ -203,14 +218,13 @@ namespace MediaBrowser.Providers.Tmdb.Movies
throw new ArgumentException("name");
}
- var url3 = string.Format(Search3, WebUtility.UrlEncode(name), TmdbUtils.ApiKey, language, "tv");
+ var url3 = string.Format(_searchURL, WebUtility.UrlEncode(name), TmdbUtils.ApiKey, language, "tv");
using (var response = await TmdbMovieProvider.Current.GetMovieDbResponse(new HttpRequestOptions
{
Url = url3,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -232,17 +246,16 @@ namespace MediaBrowser.Providers.Tmdb.Movies
if (!string.IsNullOrWhiteSpace(i.First_Air_Date))
{
// These dates are always in this exact format
- if (DateTime.TryParseExact(i.First_Air_Date, "yyyy-MM-dd", EnUs, DateTimeStyles.None, out var r))
+ if (DateTime.TryParseExact(i.First_Air_Date, "yyyy-MM-dd", _usCulture, DateTimeStyles.None, out var r))
{
remoteResult.PremiereDate = r.ToUniversalTime();
remoteResult.ProductionYear = remoteResult.PremiereDate.Value.Year;
}
}
- remoteResult.SetProviderId(MetadataProviders.Tmdb, i.Id.ToString(EnUs));
+ remoteResult.SetProviderId(MetadataProvider.Tmdb, i.Id.ToString(_usCulture));
return remoteResult;
-
})
.ToList();
}
diff --git a/MediaBrowser.Providers/Tmdb/Movies/TmdbSettings.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSettings.cs
index dca406b99..128258ab3 100644
--- a/MediaBrowser.Providers/Tmdb/Movies/TmdbSettings.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbSettings.cs
@@ -1,12 +1,17 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
-namespace MediaBrowser.Providers.Tmdb.Movies
+namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{
internal class TmdbImageSettings
{
public List<string> backdrop_sizes { get; set; }
+
public string secure_base_url { get; set; }
+
public List<string> poster_sizes { get; set; }
+
public List<string> profile_sizes { get; set; }
public string GetImageUrl(string image)
diff --git a/MediaBrowser.Providers/Tmdb/Music/TmdbMusicVideoProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/Music/TmdbMusicVideoProvider.cs
index 81909fa38..d4264dd4e 100644
--- a/MediaBrowser.Providers/Tmdb/Music/TmdbMusicVideoProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Music/TmdbMusicVideoProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Threading;
@@ -6,9 +8,9 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Providers;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.Music
+namespace MediaBrowser.Providers.Plugins.Tmdb.Music
{
public class TmdbMusicVideoProvider : IRemoteMetadataProvider<MusicVideo, MusicVideoInfo>
{
diff --git a/MediaBrowser.Providers/Tmdb/People/TmdbPersonExternalId.cs b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonExternalId.cs
index fa12a4581..de74a7a4c 100644
--- a/MediaBrowser.Providers/Tmdb/People/TmdbPersonExternalId.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonExternalId.cs
@@ -3,15 +3,18 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Tmdb.People
+namespace MediaBrowser.Providers.Plugins.Tmdb.People
{
+ /// <summary>
+ /// External ID for a TMDB person.
+ /// </summary>
public class TmdbPersonExternalId : IExternalId
{
/// <inheritdoc />
public string ProviderName => TmdbUtils.ProviderName;
/// <inheritdoc />
- public string Key => MetadataProviders.Tmdb.ToString();
+ public string Key => MetadataProvider.Tmdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Person;
diff --git a/MediaBrowser.Providers/Tmdb/People/TmdbPersonImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonImageProvider.cs
index e205d796a..2faa9f835 100644
--- a/MediaBrowser.Providers/Tmdb/People/TmdbPersonImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -10,11 +12,11 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Models.People;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.People;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.People
+namespace MediaBrowser.Providers.Plugins.Tmdb.People
{
public class TmdbPersonImageProvider : IRemoteImageProvider, IHasOrder
{
@@ -49,7 +51,7 @@ namespace MediaBrowser.Providers.Tmdb.People
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{
var person = (Person)item;
- var id = person.GetProviderId(MetadataProviders.Tmdb);
+ var id = person.GetProviderId(MetadataProvider.Tmdb);
if (!string.IsNullOrEmpty(id))
{
@@ -98,6 +100,7 @@ namespace MediaBrowser.Providers.Tmdb.People
{
return 3;
}
+
if (!isLanguageEn)
{
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@@ -105,10 +108,12 @@ namespace MediaBrowser.Providers.Tmdb.People
return 2;
}
}
+
if (string.IsNullOrEmpty(i.Language))
{
return isLanguageEn ? 3 : 2;
}
+
return 0;
})
.ThenByDescending(i => i.CommunityRating ?? 0)
diff --git a/MediaBrowser.Providers/Tmdb/People/TmdbPersonProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonProvider.cs
index 588001169..76d3f8224 100644
--- a/MediaBrowser.Providers/Tmdb/People/TmdbPersonProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/People/TmdbPersonProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -17,13 +19,13 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Models.People;
-using MediaBrowser.Providers.Tmdb.Models.Search;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.People;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.People
+namespace MediaBrowser.Providers.Plugins.Tmdb.People
{
public class TmdbPersonProvider : IRemoteMetadataProvider<Person, PersonLookupInfo>
{
@@ -35,7 +37,7 @@ namespace MediaBrowser.Providers.Tmdb.People
private readonly IFileSystem _fileSystem;
private readonly IServerConfigurationManager _configurationManager;
private readonly IHttpClient _httpClient;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbPersonProvider> _logger;
public TmdbPersonProvider(
IFileSystem fileSystem,
@@ -56,7 +58,7 @@ namespace MediaBrowser.Providers.Tmdb.People
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(PersonLookupInfo searchInfo, CancellationToken cancellationToken)
{
- var tmdbId = searchInfo.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = searchInfo.GetProviderId(MetadataProvider.Tmdb);
var tmdbSettings = await TmdbMovieProvider.Current.GetTmdbSettings(cancellationToken).ConfigureAwait(false);
@@ -80,8 +82,8 @@ namespace MediaBrowser.Providers.Tmdb.People
ImageUrl = images.Count == 0 ? null : (tmdbImageUrl + images[0].File_Path)
};
- result.SetProviderId(MetadataProviders.Tmdb, info.Id.ToString(_usCulture));
- result.SetProviderId(MetadataProviders.Imdb, info.Imdb_Id);
+ result.SetProviderId(MetadataProvider.Tmdb, info.Id.ToString(_usCulture));
+ result.SetProviderId(MetadataProvider.Imdb, info.Imdb_Id);
return new[] { result };
}
@@ -123,14 +125,14 @@ namespace MediaBrowser.Providers.Tmdb.People
ImageUrl = string.IsNullOrEmpty(i.Profile_Path) ? null : baseImageUrl + i.Profile_Path
};
- result.SetProviderId(MetadataProviders.Tmdb, i.Id.ToString(_usCulture));
+ result.SetProviderId(MetadataProvider.Tmdb, i.Id.ToString(_usCulture));
return result;
}
public async Task<MetadataResult<Person>> GetMetadata(PersonLookupInfo id, CancellationToken cancellationToken)
{
- var tmdbId = id.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = id.GetProviderId(MetadataProvider.Tmdb);
// We don't already have an Id, need to fetch it
if (string.IsNullOrEmpty(tmdbId))
@@ -167,12 +169,13 @@ namespace MediaBrowser.Providers.Tmdb.People
// TODO: This should go in PersonMetadataService, not each person provider
item.Name = id.Name;
- //item.HomePageUrl = info.homepage;
+ // item.HomePageUrl = info.homepage;
if (!string.IsNullOrWhiteSpace(info.Place_Of_Birth))
{
item.ProductionLocations = new string[] { info.Place_Of_Birth };
}
+
item.Overview = info.Biography;
if (DateTime.TryParseExact(info.Birthday, "yyyy-MM-dd", new CultureInfo("en-US"), DateTimeStyles.None, out var date))
@@ -185,11 +188,11 @@ namespace MediaBrowser.Providers.Tmdb.People
item.EndDate = date.ToUniversalTime();
}
- item.SetProviderId(MetadataProviders.Tmdb, info.Id.ToString(_usCulture));
+ item.SetProviderId(MetadataProvider.Tmdb, info.Id.ToString(_usCulture));
if (!string.IsNullOrEmpty(info.Imdb_Id))
{
- item.SetProviderId(MetadataProviders.Imdb, info.Imdb_Id);
+ item.SetProviderId(MetadataProvider.Imdb, info.Imdb_Id);
}
result.HasMetadata = true;
@@ -211,7 +214,7 @@ namespace MediaBrowser.Providers.Tmdb.People
{
var results = await GetSearchResults(info, cancellationToken).ConfigureAwait(false);
- return results.Select(i => i.GetProviderId(MetadataProviders.Tmdb)).FirstOrDefault();
+ return results.Select(i => i.GetProviderId(MetadataProvider.Tmdb)).FirstOrDefault();
}
internal async Task EnsurePersonInfo(string id, CancellationToken cancellationToken)
@@ -232,7 +235,6 @@ namespace MediaBrowser.Providers.Tmdb.People
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeImageProvider.cs
index 558c8149e..77e4b2c56 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,11 +15,11 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbEpisodeImageProvider :
TmdbEpisodeProviderBase,
@@ -41,7 +43,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
var episode = (Controller.Entities.TV.Episode)item;
var series = episode.Series;
- var seriesId = series != null ? series.GetProviderId(MetadataProviders.Tmdb) : null;
+ var seriesId = series != null ? series.GetProviderId(MetadataProvider.Tmdb) : null;
var list = new List<RemoteImageInfo>();
@@ -80,7 +82,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
RatingType = RatingType.Score
}));
-
var isLanguageEn = string.Equals(language, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i =>
@@ -89,6 +90,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
return 3;
}
+
if (!isLanguageEn)
{
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@@ -96,15 +98,16 @@ namespace MediaBrowser.Providers.Tmdb.TV
return 2;
}
}
+
if (string.IsNullOrEmpty(i.Language))
{
return isLanguageEn ? 3 : 2;
}
+
return 0;
})
.ThenByDescending(i => i.CommunityRating ?? 0)
.ThenByDescending(i => i.VoteCount ?? 0);
-
}
private IEnumerable<Still> GetPosters(StillImages images)
@@ -112,7 +115,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
return images.Stills ?? new List<Still>();
}
-
public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
{
return GetResponse(url, cancellationToken);
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProvider.cs
index a17f5d17a..0c55b91e0 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -18,7 +20,7 @@ using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbEpisodeProvider :
TmdbEpisodeProviderBase,
@@ -71,7 +73,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
return result;
}
- info.SeriesProviderIds.TryGetValue(MetadataProviders.Tmdb.ToString(), out string seriesTmdbId);
+ info.SeriesProviderIds.TryGetValue(MetadataProvider.Tmdb.ToString(), out string seriesTmdbId);
if (string.IsNullOrEmpty(seriesTmdbId))
{
@@ -109,7 +111,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (response.External_Ids.Tvdb_Id > 0)
{
- item.SetProviderId(MetadataProviders.Tvdb, response.External_Ids.Tvdb_Id.ToString(CultureInfo.InvariantCulture));
+ item.SetProviderId(MetadataProvider.Tvdb, response.External_Ids.Tvdb_Id.ToString(CultureInfo.InvariantCulture));
}
item.PremiereDate = response.Air_Date;
@@ -141,8 +143,8 @@ namespace MediaBrowser.Providers.Tmdb.TV
var credits = response.Credits;
if (credits != null)
{
- //Actors, Directors, Writers - all in People
- //actors come from cast
+ // Actors, Directors, Writers - all in People
+ // actors come from cast
if (credits.Cast != null)
{
foreach (var actor in credits.Cast.OrderBy(a => a.Order))
@@ -160,7 +162,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
}
}
- //and the rest from crew
+ // and the rest from crew
if (credits.Crew != null)
{
var keepTypes = new[]
@@ -203,6 +205,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
return GetResponse(url, cancellationToken);
}
+
// After TheTvDb
public int Order => 1;
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProviderBase.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProviderBase.cs
index e87fe9332..846e6095b 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbEpisodeProviderBase.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbEpisodeProviderBase.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Globalization;
using System.IO;
@@ -8,11 +10,11 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.TV;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public abstract class TmdbEpisodeProviderBase
{
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
private readonly IJsonSerializer _jsonSerializer;
private readonly IFileSystem _fileSystem;
private readonly ILocalizationManager _localization;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbEpisodeProviderBase> _logger;
protected TmdbEpisodeProviderBase(IHttpClient httpClient, IServerConfigurationManager configurationManager, IJsonSerializer jsonSerializer, IFileSystem fileSystem, ILocalizationManager localization, ILoggerFactory loggerFactory)
{
@@ -31,7 +33,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
_jsonSerializer = jsonSerializer;
_fileSystem = fileSystem;
_localization = localization;
- _logger = loggerFactory.CreateLogger(GetType().Name);
+ _logger = loggerFactory.CreateLogger<TmdbEpisodeProviderBase>();
}
protected ILogger Logger => _logger;
@@ -53,6 +55,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
throw new ArgumentNullException(nameof(tmdbId));
}
+
if (string.IsNullOrEmpty(language))
{
throw new ArgumentNullException(nameof(language));
@@ -80,6 +83,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
throw new ArgumentNullException(nameof(tmdbId));
}
+
if (string.IsNullOrEmpty(preferredLanguage))
{
throw new ArgumentNullException(nameof(preferredLanguage));
@@ -125,7 +129,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbSeasonImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonImageProvider.cs
index 698a43604..56b6e4483 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbSeasonImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -12,10 +14,10 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbSeasonImageProvider : IRemoteImageProvider, IHasOrder
{
@@ -48,7 +50,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
var season = (Season)item;
var series = season.Series;
- var seriesId = series?.GetProviderId(MetadataProviders.Tmdb);
+ var seriesId = series?.GetProviderId(MetadataProvider.Tmdb);
if (string.IsNullOrEmpty(seriesId))
{
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbSeasonProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonProvider.cs
index 5ad331971..11f21333c 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbSeasonProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeasonProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -14,12 +16,12 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.TV;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
using Season = MediaBrowser.Controller.Entities.TV.Season;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbSeasonProvider : IRemoteMetadataProvider<Season, SeasonInfo>
{
@@ -29,18 +31,18 @@ namespace MediaBrowser.Providers.Tmdb.TV
private readonly IJsonSerializer _jsonSerializer;
private readonly IFileSystem _fileSystem;
private readonly ILocalizationManager _localization;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbSeasonProvider> _logger;
internal static TmdbSeasonProvider Current { get; private set; }
- public TmdbSeasonProvider(IHttpClient httpClient, IServerConfigurationManager configurationManager, IFileSystem fileSystem, ILocalizationManager localization, IJsonSerializer jsonSerializer, ILoggerFactory loggerFactory)
+ public TmdbSeasonProvider(IHttpClient httpClient, IServerConfigurationManager configurationManager, IFileSystem fileSystem, ILocalizationManager localization, IJsonSerializer jsonSerializer, ILogger<TmdbSeasonProvider> logger)
{
_httpClient = httpClient;
_configurationManager = configurationManager;
_fileSystem = fileSystem;
_localization = localization;
_jsonSerializer = jsonSerializer;
- _logger = loggerFactory.CreateLogger(GetType().Name);
+ _logger = logger;
Current = this;
}
@@ -48,7 +50,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
var result = new MetadataResult<Season>();
- info.SeriesProviderIds.TryGetValue(MetadataProviders.Tmdb.ToString(), out string seriesTmdbId);
+ info.SeriesProviderIds.TryGetValue(MetadataProvider.Tmdb.ToString(), out string seriesTmdbId);
var seasonNumber = info.IndexNumber;
@@ -63,7 +65,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
result.Item = new Season();
// Don't use moviedb season names for now until if/when we have field-level configuration
- //result.Item.Name = seasonInfo.name;
+ // result.Item.Name = seasonInfo.name;
result.Item.Name = info.Name;
@@ -73,23 +75,23 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (seasonInfo.External_Ids.Tvdb_Id > 0)
{
- result.Item.SetProviderId(MetadataProviders.Tvdb, seasonInfo.External_Ids.Tvdb_Id.ToString(CultureInfo.InvariantCulture));
+ result.Item.SetProviderId(MetadataProvider.Tvdb, seasonInfo.External_Ids.Tvdb_Id.ToString(CultureInfo.InvariantCulture));
}
var credits = seasonInfo.Credits;
if (credits != null)
{
- //Actors, Directors, Writers - all in People
- //actors come from cast
+ // Actors, Directors, Writers - all in People
+ // actors come from cast
if (credits.Cast != null)
{
- //foreach (var actor in credits.cast.OrderBy(a => a.order)) result.Item.AddPerson(new PersonInfo { Name = actor.name.Trim(), Role = actor.character, Type = PersonType.Actor, SortOrder = actor.order });
+ // foreach (var actor in credits.cast.OrderBy(a => a.order)) result.Item.AddPerson(new PersonInfo { Name = actor.name.Trim(), Role = actor.character, Type = PersonType.Actor, SortOrder = actor.order });
}
- //and the rest from crew
+ // and the rest from crew
if (credits.Crew != null)
{
- //foreach (var person in credits.crew) result.Item.AddPerson(new PersonInfo { Name = person.name.Trim(), Role = person.job, Type = person.department });
+ // foreach (var person in credits.crew) result.Item.AddPerson(new PersonInfo { Name = person.name.Trim(), Role = person.job, Type = person.department });
}
}
@@ -145,6 +147,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
throw new ArgumentNullException(nameof(tmdbId));
}
+
if (string.IsNullOrEmpty(language))
{
throw new ArgumentNullException(nameof(language));
@@ -172,6 +175,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
throw new ArgumentNullException(nameof(tmdbId));
}
+
if (string.IsNullOrEmpty(preferredLanguage))
{
throw new ArgumentNullException(nameof(preferredLanguage));
@@ -216,7 +220,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesExternalId.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesExternalId.cs
index 8513dadd2..6ecc055d7 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesExternalId.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesExternalId.cs
@@ -3,15 +3,18 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
+ /// <summary>
+ /// External ID for a TMDB series.
+ /// </summary>
public class TmdbSeriesExternalId : IExternalId
{
/// <inheritdoc />
public string ProviderName => TmdbUtils.ProviderName;
/// <inheritdoc />
- public string Key => MetadataProviders.Tmdb.ToString();
+ public string Key => MetadataProvider.Tmdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Series;
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesImageProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesImageProvider.cs
index 0460fe994..95c451493 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesImageProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -12,11 +14,11 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.General;
-using MediaBrowser.Providers.Tmdb.Models.TV;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbSeriesImageProvider : IRemoteImageProvider, IHasOrder
{
@@ -99,6 +101,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
return 3;
}
+
if (!isLanguageEn)
{
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@@ -106,10 +109,12 @@ namespace MediaBrowser.Providers.Tmdb.TV
return 2;
}
}
+
if (string.IsNullOrEmpty(i.Language))
{
return isLanguageEn ? 3 : 2;
}
+
return 0;
})
.ThenByDescending(i => i.CommunityRating ?? 0)
@@ -148,7 +153,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
private async Task<Images> FetchImages(BaseItem item, string language, IJsonSerializer jsonSerializer,
CancellationToken cancellationToken)
{
- var tmdbId = item.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = item.GetProviderId(MetadataProvider.Tmdb);
if (string.IsNullOrEmpty(tmdbId))
{
@@ -171,6 +176,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
return null;
}
+
// After tvdb and fanart
public int Order => 2;
diff --git a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesProvider.cs
index 6e3c26c26..f142fd29c 100644
--- a/MediaBrowser.Providers/Tmdb/TV/TmdbSeriesProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TV/TmdbSeriesProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -17,12 +19,12 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Providers.Tmdb.Models.Search;
-using MediaBrowser.Providers.Tmdb.Models.TV;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging;
-namespace MediaBrowser.Providers.Tmdb.TV
+namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{
public class TmdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
{
@@ -31,7 +33,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
private readonly IJsonSerializer _jsonSerializer;
private readonly IFileSystem _fileSystem;
private readonly IServerConfigurationManager _configurationManager;
- private readonly ILogger _logger;
+ private readonly ILogger<TmdbSeriesProvider> _logger;
private readonly ILocalizationManager _localization;
private readonly IHttpClient _httpClient;
private readonly ILibraryManager _libraryManager;
@@ -63,7 +65,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(SeriesInfo searchInfo, CancellationToken cancellationToken)
{
- var tmdbId = searchInfo.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = searchInfo.GetProviderId(MetadataProvider.Tmdb);
if (!string.IsNullOrEmpty(tmdbId))
{
@@ -85,18 +87,18 @@ namespace MediaBrowser.Providers.Tmdb.TV
ImageUrl = string.IsNullOrWhiteSpace(obj.Poster_Path) ? null : tmdbImageUrl + obj.Poster_Path
};
- remoteResult.SetProviderId(MetadataProviders.Tmdb, obj.Id.ToString(_usCulture));
- remoteResult.SetProviderId(MetadataProviders.Imdb, obj.External_Ids.Imdb_Id);
+ remoteResult.SetProviderId(MetadataProvider.Tmdb, obj.Id.ToString(_usCulture));
+ remoteResult.SetProviderId(MetadataProvider.Imdb, obj.External_Ids.Imdb_Id);
if (obj.External_Ids.Tvdb_Id > 0)
{
- remoteResult.SetProviderId(MetadataProviders.Tvdb, obj.External_Ids.Tvdb_Id.ToString(_usCulture));
+ remoteResult.SetProviderId(MetadataProvider.Tvdb, obj.External_Ids.Tvdb_Id.ToString(_usCulture));
}
return new[] { remoteResult };
}
- var imdbId = searchInfo.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = searchInfo.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
@@ -108,7 +110,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
}
}
- var tvdbId = searchInfo.GetProviderId(MetadataProviders.Tvdb);
+ var tvdbId = searchInfo.GetProviderId(MetadataProvider.Tvdb);
if (!string.IsNullOrEmpty(tvdbId))
{
@@ -128,11 +130,11 @@ namespace MediaBrowser.Providers.Tmdb.TV
var result = new MetadataResult<Series>();
result.QueriedById = true;
- var tmdbId = info.GetProviderId(MetadataProviders.Tmdb);
+ var tmdbId = info.GetProviderId(MetadataProvider.Tmdb);
if (string.IsNullOrEmpty(tmdbId))
{
- var imdbId = info.GetProviderId(MetadataProviders.Imdb);
+ var imdbId = info.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
@@ -140,14 +142,14 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (searchResult != null)
{
- tmdbId = searchResult.GetProviderId(MetadataProviders.Tmdb);
+ tmdbId = searchResult.GetProviderId(MetadataProvider.Tmdb);
}
}
}
if (string.IsNullOrEmpty(tmdbId))
{
- var tvdbId = info.GetProviderId(MetadataProviders.Tvdb);
+ var tvdbId = info.GetProviderId(MetadataProvider.Tvdb);
if (!string.IsNullOrEmpty(tvdbId))
{
@@ -155,7 +157,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (searchResult != null)
{
- tmdbId = searchResult.GetProviderId(MetadataProviders.Tmdb);
+ tmdbId = searchResult.GetProviderId(MetadataProvider.Tmdb);
}
}
}
@@ -169,7 +171,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (searchResult != null)
{
- tmdbId = searchResult.GetProviderId(MetadataProviders.Tmdb);
+ tmdbId = searchResult.GetProviderId(MetadataProvider.Tmdb);
}
}
@@ -219,7 +221,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
series.Name = seriesInfo.Name;
series.OriginalTitle = seriesInfo.Original_Name;
- series.SetProviderId(MetadataProviders.Tmdb, seriesInfo.Id.ToString(_usCulture));
+ series.SetProviderId(MetadataProvider.Tmdb, seriesInfo.Id.ToString(_usCulture));
string voteAvg = seriesInfo.Vote_Average.ToString(CultureInfo.InvariantCulture);
@@ -261,15 +263,17 @@ namespace MediaBrowser.Providers.Tmdb.TV
{
if (!string.IsNullOrWhiteSpace(ids.Imdb_Id))
{
- series.SetProviderId(MetadataProviders.Imdb, ids.Imdb_Id);
+ series.SetProviderId(MetadataProvider.Imdb, ids.Imdb_Id);
}
+
if (ids.Tvrage_Id > 0)
{
- series.SetProviderId(MetadataProviders.TvRage, ids.Tvrage_Id.ToString(_usCulture));
+ series.SetProviderId(MetadataProvider.TvRage, ids.Tvrage_Id.ToString(_usCulture));
}
+
if (ids.Tvdb_Id > 0)
{
- series.SetProviderId(MetadataProviders.Tvdb, ids.Tvdb_Id.ToString(_usCulture));
+ series.SetProviderId(MetadataProvider.Tvdb, ids.Tvdb_Id.ToString(_usCulture));
}
}
@@ -329,7 +333,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
if (actor.Id > 0)
{
- personInfo.SetProviderId(MetadataProviders.Tmdb, actor.Id.ToString(CultureInfo.InvariantCulture));
+ personInfo.SetProviderId(MetadataProvider.Tmdb, actor.Id.ToString(CultureInfo.InvariantCulture));
}
seriesResult.AddPerson(personInfo);
@@ -416,7 +420,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -453,7 +456,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -518,7 +520,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url,
CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader
-
}).ConfigureAwait(false))
{
using (var json = response.Content)
@@ -541,7 +542,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
ImageUrl = string.IsNullOrWhiteSpace(tv.Poster_Path) ? null : tmdbImageUrl + tv.Poster_Path
};
- remoteResult.SetProviderId(MetadataProviders.Tmdb, tv.Id.ToString(_usCulture));
+ remoteResult.SetProviderId(MetadataProvider.Tmdb, tv.Id.ToString(_usCulture));
return remoteResult;
}
diff --git a/MediaBrowser.Providers/Tmdb/TmdbUtils.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs
index 7dacc7404..2f1e8b791 100644
--- a/MediaBrowser.Providers/Tmdb/TmdbUtils.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs
@@ -1,11 +1,11 @@
using System;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Providers.Tmdb.Models.General;
+using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
-namespace MediaBrowser.Providers.Tmdb
+namespace MediaBrowser.Providers.Plugins.Tmdb
{
/// <summary>
- /// Utilities for the TMDb provider
+ /// Utilities for the TMDb provider.
/// </summary>
public static class TmdbUtils
{
diff --git a/MediaBrowser.Providers/Tmdb/Trailers/TmdbTrailerProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/Trailers/TmdbTrailerProvider.cs
index b15de0125..7e2b06257 100644
--- a/MediaBrowser.Providers/Tmdb/Trailers/TmdbTrailerProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Tmdb/Trailers/TmdbTrailerProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -5,9 +7,9 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Providers;
-using MediaBrowser.Providers.Tmdb.Movies;
+using MediaBrowser.Providers.Plugins.Tmdb.Movies;
-namespace MediaBrowser.Providers.Tmdb.Trailers
+namespace MediaBrowser.Providers.Plugins.Tmdb.Trailers
{
public class TmdbTrailerProvider : IHasOrder, IRemoteMetadataProvider<Trailer, TrailerInfo>
{
diff --git a/MediaBrowser.Providers/Studios/StudioMetadataService.cs b/MediaBrowser.Providers/Studios/StudioMetadataService.cs
index 847e47f1b..78042b40d 100644
--- a/MediaBrowser.Providers/Studios/StudioMetadataService.cs
+++ b/MediaBrowser.Providers/Studios/StudioMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -21,7 +23,7 @@ namespace MediaBrowser.Providers.Studios
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Studio> source, MetadataResult<Studio> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Studio> source, MetadataResult<Studio> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Studios/StudiosImageProvider.cs b/MediaBrowser.Providers/Studios/StudiosImageProvider.cs
index cbef27a09..25f8beb40 100644
--- a/MediaBrowser.Providers/Studios/StudiosImageProvider.cs
+++ b/MediaBrowser.Providers/Studios/StudiosImageProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -201,6 +203,5 @@ namespace MediaBrowser.Providers.Studios
}
}
}
-
}
}
diff --git a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs
index 127d29c04..3510b90cf 100644
--- a/MediaBrowser.Providers/Subtitles/SubtitleManager.cs
+++ b/MediaBrowser.Providers/Subtitles/SubtitleManager.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -25,7 +27,7 @@ namespace MediaBrowser.Providers.Subtitles
{
public class SubtitleManager : ISubtitleManager
{
- private readonly ILogger _logger;
+ private readonly ILogger<SubtitleManager> _logger;
private readonly IFileSystem _fileSystem;
private readonly ILibraryMonitor _monitor;
private readonly IMediaSourceManager _mediaSourceManager;
@@ -104,6 +106,7 @@ namespace MediaBrowser.Providers.Subtitles
_logger.LogError(ex, "Error downloading subtitles from {Provider}", provider.Name);
}
}
+
return Array.Empty<RemoteSubtitleInfo>();
}
@@ -311,7 +314,6 @@ namespace MediaBrowser.Providers.Subtitles
Index = index,
ItemId = item.Id,
Type = MediaStreamType.Subtitle
-
}).First();
var path = stream.Path;
@@ -365,9 +367,7 @@ namespace MediaBrowser.Providers.Subtitles
{
Name = i.Name,
Id = GetProviderId(i.Name)
-
}).ToArray();
}
-
}
}
diff --git a/MediaBrowser.Providers/TV/DummySeasonProvider.cs b/MediaBrowser.Providers/TV/DummySeasonProvider.cs
index 6a1e6df8f..df09d13dd 100644
--- a/MediaBrowser.Providers/TV/DummySeasonProvider.cs
+++ b/MediaBrowser.Providers/TV/DummySeasonProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
@@ -40,11 +42,11 @@ namespace MediaBrowser.Providers.TV
if (hasNewSeasons)
{
- //var directoryService = new DirectoryService(_fileSystem);
+ // var directoryService = new DirectoryService(_fileSystem);
- //await series.RefreshMetadata(new MetadataRefreshOptions(directoryService), cancellationToken).ConfigureAwait(false);
+ // await series.RefreshMetadata(new MetadataRefreshOptions(directoryService), cancellationToken).ConfigureAwait(false);
- //await series.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(directoryService))
+ // await series.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(directoryService))
// .ConfigureAwait(false);
}
@@ -72,6 +74,7 @@ namespace MediaBrowser.Providers.TV
{
seasons = series.Children.OfType<Season>().ToList();
}
+
var existingSeason = seasons
.FirstOrDefault(i => i.IndexNumber.HasValue && i.IndexNumber.Value == seasonNumber);
diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
index 758c47ba0..170f1bdd8 100644
--- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
+++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.TV;
@@ -66,7 +68,7 @@ namespace MediaBrowser.Providers.TV
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Episode> source, MetadataResult<Episode> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
index 0721c4bb4..09850beb0 100644
--- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -46,7 +48,7 @@ namespace MediaBrowser.Providers.TV
public async Task<bool> Run(Series series, bool addNewItems, CancellationToken cancellationToken)
{
- var tvdbId = series.GetProviderId(MetadataProviders.Tvdb);
+ var tvdbId = series.GetProviderId(MetadataProvider.Tvdb);
if (string.IsNullOrEmpty(tvdbId))
{
return false;
@@ -108,7 +110,7 @@ namespace MediaBrowser.Providers.TV
/// <summary>
/// Returns true if a series has any seasons or episodes without season or episode numbers
- /// If this data is missing no virtual items will be added in order to prevent possible duplicates
+ /// If this data is missing no virtual items will be added in order to prevent possible duplicates.
/// </summary>
private bool HasInvalidContent(IList<BaseItem> allItems)
{
@@ -171,7 +173,7 @@ namespace MediaBrowser.Providers.TV
}
/// <summary>
- /// Removes the virtual entry after a corresponding physical version has been added
+ /// Removes the virtual entry after a corresponding physical version has been added.
/// </summary>
private bool RemoveObsoleteOrMissingEpisodes(
IEnumerable<BaseItem> allRecursiveChildren,
diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
index eb8032e0e..5431de623 100644
--- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs
+++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Linq;
@@ -86,7 +88,7 @@ namespace MediaBrowser.Providers.TV
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Season> source, MetadataResult<Season> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs
index 5e75a8125..4181d37ef 100644
--- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs
+++ b/MediaBrowser.Providers/TV/SeriesMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Threading;
using System.Threading.Tasks;
@@ -42,7 +44,8 @@ namespace MediaBrowser.Providers.TV
await seasonProvider.Run(item, cancellationToken).ConfigureAwait(false);
// TODO why does it not register this itself omg
- var provider = new MissingEpisodeProvider(Logger,
+ var provider = new MissingEpisodeProvider(
+ Logger,
ServerConfigurationManager,
LibraryManager,
_localization,
@@ -66,15 +69,17 @@ namespace MediaBrowser.Providers.TV
{
return false;
}
+
if (!item.ProductionYear.HasValue)
{
return false;
}
+
return base.IsFullLocalMetadata(item);
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Series> source, MetadataResult<Series> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Series> source, MetadataResult<Series> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
diff --git a/MediaBrowser.Providers/TV/TvExternalIds.cs b/MediaBrowser.Providers/TV/TvExternalIds.cs
index 2bf6020dd..a6040edd1 100644
--- a/MediaBrowser.Providers/TV/TvExternalIds.cs
+++ b/MediaBrowser.Providers/TV/TvExternalIds.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
@@ -12,7 +14,7 @@ namespace MediaBrowser.Providers.TV
public string ProviderName => "Zap2It";
/// <inheritdoc />
- public string Key => MetadataProviders.Zap2It.ToString();
+ public string Key => MetadataProvider.Zap2It.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => null;
@@ -30,7 +32,7 @@ namespace MediaBrowser.Providers.TV
public string ProviderName => "TheTVDB";
/// <inheritdoc />
- public string Key => MetadataProviders.Tvdb.ToString();
+ public string Key => MetadataProvider.Tvdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => null;
@@ -40,7 +42,6 @@ namespace MediaBrowser.Providers.TV
/// <inheritdoc />
public bool Supports(IHasProviderIds item) => item is Series;
-
}
public class TvdbSeasonExternalId : IExternalId
@@ -49,7 +50,7 @@ namespace MediaBrowser.Providers.TV
public string ProviderName => "TheTVDB";
/// <inheritdoc />
- public string Key => MetadataProviders.Tvdb.ToString();
+ public string Key => MetadataProvider.Tvdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Season;
@@ -67,7 +68,7 @@ namespace MediaBrowser.Providers.TV
public string ProviderName => "TheTVDB";
/// <inheritdoc />
- public string Key => MetadataProviders.Tvdb.ToString();
+ public string Key => MetadataProvider.Tvdb.ToString();
/// <inheritdoc />
public ExternalIdMediaType? Type => ExternalIdMediaType.Episode;
diff --git a/MediaBrowser.Providers/Tmdb/Models/People/PersonImages.cs b/MediaBrowser.Providers/Tmdb/Models/People/PersonImages.cs
deleted file mode 100644
index 113f410b2..000000000
--- a/MediaBrowser.Providers/Tmdb/Models/People/PersonImages.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
-
-namespace MediaBrowser.Providers.Tmdb.Models.People
-{
- public class PersonImages
- {
- public List<Profile> Profiles { get; set; }
- }
-}
diff --git a/MediaBrowser.Providers/Tmdb/Models/TV/SeasonImages.cs b/MediaBrowser.Providers/Tmdb/Models/TV/SeasonImages.cs
deleted file mode 100644
index 9a93dd6ae..000000000
--- a/MediaBrowser.Providers/Tmdb/Models/TV/SeasonImages.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Collections.Generic;
-using MediaBrowser.Providers.Tmdb.Models.General;
-
-namespace MediaBrowser.Providers.Tmdb.Models.TV
-{
- public class SeasonImages
- {
- public List<Poster> Posters { get; set; }
- }
-}
diff --git a/MediaBrowser.Providers/Users/UserMetadataService.cs b/MediaBrowser.Providers/Users/UserMetadataService.cs
deleted file mode 100644
index fb6c91b6c..000000000
--- a/MediaBrowser.Providers/Users/UserMetadataService.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.IO;
-using MediaBrowser.Providers.Manager;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.Providers.Users
-{
- public class UserMetadataService : MetadataService<User, ItemLookupInfo>
- {
- public UserMetadataService(
- IServerConfigurationManager serverConfigurationManager,
- ILogger<UserMetadataService> logger,
- IProviderManager providerManager,
- IFileSystem fileSystem,
- ILibraryManager libraryManager)
- : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
- {
- }
-
- /// <inheritdoc />
- protected override void MergeData(MetadataResult<User> source, MetadataResult<User> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
- {
- ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
- }
- }
-}
diff --git a/MediaBrowser.Providers/Videos/VideoMetadataService.cs b/MediaBrowser.Providers/Videos/VideoMetadataService.cs
index 21378ada0..31c7eaac4 100644
--- a/MediaBrowser.Providers/Videos/VideoMetadataService.cs
+++ b/MediaBrowser.Providers/Videos/VideoMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -26,7 +28,7 @@ namespace MediaBrowser.Providers.Videos
public override int Order => 10;
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Video> source, MetadataResult<Video> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Video> source, MetadataResult<Video> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}
diff --git a/MediaBrowser.Providers/Years/YearMetadataService.cs b/MediaBrowser.Providers/Years/YearMetadataService.cs
index 2a0fa19ea..6151d12e9 100644
--- a/MediaBrowser.Providers/Years/YearMetadataService.cs
+++ b/MediaBrowser.Providers/Years/YearMetadataService.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -22,7 +24,7 @@ namespace MediaBrowser.Providers.Years
}
/// <inheritdoc />
- protected override void MergeData(MetadataResult<Year> source, MetadataResult<Year> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)
+ protected override void MergeData(MetadataResult<Year> source, MetadataResult<Year> target, MetadataField[] lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
}