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

View File

@@ -177,6 +177,10 @@
<span class="input-header">OMDB API key: </span>
<input id="jackett-omdbkey" class="form-control input-right" type="text" value="" placeholder="">
</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 />
<div id="footer">
<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 string BasePathOverride { get; set; }
public string OmdbApiKey { get; set; }
public string OmdbApiUrl { get; set; }
/// <summary>
/// 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]
public string omdbkey { get; set; }
[DataMember]
public string omdburl { get; set; }
[DataMember]
public string app_version { get; set; }
[DataMember]
@@ -61,6 +63,7 @@ namespace Jackett.Common.Models.DTO
logging = config.RuntimeSettings.TracingEnabled;
basepathoverride = config.BasePathOverride;
omdbkey = config.OmdbApiKey;
omdburl = config.OmdbApiUrl;
app_version = version;
proxy_type = config.ProxyType;

View File

@@ -17,10 +17,11 @@ namespace Jackett.Common.Services
public class OmdbResolver : IImdbResolver
{
public OmdbResolver(WebClient webClient, NonNull<string> omdbApiKey)
public OmdbResolver(WebClient webClient, NonNull<string> omdbApiKey, string omdbApiUrl)
{
WebClient = webClient;
apiKey = omdbApiKey;
url = omdbApiUrl;
}
public async Task<Movie> MovieForId(NonNull<string> id)
@@ -30,7 +31,10 @@ namespace Jackett.Common.Services
if (!imdbId.StartsWith("tt", StringComparison.Ordinal))
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;
var result = await WebClient.GetString(request);
var movie = JsonConvert.DeserializeObject<Movie>(result.Content);
@@ -40,5 +44,6 @@ namespace Jackett.Common.Services
private WebClient WebClient;
private string apiKey;
private string url;
}
}

View File

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

View File

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