merge branch master into custom-repos

This commit is contained in:
dkanada 2020-06-07 21:23:15 +09:00
commit 52cd955a8f
92 changed files with 428 additions and 210 deletions

View file

@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -18,8 +20,14 @@ using MediaBrowser.Model.Querying;
namespace Emby.Server.Implementations.Images namespace Emby.Server.Implementations.Images
{ {
/// <summary>
/// Class ArtistImageProvider.
/// </summary>
public class ArtistImageProvider : BaseDynamicImageProvider<MusicArtist> public class ArtistImageProvider : BaseDynamicImageProvider<MusicArtist>
{ {
/// <summary>
/// The library manager.
/// </summary>
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public ArtistImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor) public ArtistImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor)
@ -27,6 +35,11 @@ namespace Emby.Server.Implementations.Images
_libraryManager = libraryManager; _libraryManager = libraryManager;
} }
/// <summary>
/// Get children objects used to create an artist image.
/// </summary>
/// <param name="item">The artist used to create the image.</param>
/// <returns>Any relevant children objects.</returns>
protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item) protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item)
{ {
return Array.Empty<BaseItem>(); return Array.Empty<BaseItem>();

View file

@ -1,7 +1,6 @@
using System; #pragma warning disable CS1591
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Emby.Server.Implementations.Images;
using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
@ -10,7 +9,6 @@ using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
@ -18,8 +16,14 @@ using MediaBrowser.Model.Querying;
namespace Emby.Server.Implementations.Images namespace Emby.Server.Implementations.Images
{ {
/// <summary>
/// Class MusicGenreImageProvider.
/// </summary>
public class MusicGenreImageProvider : BaseDynamicImageProvider<MusicGenre> public class MusicGenreImageProvider : BaseDynamicImageProvider<MusicGenre>
{ {
/// <summary>
/// The library manager.
/// </summary>
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public MusicGenreImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor) public MusicGenreImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor)
@ -27,6 +31,11 @@ namespace Emby.Server.Implementations.Images
_libraryManager = libraryManager; _libraryManager = libraryManager;
} }
/// <summary>
/// Get children objects used to create an music genre image.
/// </summary>
/// <param name="item">The music genre used to create the image.</param>
/// <returns>Any relevant children objects.</returns>
protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item) protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item)
{ {
return _libraryManager.GetItemList(new InternalItemsQuery return _libraryManager.GetItemList(new InternalItemsQuery
@ -42,8 +51,14 @@ namespace Emby.Server.Implementations.Images
} }
} }
/// <summary>
/// Class GenreImageProvider.
/// </summary>
public class GenreImageProvider : BaseDynamicImageProvider<Genre> public class GenreImageProvider : BaseDynamicImageProvider<Genre>
{ {
/// <summary>
/// The library manager.
/// </summary>
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
public GenreImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor) public GenreImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IApplicationPaths applicationPaths, IImageProcessor imageProcessor, ILibraryManager libraryManager) : base(fileSystem, providerManager, applicationPaths, imageProcessor)
@ -51,6 +66,11 @@ namespace Emby.Server.Implementations.Images
_libraryManager = libraryManager; _libraryManager = libraryManager;
} }
/// <summary>
/// Get children objects used to create an genre image.
/// </summary>
/// <param name="item">The genre used to create the image.</param>
/// <returns>Any relevant children objects.</returns>
protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item) protected override IReadOnlyList<BaseItem> GetItemsWithImages(BaseItem item)
{ {
return _libraryManager.GetItemList(new InternalItemsQuery return _libraryManager.GetItemList(new InternalItemsQuery

View file

@ -101,5 +101,18 @@
"TaskRefreshLibrary": "Skann mediebibliotek", "TaskRefreshLibrary": "Skann mediebibliotek",
"TaskRefreshChapterImagesDescription": "Lager forhåndsvisningsbilder for videoer som har kapitler.", "TaskRefreshChapterImagesDescription": "Lager forhåndsvisningsbilder for videoer som har kapitler.",
"TaskRefreshChapterImages": "Trekk ut Kapittelbilder", "TaskRefreshChapterImages": "Trekk ut Kapittelbilder",
"TaskCleanCacheDescription": "Sletter mellomlagrede filer som ikke lengre trengs av systemet." "TaskCleanCacheDescription": "Sletter mellomlagrede filer som ikke lengre trengs av systemet.",
"TaskDownloadMissingSubtitlesDescription": "Søker etter manglende underteksting på nett basert på metadatakonfigurasjon.",
"TaskDownloadMissingSubtitles": "Last ned manglende underteksting",
"TaskRefreshChannelsDescription": "Frisker opp internettkanalinformasjon.",
"TaskRefreshChannels": "Oppfrisk kanaler",
"TaskCleanTranscodeDescription": "Sletter omkodede filer som er mer enn én dag gamle.",
"TaskCleanTranscode": "Tøm transkodingmappe",
"TaskUpdatePluginsDescription": "Laster ned og installerer oppdateringer for utvidelser som er stilt inn til å oppdatere automatisk.",
"TaskUpdatePlugins": "Oppdater utvidelser",
"TaskRefreshPeopleDescription": "Oppdaterer metadata for skuespillere og regissører i mediebiblioteket ditt.",
"TaskRefreshPeople": "Oppfrisk personer",
"TaskCleanLogsDescription": "Sletter loggfiler som er eldre enn {0} dager gamle.",
"TaskCleanLogs": "Tøm loggmappe",
"TaskRefreshLibraryDescription": "Skanner mediebibliotekene dine for nye filer og oppdaterer metadata."
} }

View file

@ -113,5 +113,6 @@
"TasksChannelsCategory": "Spletni kanali", "TasksChannelsCategory": "Spletni kanali",
"TasksApplicationCategory": "Aplikacija", "TasksApplicationCategory": "Aplikacija",
"TasksLibraryCategory": "Knjižnica", "TasksLibraryCategory": "Knjižnica",
"TasksMaintenanceCategory": "Vzdrževanje" "TasksMaintenanceCategory": "Vzdrževanje",
"TaskDownloadMissingSubtitlesDescription": "Na podlagi nastavitev metapodatkov poišče manjkajoče podnapise na internetu."
} }

