Allow configuration of omdb url (#3353)

OMDB recently added a private.omdbapi.com domain for supporters and this option allows the user to customize it while also allowing that url to change more rapidly in the future
This commit is contained in:
Jay Otterbein
2018-07-09 05:37:24 -05:00
committed by flightlevel
parent 2fac90df9f
commit 0026a4f26e
7 changed files with 22 additions and 4 deletions

View File

@@ -87,6 +87,7 @@ function loadJackettSettings() {
$("#jackett-prerelease").attr('checked', data.prerelease); $("#jackett-prerelease").attr('checked', data.prerelease);
$("#jackett-logging").attr('checked', data.logging); $("#jackett-logging").attr('checked', data.logging);
$("#jackett-omdbkey").val(data.omdbkey); $("#jackett-omdbkey").val(data.omdbkey);
$("#jackett-omdburl").val(data.omdburl);
var password = data.password; var password = data.password;
$("#jackett-adminpwd").val(password); $("#jackett-adminpwd").val(password);
if (password != null && password != '') { if (password != null && password != '') {
@@ -1150,6 +1151,7 @@ function bindUIButtons() {
var jackett_prerelease = $("#jackett-prerelease").is(':checked'); var jackett_prerelease = $("#jackett-prerelease").is(':checked');
var jackett_logging = $("#jackett-logging").is(':checked'); var jackett_logging = $("#jackett-logging").is(':checked');
var jackett_omdb_key = $("#jackett-omdbkey").val(); var jackett_omdb_key = $("#jackett-omdbkey").val();
var jackett_omdb_url = $("#jackett-omdburl").val();
var jackett_proxy_url = $("#jackett-proxy-url").val(); var jackett_proxy_url = $("#jackett-proxy-url").val();
var jackett_proxy_type = $("#jackett-proxy-type").val(); var jackett_proxy_type = $("#jackett-proxy-type").val();
@@ -1166,6 +1168,7 @@ function bindUIButtons() {
logging: jackett_logging, logging: jackett_logging,
basepathoverride: jackett_basepathoverride, basepathoverride: jackett_basepathoverride,
omdbkey: jackett_omdb_key, omdbkey: jackett_omdb_key,
omdburl: jackett_omdb_url,
proxy_type: jackett_proxy_type, proxy_type: jackett_proxy_type,
proxy_url: jackett_proxy_url, proxy_url: jackett_proxy_url,
proxy_port: jackett_proxy_port, proxy_port: jackett_proxy_port,

View File

@@ -177,6 +177,10 @@
<span class="input-header">OMDB API key: </span> <span class="input-header">OMDB API key: </span>
<input id="jackett-omdbkey" class="form-control input-right" type="text" value="" placeholder=""> <input id="jackett-omdbkey" class="form-control input-right" type="text" value="" placeholder="">
</div> </div>
<div class="input-area">
<span class="input-header">OMDB API Url: </span>
<input id="jackett-omdburl" class="form-control input-right" type="text" value="" placeholder="http://omdbiapi.com">
</div>
<hr /> <hr />
<div id="footer"> <div id="footer">
<a href="https://github.com/Jackett/Jackett" target="_blank" title="Jackett on GitHub">Jackett</a> Version <span id="app-version"></span> <a href="https://github.com/Jackett/Jackett" target="_blank" title="Jackett on GitHub">Jackett</a> Version <span id="app-version"></span>

View File

@@ -27,6 +27,7 @@ namespace Jackett.Common.Models.Config
public bool UpdatePrerelease { get; set; } public bool UpdatePrerelease { get; set; }
public string BasePathOverride { get; set; } public string BasePathOverride { get; set; }
public string OmdbApiKey { get; set; } public string OmdbApiKey { get; set; }
public string OmdbApiUrl { get; set; }
/// <summary> /// <summary>
/// Ignore as we don't really want to be saving settings specified in the command line. /// Ignore as we don't really want to be saving settings specified in the command line.

View File

@@ -30,6 +30,8 @@ namespace Jackett.Common.Models.DTO
[DataMember] [DataMember]
public string omdbkey { get; set; } public string omdbkey { get; set; }
[DataMember] [DataMember]
public string omdburl { get; set; }
[DataMember]
public string app_version { get; set; } public string app_version { get; set; }
[DataMember] [DataMember]
@@ -61,6 +63,7 @@ namespace Jackett.Common.Models.DTO
logging = config.RuntimeSettings.TracingEnabled; logging = config.RuntimeSettings.TracingEnabled;
basepathoverride = config.BasePathOverride; basepathoverride = config.BasePathOverride;
omdbkey = config.OmdbApiKey; omdbkey = config.OmdbApiKey;
omdburl = config.OmdbApiUrl;
app_version = version; app_version = version;
proxy_type = config.ProxyType; proxy_type = config.ProxyType;

View File

@@ -17,10 +17,11 @@ namespace Jackett.Common.Services
public class OmdbResolver : IImdbResolver public class OmdbResolver : IImdbResolver
{ {
public OmdbResolver(WebClient webClient, NonNull<string> omdbApiKey) public OmdbResolver(WebClient webClient, NonNull<string> omdbApiKey, string omdbApiUrl)
{ {
WebClient = webClient; WebClient = webClient;
apiKey = omdbApiKey; apiKey = omdbApiKey;
url = omdbApiUrl;
} }
public async Task<Movie> MovieForId(NonNull<string> id) public async Task<Movie> MovieForId(NonNull<string> id)
@@ -30,7 +31,10 @@ namespace Jackett.Common.Services
if (!imdbId.StartsWith("tt", StringComparison.Ordinal)) if (!imdbId.StartsWith("tt", StringComparison.Ordinal))
imdbId = "tt" + imdbId; imdbId = "tt" + imdbId;
var request = new WebRequest("http://omdbapi.com/?apikey=" + apiKey + "&i=" + imdbId); if (string.IsNullOrWhiteSpace(url))
url = "http://omdbapi.com";
var request = new WebRequest(url + "/?apikey=" + apiKey + "&i=" + imdbId);
request.Encoding = Encoding.UTF8; request.Encoding = Encoding.UTF8;
var result = await WebClient.GetString(request); var result = await WebClient.GetString(request);
var movie = JsonConvert.DeserializeObject<Movie>(result.Content); var movie = JsonConvert.DeserializeObject<Movie>(result.Content);
@@ -40,5 +44,6 @@ namespace Jackett.Common.Services
private WebClient WebClient; private WebClient WebClient;
private string apiKey; private string apiKey;
private string url;
} }
} }

View File

@@ -160,7 +160,7 @@ namespace Jackett.Common.Services
IResultFilterProvider resultFilterProvider = null; IResultFilterProvider resultFilterProvider = null;
if (!omdbApiKey.IsNullOrEmptyOrWhitespace()) if (!omdbApiKey.IsNullOrEmptyOrWhitespace())
{ {
var imdbResolver = new OmdbResolver(webClient, omdbApiKey.ToNonNull()); var imdbResolver = new OmdbResolver(webClient, omdbApiKey.ToNonNull(), serverConfig.OmdbApiUrl);
fallbackStrategyProvider = new ImdbFallbackStrategyProvider(imdbResolver); fallbackStrategyProvider = new ImdbFallbackStrategyProvider(imdbResolver);
resultFilterProvider = new ImdbTitleResultFilterProvider(imdbResolver); resultFilterProvider = new ImdbTitleResultFilterProvider(imdbResolver);
} }

View File

@@ -91,6 +91,7 @@ namespace Jackett.Controllers
} }
string omdbApiKey = config.omdbkey; string omdbApiKey = config.omdbkey;
string omdbApiUrl = config.omdburl;
serverConfig.UpdateDisabled = updateDisabled; serverConfig.UpdateDisabled = updateDisabled;
serverConfig.UpdatePrerelease = preRelease; serverConfig.UpdatePrerelease = preRelease;
@@ -101,9 +102,10 @@ namespace Jackett.Controllers
Engine.SetLogLevel(logging ? LogLevel.Debug : LogLevel.Info); Engine.SetLogLevel(logging ? LogLevel.Debug : LogLevel.Info);
serverConfig.RuntimeSettings.TracingEnabled = logging; serverConfig.RuntimeSettings.TracingEnabled = logging;
if (omdbApiKey != serverConfig.OmdbApiKey) if (omdbApiKey != serverConfig.OmdbApiKey || omdbApiUrl != serverConfig.OmdbApiUrl)
{ {
serverConfig.OmdbApiKey = omdbApiKey; serverConfig.OmdbApiKey = omdbApiKey;
serverConfig.OmdbApiUrl = omdbApiUrl.TrimEnd('/');
configService.SaveConfig(serverConfig); configService.SaveConfig(serverConfig);
// HACK // HACK
indexerService.InitAggregateIndexer(); indexerService.InitAggregateIndexer();