From ca06af4b531b6e0bf37c5e25fddcd0932fe0ea3f Mon Sep 17 00:00:00 2001 From: cxfksword <718792+cxfksword@users.noreply.github.com> Date: Sat, 16 Sep 2023 11:20:42 +0800 Subject: [PATCH] feat: add tmdb proxy config. close #45 --- Jellyfin.Plugin.MetaShark/Api/ImdbApi.cs | 2 +- Jellyfin.Plugin.MetaShark/Api/TmdbApi.cs | 2 +- .../Configuration/PluginConfiguration.cs | 46 +++++++++++++++++-- .../Configuration/configPage.html | 46 +++++++++++++++++++ 4 files changed, 91 insertions(+), 5 deletions(-) diff --git a/Jellyfin.Plugin.MetaShark/Api/ImdbApi.cs b/Jellyfin.Plugin.MetaShark/Api/ImdbApi.cs index dfdadfb..1b8846e 100644 --- a/Jellyfin.Plugin.MetaShark/Api/ImdbApi.cs +++ b/Jellyfin.Plugin.MetaShark/Api/ImdbApi.cs @@ -29,7 +29,7 @@ namespace Jellyfin.Plugin.MetaShark.Api AllowAutoRedirect = false }; httpClient = new HttpClient(handler); - httpClient.Timeout = TimeSpan.FromSeconds(5); + httpClient.Timeout = TimeSpan.FromSeconds(10); } /// diff --git a/Jellyfin.Plugin.MetaShark/Api/TmdbApi.cs b/Jellyfin.Plugin.MetaShark/Api/TmdbApi.cs index 23ee214..63bed89 100644 --- a/Jellyfin.Plugin.MetaShark/Api/TmdbApi.cs +++ b/Jellyfin.Plugin.MetaShark/Api/TmdbApi.cs @@ -39,7 +39,7 @@ namespace Jellyfin.Plugin.MetaShark.Api var config = Plugin.Instance?.Configuration; var apiKey = string.IsNullOrEmpty(config?.TmdbApiKey) ? DEFAULT_API_KEY : config.TmdbApiKey; var host = string.IsNullOrEmpty(config?.TmdbHost) ? DEFAULT_API_HOST : config.TmdbHost; - _tmDbClient = new TMDbClient(apiKey, true, host); + _tmDbClient = new TMDbClient(apiKey, true, host, null, config.GetTmdbWebProxy()); _tmDbClient.Timeout = TimeSpan.FromSeconds(10); // Not really interested in NotFoundException _tmDbClient.ThrowApiExceptions = false; diff --git a/Jellyfin.Plugin.MetaShark/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.MetaShark/Configuration/PluginConfiguration.cs index ec9ad39..5cbe2a5 100644 --- a/Jellyfin.Plugin.MetaShark/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.MetaShark/Configuration/PluginConfiguration.cs @@ -1,5 +1,6 @@ -using MediaBrowser.Model.Plugins; +using System.Net; using System.Reflection; +using MediaBrowser.Model.Plugins; namespace Jellyfin.Plugin.MetaShark.Configuration; @@ -12,6 +13,9 @@ public class PluginConfiguration : BasePluginConfiguration public const int MAX_CAST_MEMBERS = 15; public const int MAX_SEARCH_RESULT = 5; + /// + /// 插件版本 + /// public string Version { get; } = Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? string.Empty; public string DoubanCookies { get; set; } = string.Empty; @@ -28,10 +32,19 @@ public class PluginConfiguration : BasePluginConfiguration /// public string DoubanImageProxyBaseUrl { get; set; } = string.Empty; + /// + /// 启用获取tmdb元数据 + /// public bool EnableTmdb { get; set; } = true; + /// + /// 启用显示tmdb搜索结果 + /// public bool EnableTmdbSearch { get; set; } = false; + /// + /// 启用tmdb获取背景图 + /// public bool EnableTmdbBackdrop { get; set; } = true; /// /// 是否获取电影系列信息 @@ -41,9 +54,36 @@ public class PluginConfiguration : BasePluginConfiguration /// 是否获取tmdb分级信息 /// public bool EnableTmdbOfficialRating { get; set; } = true; - + /// + /// tmdb api key + /// public string TmdbApiKey { get; set; } = string.Empty; - + /// + /// tmdb api host + /// public string TmdbHost { get; set; } = string.Empty; + /// + /// 代理服务器类型,0-禁用,1-http,2-https,3-socket5 + /// + public string TmdbProxyType { get; set; } = string.Empty; + /// + /// 代理服务器host + /// + public string TmdbProxyPort { get; set; } = string.Empty; + /// + /// 代理服务器端口 + /// + public string TmdbProxyHost { get; set; } = string.Empty; + + public IWebProxy GetTmdbWebProxy() + { + + if (!string.IsNullOrEmpty(TmdbProxyType)) + { + return new WebProxy($"{TmdbProxyType}://{TmdbProxyHost}:{TmdbProxyPort}", true); + } + + return null; + } } diff --git a/Jellyfin.Plugin.MetaShark/Configuration/configPage.html b/Jellyfin.Plugin.MetaShark/Configuration/configPage.html index e84f44a..b2904ac 100644 --- a/Jellyfin.Plugin.MetaShark/Configuration/configPage.html +++ b/Jellyfin.Plugin.MetaShark/Configuration/configPage.html @@ -119,6 +119,29 @@
填写Api域名,可选api.tmdb.org/api.themoviedb.org,默认api.tmdb.org.(需重启才能生效)
+
+ + +
+ 选择Api代理服务器方式.(需重启才能生效)
+
+
+ + +
+
+ + +