View file

@ -4,7 +4,6 @@
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile> <GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors Condition=" '$(Configuration)' == 'Release' ">true</TreatWarningsAsErrors>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

View file

@ -872,9 +872,8 @@ namespace MediaBrowser.Api.Playback.Hls
if (framerate.HasValue) if (framerate.HasValue)
{ {
builder.Append(",FRAME-RATE=\"") builder.Append(",FRAME-RATE=")
.Append(framerate.Value) .Append(framerate.Value);
.Append('"');
} }
} }
@ -888,11 +887,10 @@ namespace MediaBrowser.Api.Playback.Hls
{ {
if (state.OutputWidth.HasValue && state.OutputHeight.HasValue) if (state.OutputWidth.HasValue && state.OutputHeight.HasValue)
{ {
builder.Append(",RESOLUTION=\"") builder.Append(",RESOLUTION=")
.Append(state.OutputWidth.GetValueOrDefault()) .Append(state.OutputWidth.GetValueOrDefault())
.Append('x') .Append('x')
.Append(state.OutputHeight.GetValueOrDefault()) .Append(state.OutputHeight.GetValueOrDefault());
.Append('"');
} }
} }

View file

@ -320,24 +320,24 @@ namespace MediaBrowser.Model.Configuration
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicVideo", ItemType = "MusicVideo",
DisabledMetadataFetchers = new [] { "The Open Movie Database" }, DisabledMetadataFetchers = new[] { "The Open Movie Database" },
DisabledImageFetchers = new [] { "The Open Movie Database" } DisabledImageFetchers = new[] { "The Open Movie Database" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "Series", ItemType = "Series",
DisabledMetadataFetchers = new [] { "TheMovieDb" }, DisabledMetadataFetchers = new[] { "TheMovieDb" },
DisabledImageFetchers = new [] { "TheMovieDb" } DisabledImageFetchers = new[] { "TheMovieDb" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicAlbum", ItemType = "MusicAlbum",
DisabledMetadataFetchers = new [] { "TheAudioDB" } DisabledMetadataFetchers = new[] { "TheAudioDB" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicArtist", ItemType = "MusicArtist",
DisabledMetadataFetchers = new [] { "TheAudioDB" } DisabledMetadataFetchers = new[] { "TheAudioDB" }
}, },
new MetadataOptions new MetadataOptions
{ {
@ -346,13 +346,13 @@ namespace MediaBrowser.Model.Configuration
new MetadataOptions new MetadataOptions
{ {
ItemType = "Season", ItemType = "Season",
DisabledMetadataFetchers = new [] { "TheMovieDb" }, DisabledMetadataFetchers = new[] { "TheMovieDb" },
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "Episode", ItemType = "Episode",
DisabledMetadataFetchers = new [] { "The Open Movie Database", "TheMovieDb" }, DisabledMetadataFetchers = new[] { "The Open Movie Database", "TheMovieDb" },
DisabledImageFetchers = new [] { "The Open Movie Database", "TheMovieDb" } DisabledImageFetchers = new[] { "The Open Movie Database", "TheMovieDb" }
} }
}; };
} }

View file

@ -0,0 +1,9 @@
using MediaBrowser.Model.Plugins;
namespace MediaBrowser.Providers.Plugins.Omdb
{
public class PluginConfiguration : BasePluginConfiguration
{
public bool CastAndCrew { get; set; }
}
}

View file

@ -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>

View file

@ -92,6 +92,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{ {
return item is Movie || item is Trailer || item is Episode; return item is Movie || item is Trailer || item is Episode;
} }
// After other internet providers, because they're better // After other internet providers, because they're better
// But before fallback providers like screengrab // But before fallback providers like screengrab
public int Order => 90; public int Order => 90;

View file

@ -103,6 +103,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{ {
urlQuery += "&t=" + WebUtility.UrlEncode(name); urlQuery += "&t=" + WebUtility.UrlEncode(name);
} }
urlQuery += "&type=" + type; urlQuery += "&type=" + type;
} }
else else
@ -117,6 +118,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{ {
urlQuery += string.Format(CultureInfo.InvariantCulture, "&Episode={0}", searchInfo.IndexNumber); urlQuery += string.Format(CultureInfo.InvariantCulture, "&Episode={0}", searchInfo.IndexNumber);
} }
if (searchInfo.ParentIndexNumber.HasValue) if (searchInfo.ParentIndexNumber.HasValue)
{ {
urlQuery += string.Format(CultureInfo.InvariantCulture, "&Season={0}", searchInfo.ParentIndexNumber); urlQuery += string.Format(CultureInfo.InvariantCulture, "&Season={0}", searchInfo.ParentIndexNumber);

View file

@ -87,10 +87,10 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.CommunityRating = imdbRating; item.CommunityRating = imdbRating;
} }
//if (!string.IsNullOrEmpty(result.Website)) if (!string.IsNullOrEmpty(result.Website))
//{ {
// item.HomePageUrl = result.Website; item.HomePageUrl = result.Website;
//} }
if (!string.IsNullOrWhiteSpace(result.imdbID)) if (!string.IsNullOrWhiteSpace(result.imdbID))
{ {
@ -121,7 +121,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
if (!string.IsNullOrWhiteSpace(episodeImdbId)) 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)) if (string.Equals(episodeImdbId, episode.imdbID, StringComparison.OrdinalIgnoreCase))
{ {
@ -134,7 +134,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
// finally, search by numbers // finally, search by numbers
if (result == null) if (result == null)
{ {
foreach (var episode in (seasonResult.Episodes ?? new RootObject[] { })) foreach (var episode in seasonResult.Episodes)
{ {
if (episode.Episode == episodeNumber) if (episode.Episode == episodeNumber)
{ {
@ -188,10 +188,10 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.CommunityRating = imdbRating; item.CommunityRating = imdbRating;
} }
//if (!string.IsNullOrEmpty(result.Website)) if (!string.IsNullOrEmpty(result.Website))
//{ {
// item.HomePageUrl = result.Website; item.HomePageUrl = result.Website;
//} }
if (!string.IsNullOrWhiteSpace(result.imdbID)) if (!string.IsNullOrWhiteSpace(result.imdbID))
{ {
@ -263,6 +263,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
{ {
return url; return url;
} }
return url + "&" + query; return url + "&" + query;
} }
@ -386,7 +387,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb
var isConfiguredForEnglish = IsConfiguredForEnglish(item) || _configurationManager.Configuration.EnableNewOmdbSupport; 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 // But only do it if english is the preferred language because this data will not be localized
if (isConfiguredForEnglish && !string.IsNullOrWhiteSpace(result.Genre)) if (isConfiguredForEnglish && !string.IsNullOrWhiteSpace(result.Genre))
{ {
@ -407,45 +408,50 @@ namespace MediaBrowser.Providers.Plugins.Omdb
item.Overview = result.Plot; item.Overview = result.Plot;
} }
//if (!string.IsNullOrWhiteSpace(result.Director)) if (!Plugin.Instance.Configuration.CastAndCrew)
//{ {
// var person = new PersonInfo return;
// { }
// Name = result.Director.Trim(),
// Type = PersonType.Director
// };
// itemResult.AddPerson(person); if (!string.IsNullOrWhiteSpace(result.Director))
//} {
var person = new PersonInfo
{
Name = result.Director.Trim(),
Type = PersonType.Director
};
//if (!string.IsNullOrWhiteSpace(result.Writer)) itemResult.AddPerson(person);
//{ }
// var person = new PersonInfo
// {
// Name = result.Director.Trim(),
// Type = PersonType.Writer
// };
// itemResult.AddPerson(person); if (!string.IsNullOrWhiteSpace(result.Writer))
//} {
var person = new PersonInfo
{
Name = result.Director.Trim(),
Type = PersonType.Writer
};
//if (!string.IsNullOrWhiteSpace(result.Actors)) itemResult.AddPerson(person);
//{ }
// 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 (!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) private bool IsConfiguredForEnglish(BaseItem item)
@ -459,40 +465,70 @@ namespace MediaBrowser.Providers.Plugins.Omdb
internal class SeasonRootObject internal class SeasonRootObject
{ {
public string Title { get; set; } public string Title { get; set; }
public string seriesID { get; set; } public string seriesID { get; set; }
public int Season { get; set; } public int Season { get; set; }
public int? totalSeasons { get; set; } public int? totalSeasons { get; set; }
public RootObject[] Episodes { get; set; } public RootObject[] Episodes { get; set; }
public string Response { get; set; } public string Response { get; set; }
} }
internal class RootObject internal class RootObject
{ {
public string Title { get; set; } public string Title { get; set; }
public string Year { get; set; } public string Year { get; set; }
public string Rated { get; set; } public string Rated { get; set; }
public string Released { get; set; } public string Released { get; set; }
public string Runtime { get; set; } public string Runtime { get; set; }
public string Genre { get; set; } public string Genre { get; set; }
public string Director { get; set; } public string Director { get; set; }
public string Writer { get; set; } public string Writer { get; set; }
public string Actors { get; set; } public string Actors { get; set; }
public string Plot { get; set; } public string Plot { get; set; }
public string Language { get; set; } public string Language { get; set; }
public string Country { get; set; } public string Country { get; set; }
public string Awards { get; set; } public string Awards { get; set; }
public string Poster { get; set; } public string Poster { get; set; }
public List<OmdbRating> Ratings { get; set; } public List<OmdbRating> Ratings { get; set; }
public string Metascore { get; set; } public string Metascore { get; set; }
public string imdbRating { get; set; } public string imdbRating { get; set; }
public string imdbVotes { get; set; } public string imdbVotes { get; set; }
public string imdbID { get; set; } public string imdbID { get; set; }
public string Type { get; set; } public string Type { get; set; }
public string DVD { get; set; } public string DVD { get; set; }
public string BoxOffice { get; set; } public string BoxOffice { get; set; }
public string Production { get; set; } public string Production { get; set; }
public string Website { get; set; } public string Website { get; set; }
public string Response { get; set; } public string Response { get; set; }
public int Episode { get; set; } public int Episode { get; set; }
public float? GetRottenTomatoScore() public float? GetRottenTomatoScore()
@ -509,12 +545,15 @@ namespace MediaBrowser.Providers.Plugins.Omdb
} }
} }
} }
return null; return null;
} }
} }
public class OmdbRating public class OmdbRating
{ {
public string Source { get; set; } public string Source { get; set; }
public string Value { get; set; } public string Value { get; set; }
} }
} }

View file

@ -0,0 +1,35 @@
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"
};
}
}
}

View file

@ -0,0 +1,8 @@
using MediaBrowser.Model.Plugins;
namespace MediaBrowser.Providers.Plugins.TheTvdb
{
public class PluginConfiguration : BasePluginConfiguration
{
}
}

View file

@ -0,0 +1,24 @@
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;
}
}
}

View file

@ -120,6 +120,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
var cacheKey = GenerateKey("series", zap2ItId, language); var cacheKey = GenerateKey("series", zap2ItId, language);
return TryGetValue(cacheKey, language, () => TvDbClient.Search.SearchSeriesByZap2ItIdAsync(zap2ItId, cancellationToken)); return TryGetValue(cacheKey, language, () => TvDbClient.Search.SearchSeriesByZap2ItIdAsync(zap2ItId, cancellationToken));
} }
public Task<TvDbResponse<Actor[]>> GetActorsAsync( public Task<TvDbResponse<Actor[]>> GetActorsAsync(
int tvdbId, int tvdbId,
string language, string language,
@ -190,7 +191,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
episodeQuery.AbsoluteNumber = searchInfo.IndexNumber.Value; episodeQuery.AbsoluteNumber = searchInfo.IndexNumber.Value;
break; break;
default: default:
//aired order // aired order
episodeQuery.AiredEpisode = searchInfo.IndexNumber.Value; episodeQuery.AiredEpisode = searchInfo.IndexNumber.Value;
episodeQuery.AiredSeason = searchInfo.ParentIndexNumber.Value; episodeQuery.AiredSeason = searchInfo.ParentIndexNumber.Value;
break; break;

View file

@ -14,9 +14,8 @@ using TvDbSharper.Dto;
namespace MediaBrowser.Providers.Plugins.TheTvdb namespace MediaBrowser.Providers.Plugins.TheTvdb
{ {
/// <summary> /// <summary>
/// Class RemoteEpisodeProvider /// Class RemoteEpisodeProvider.
/// </summary> /// </summary>
public class TvdbEpisodeProvider : IRemoteMetadataProvider<Episode, EpisodeInfo>, IHasOrder public class TvdbEpisodeProvider : IRemoteMetadataProvider<Episode, EpisodeInfo>, IHasOrder
{ {
@ -139,7 +138,6 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
Name = episode.EpisodeName, Name = episode.EpisodeName,
Overview = episode.Overview, Overview = episode.Overview,
CommunityRating = (float?)episode.SiteRating, CommunityRating = (float?)episode.SiteRating,
} }
}; };
result.ResetPeople(); result.ResetPeople();

View file

@ -57,7 +57,6 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
{ {
EnableImages = false EnableImages = false
} }
}).Cast<Series>() }).Cast<Series>()
.Where(i => TvdbSeriesProvider.IsValidSeries(i.ProviderIds)) .Where(i => TvdbSeriesProvider.IsValidSeries(i.ProviderIds))
.ToList(); .ToList();

View file

@ -55,7 +55,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
if (series == null || !season.IndexNumber.HasValue || !TvdbSeriesProvider.IsValidSeries(series.ProviderIds)) 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(MetadataProviders.Tvdb));
@ -113,8 +113,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType); imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType);
list.Add(imageInfo); list.Add(imageInfo);
} }
var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i => return list.OrderByDescending(i =>
{ {
if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase)) if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase))

View file

@ -79,6 +79,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
tvdbId); tvdbId);
} }
} }
return remoteImages; return remoteImages;
} }
@ -110,8 +111,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType); imageInfo.Type = TvdbUtils.GetImageTypeFromKeyType(image.KeyType);
list.Add(imageInfo); list.Add(imageInfo);
} }
var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
var isLanguageEn = string.Equals(preferredLanguage, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i => return list.OrderByDescending(i =>
{ {
if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase)) if (string.Equals(preferredLanguage, i.Language, StringComparison.OrdinalIgnoreCase))

View file

@ -22,6 +22,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
public class TvdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder public class TvdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
{ {
internal static TvdbSeriesProvider Current { get; private set; } internal static TvdbSeriesProvider Current { get; private set; }
private readonly IHttpClient _httpClient; private readonly IHttpClient _httpClient;
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly ILibraryManager _libraryManager; private readonly ILibraryManager _libraryManager;
@ -145,7 +146,6 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
private async Task<string> GetSeriesByRemoteId(string id, string idType, string language, CancellationToken cancellationToken) private async Task<string> GetSeriesByRemoteId(string id, string idType, string language, CancellationToken cancellationToken)
{ {
TvDbResponse<SeriesSearchResult[]> result = null; TvDbResponse<SeriesSearchResult[]> result = null;
try try
@ -249,6 +249,7 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
ImageUrl = TvdbUtils.BannerUrl + seriesSearchResult.Banner ImageUrl = TvdbUtils.BannerUrl + seriesSearchResult.Banner
}; };
try try
{ {
var seriesSesult = var seriesSesult =
@ -274,11 +275,12 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
} }
/// <summary> /// <summary>
/// The remove /// The remove.
/// </summary> /// </summary>
const string remove = "\"'!`?"; const string remove = "\"'!`?";
/// <summary> /// <summary>
/// The spacers /// The spacers.
/// </summary> /// </summary>
const string spacers = "/,.:;\\(){}[]+-_=*"; // (there are two types of dashes, short and long) const string spacers = "/,.:;\\(){}[]+-_=*"; // (there are two types of dashes, short and long)
@ -315,8 +317,8 @@ namespace MediaBrowser.Providers.Plugins.TheTvdb
sb.Append(c); sb.Append(c);
} }
} }
sb.Replace(", the", string.Empty).Replace("the ", " ").Replace(" the ", " ");
sb.Replace(", the", string.Empty).Replace("the ", " ").Replace(" the ", " ");
return Regex.Replace(sb.ToString().Trim(), @"\s+", " "); return Regex.Replace(sb.ToString().Trim(), @"\s+", " ");
} }

View file

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Providers.Tmdb.BoxSets namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{ {
public class TmdbBoxSetExternalId : IExternalId public class TmdbBoxSetExternalId : IExternalId
{ {

View file

@ -10,11 +10,11 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Providers.Tmdb.Models.Collections; using MediaBrowser.Providers.Plugins.Tmdb.Models.Collections;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
namespace MediaBrowser.Providers.Tmdb.BoxSets namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{ {
public class TmdbBoxSetImageProvider : IRemoteImageProvider, IHasOrder public class TmdbBoxSetImageProvider : IRemoteImageProvider, IHasOrder
{ {
@ -105,6 +105,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
{ {
return 3; return 3;
} }
if (!isLanguageEn) if (!isLanguageEn)
{ {
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase)) if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@ -112,10 +113,12 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
return 2; return 2;
} }
} }
if (string.IsNullOrEmpty(i.Language)) if (string.IsNullOrEmpty(i.Language))
{ {
return isLanguageEn ? 3 : 2; return isLanguageEn ? 3 : 2;
} }
return 0; return 0;
}) })
.ThenByDescending(i => i.CommunityRating ?? 0) .ThenByDescending(i => i.CommunityRating ?? 0)

View file

@ -16,12 +16,12 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.Collections; using MediaBrowser.Providers.Plugins.Tmdb.Models.Collections;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.BoxSets namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets
{ {
public class TmdbBoxSetProvider : IRemoteMetadataProvider<BoxSet, BoxSetInfo> public class TmdbBoxSetProvider : IRemoteMetadataProvider<BoxSet, BoxSetInfo>
{ {
@ -78,9 +78,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
var result = new RemoteSearchResult var result = new RemoteSearchResult
{ {
Name = info.Name, Name = info.Name,
SearchProviderName = Name, SearchProviderName = Name,
ImageUrl = images.Count == 0 ? null : (tmdbImageUrl + images[0].File_Path) ImageUrl = images.Count == 0 ? null : (tmdbImageUrl + images[0].File_Path)
}; };
@ -191,7 +189,6 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)
@ -219,7 +216,6 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)
@ -229,6 +225,7 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
} }
} }
} }
return mainResult; return mainResult;
} }

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class CollectionImages
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.Collections namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Collections
{ {
public class CollectionResult public class CollectionResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Collections namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Collections
{ {
public class Part public class Part
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Backdrop public class Backdrop
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Crew public class Crew
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class ExternalIds public class ExternalIds
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Genre public class Genre
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Images public class Images
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Keyword public class Keyword
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Keywords public class Keywords
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Poster public class Poster
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Profile public class Profile
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Still public class Still
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class StillImages public class StillImages
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Video public class Video
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.General namespace MediaBrowser.Providers.Plugins.Tmdb.Models.General
{ {
public class Videos public class Videos
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class BelongsToCollection public class BelongsToCollection
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class Cast public class Cast
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class Casts
{ {

View file

@ -1,6 +1,6 @@
using System; using System;
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class Country public class Country
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class MovieResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class ProductionCompany public class ProductionCompany
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class ProductionCountry public class ProductionCountry
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class Releases public class Releases
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class SpokenLanguage public class SpokenLanguage
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class Trailers public class Trailers
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Movies
{ {
public class Youtube public class Youtube
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 PersonImages public class PersonImages
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class PersonResult
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.Search namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{ {
public class ExternalIdLookupResult public class ExternalIdLookupResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Search namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{ {
public class MovieResult public class MovieResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Search namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{ {
public class PersonSearchResult public class PersonSearchResult
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.Search namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{ {
public class TmdbSearchResult<T> public class TmdbSearchResult<T>
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.Search namespace MediaBrowser.Providers.Plugins.Tmdb.Models.Search
{ {
public class TvResult public class TvResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class Cast public class Cast
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class ContentRating public class ContentRating
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class ContentRatings public class ContentRatings
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class CreatedBy public class CreatedBy
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class Credits
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class Episode public class Episode
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 class EpisodeCredits
{ {

View file

@ -1,7 +1,7 @@
using System; 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 class EpisodeResult
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class GuestStar public class GuestStar
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class Network public class Network
{ {

View file

@ -1,4 +1,4 @@
namespace MediaBrowser.Providers.Tmdb.Models.TV namespace MediaBrowser.Providers.Plugins.Tmdb.Models.TV
{ {
public class Season public class Season
{ {

View file

@ -1,7 +1,7 @@
using System.Collections.Generic; 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 SeasonImages public class SeasonImages
{ {

View file

@ -1,8 +1,8 @@
using System; using System;
using System.Collections.Generic; 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 class SeasonResult
{ {

View file

@ -1,8 +1,8 @@
using System; using System;
using System.Collections.Generic; 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 class SeriesResult
{ {

View file

@ -13,10 +13,10 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
public class GenericTmdbMovieInfo<T> public class GenericTmdbMovieInfo<T>
where T : BaseItem, new() where T : BaseItem, new()

View file

@ -13,10 +13,10 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Models.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
public class TmdbImageProvider : IRemoteImageProvider, IHasOrder public class TmdbImageProvider : IRemoteImageProvider, IHasOrder
{ {

View file

@ -4,7 +4,7 @@ using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
public class TmdbMovieExternalId : IExternalId public class TmdbMovieExternalId : IExternalId
{ {

View file

@ -15,15 +15,14 @@ using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Models.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
/// <summary> /// <summary>
/// Class MovieDbProvider /// Class MovieDbProvider

View file

@ -3,19 +3,19 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Text.RegularExpressions;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.Search; using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
public class TmdbSearch public class TmdbSearch
{ {

View file

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace MediaBrowser.Providers.Tmdb.Movies namespace MediaBrowser.Providers.Plugins.Tmdb.Movies
{ {
internal class TmdbImageSettings internal class TmdbImageSettings
{ {

View file

@ -6,9 +6,9 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.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> public class TmdbMusicVideoProvider : IRemoteMetadataProvider<MusicVideo, MusicVideoInfo>
{ {

View file

@ -2,7 +2,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Providers.Tmdb.People namespace MediaBrowser.Providers.Plugins.Tmdb.People
{ {
public class TmdbPersonExternalId : IExternalId public class TmdbPersonExternalId : IExternalId
{ {

View file

@ -10,11 +10,11 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Models.People; using MediaBrowser.Providers.Plugins.Tmdb.Models.People;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
namespace MediaBrowser.Providers.Tmdb.People namespace MediaBrowser.Providers.Plugins.Tmdb.People
{ {
public class TmdbPersonImageProvider : IRemoteImageProvider, IHasOrder public class TmdbPersonImageProvider : IRemoteImageProvider, IHasOrder
{ {

View file

@ -17,13 +17,13 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Models.People; using MediaBrowser.Providers.Plugins.Tmdb.Models.People;
using MediaBrowser.Providers.Tmdb.Models.Search; using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.People namespace MediaBrowser.Providers.Plugins.Tmdb.People
{ {
public class TmdbPersonProvider : IRemoteMetadataProvider<Person, PersonLookupInfo> public class TmdbPersonProvider : IRemoteMetadataProvider<Person, PersonLookupInfo>
{ {

View file

@ -13,11 +13,11 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbEpisodeImageProvider : public class TmdbEpisodeImageProvider :
TmdbEpisodeProviderBase, TmdbEpisodeProviderBase,
@ -80,7 +80,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
RatingType = RatingType.Score RatingType = RatingType.Score
})); }));
var isLanguageEn = string.Equals(language, "en", StringComparison.OrdinalIgnoreCase); var isLanguageEn = string.Equals(language, "en", StringComparison.OrdinalIgnoreCase);
return list.OrderByDescending(i => return list.OrderByDescending(i =>
@ -89,6 +88,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
return 3; return 3;
} }
if (!isLanguageEn) if (!isLanguageEn)
{ {
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase)) if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@ -96,15 +96,16 @@ namespace MediaBrowser.Providers.Tmdb.TV
return 2; return 2;
} }
} }
if (string.IsNullOrEmpty(i.Language)) if (string.IsNullOrEmpty(i.Language))
{ {
return isLanguageEn ? 3 : 2; return isLanguageEn ? 3 : 2;
} }
return 0; return 0;
}) })
.ThenByDescending(i => i.CommunityRating ?? 0) .ThenByDescending(i => i.CommunityRating ?? 0)
.ThenByDescending(i => i.VoteCount ?? 0); .ThenByDescending(i => i.VoteCount ?? 0);
} }
private IEnumerable<Still> GetPosters(StillImages images) private IEnumerable<Still> GetPosters(StillImages images)
@ -112,7 +113,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
return images.Stills ?? new List<Still>(); return images.Stills ?? new List<Still>();
} }
public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken) public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
{ {
return GetResponse(url, cancellationToken); return GetResponse(url, cancellationToken);

View file

@ -18,7 +18,7 @@ using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbEpisodeProvider : public class TmdbEpisodeProvider :
TmdbEpisodeProviderBase, TmdbEpisodeProviderBase,
@ -203,6 +203,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
return GetResponse(url, cancellationToken); return GetResponse(url, cancellationToken);
} }
// After TheTvDb // After TheTvDb
public int Order => 1; public int Order => 1;

View file

@ -8,11 +8,11 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.TV; using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public abstract class TmdbEpisodeProviderBase public abstract class TmdbEpisodeProviderBase
{ {
@ -53,6 +53,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
throw new ArgumentNullException(nameof(tmdbId)); throw new ArgumentNullException(nameof(tmdbId));
} }
if (string.IsNullOrEmpty(language)) if (string.IsNullOrEmpty(language))
{ {
throw new ArgumentNullException(nameof(language)); throw new ArgumentNullException(nameof(language));
@ -80,6 +81,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
throw new ArgumentNullException(nameof(tmdbId)); throw new ArgumentNullException(nameof(tmdbId));
} }
if (string.IsNullOrEmpty(preferredLanguage)) if (string.IsNullOrEmpty(preferredLanguage))
{ {
throw new ArgumentNullException(nameof(preferredLanguage)); throw new ArgumentNullException(nameof(preferredLanguage));

View file

@ -12,10 +12,10 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbSeasonImageProvider : IRemoteImageProvider, IHasOrder public class TmdbSeasonImageProvider : IRemoteImageProvider, IHasOrder
{ {

View file

@ -14,12 +14,12 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.TV; using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Season = MediaBrowser.Controller.Entities.TV.Season; using Season = MediaBrowser.Controller.Entities.TV.Season;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbSeasonProvider : IRemoteMetadataProvider<Season, SeasonInfo> public class TmdbSeasonProvider : IRemoteMetadataProvider<Season, SeasonInfo>
{ {
@ -145,6 +145,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
throw new ArgumentNullException(nameof(tmdbId)); throw new ArgumentNullException(nameof(tmdbId));
} }
if (string.IsNullOrEmpty(language)) if (string.IsNullOrEmpty(language))
{ {
throw new ArgumentNullException(nameof(language)); throw new ArgumentNullException(nameof(language));
@ -172,6 +173,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
throw new ArgumentNullException(nameof(tmdbId)); throw new ArgumentNullException(nameof(tmdbId));
} }
if (string.IsNullOrEmpty(preferredLanguage)) if (string.IsNullOrEmpty(preferredLanguage))
{ {
throw new ArgumentNullException(nameof(preferredLanguage)); throw new ArgumentNullException(nameof(preferredLanguage));
@ -216,7 +218,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)

View file

@ -2,7 +2,7 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbSeriesExternalId : IExternalId public class TmdbSeriesExternalId : IExternalId
{ {

View file

@ -12,11 +12,11 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.General; using MediaBrowser.Providers.Plugins.Tmdb.Models.General;
using MediaBrowser.Providers.Tmdb.Models.TV; using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbSeriesImageProvider : IRemoteImageProvider, IHasOrder public class TmdbSeriesImageProvider : IRemoteImageProvider, IHasOrder
{ {
@ -99,6 +99,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
return 3; return 3;
} }
if (!isLanguageEn) if (!isLanguageEn)
{ {
if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase)) if (string.Equals("en", i.Language, StringComparison.OrdinalIgnoreCase))
@ -106,10 +107,12 @@ namespace MediaBrowser.Providers.Tmdb.TV
return 2; return 2;
} }
} }
if (string.IsNullOrEmpty(i.Language)) if (string.IsNullOrEmpty(i.Language))
{ {
return isLanguageEn ? 3 : 2; return isLanguageEn ? 3 : 2;
} }
return 0; return 0;
}) })
.ThenByDescending(i => i.CommunityRating ?? 0) .ThenByDescending(i => i.CommunityRating ?? 0)
@ -171,6 +174,7 @@ namespace MediaBrowser.Providers.Tmdb.TV
return null; return null;
} }
// After tvdb and fanart // After tvdb and fanart
public int Order => 2; public int Order => 2;

View file

@ -17,12 +17,12 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Providers.Tmdb.Models.Search; using MediaBrowser.Providers.Plugins.Tmdb.Models.Search;
using MediaBrowser.Providers.Tmdb.Models.TV; using MediaBrowser.Providers.Plugins.Tmdb.Models.TV;
using MediaBrowser.Providers.Tmdb.Movies; using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Tmdb.TV namespace MediaBrowser.Providers.Plugins.Tmdb.TV
{ {
public class TmdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder public class TmdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
{ {
@ -263,10 +263,12 @@ namespace MediaBrowser.Providers.Tmdb.TV
{ {
series.SetProviderId(MetadataProviders.Imdb, ids.Imdb_Id); series.SetProviderId(MetadataProviders.Imdb, ids.Imdb_Id);
} }
if (ids.Tvrage_Id > 0) if (ids.Tvrage_Id > 0)
{ {
series.SetProviderId(MetadataProviders.TvRage, ids.Tvrage_Id.ToString(_usCulture)); series.SetProviderId(MetadataProviders.TvRage, ids.Tvrage_Id.ToString(_usCulture));
} }
if (ids.Tvdb_Id > 0) if (ids.Tvdb_Id > 0)
{ {
series.SetProviderId(MetadataProviders.Tvdb, ids.Tvdb_Id.ToString(_usCulture)); series.SetProviderId(MetadataProviders.Tvdb, ids.Tvdb_Id.ToString(_usCulture));
@ -416,7 +418,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)
@ -453,7 +454,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)
@ -518,7 +518,6 @@ namespace MediaBrowser.Providers.Tmdb.TV
Url = url, Url = url,
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
AcceptHeader = TmdbUtils.AcceptHeader AcceptHeader = TmdbUtils.AcceptHeader
}).ConfigureAwait(false)) }).ConfigureAwait(false))
{ {
using (var json = response.Content) using (var json = response.Content)

View file

@ -1,11 +1,11 @@
using System; using System;
using MediaBrowser.Model.Entities; 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> /// <summary>
/// Utilities for the TMDb provider /// Utilities for the TMDb provider.
/// </summary> /// </summary>
public static class TmdbUtils public static class TmdbUtils
{ {

View file

@ -5,9 +5,9 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.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> public class TmdbTrailerProvider : IHasOrder, IRemoteMetadataProvider<Trailer, TrailerInfo>
{ {