webui: override base url when copying feed (#12882)

Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
This commit is contained in:
Salvatore Catroppa
2022-01-26 21:05:26 +01:00
committed by GitHub
parent f84f492d43
commit 7b8b59bde9
5 changed files with 38 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
var basePath = '';
var baseUrl = '';
var indexers = [];
var configuredIndexers = [];
@@ -114,6 +115,12 @@ function loadJackettSettings() {
basePath = '';
}
$("#jackett-baseurloverride").val(data.baseurloverride);
baseUrl = data.baseurloverride;
if (baseUrl === null || baseUrl === undefined) {
baseUrl = '';
}
api.key = data.api_key;
$("#jackett-savedir").val(data.blackholedir);
@@ -163,9 +170,9 @@ function reloadIndexers() {
availableFilters = [];
for (var i = 0; i < data.length; i++) {
var item = data[i];
item.rss_host = resolveUrl(basePath + "/api/v2.0/indexers/" + item.id + "/results/torznab/api?apikey=" + api.key + "&t=search&cat=&q=");
item.torznab_host = resolveUrl(basePath + "/api/v2.0/indexers/" + item.id + "/results/torznab/");
item.potato_host = resolveUrl(basePath + "/api/v2.0/indexers/" + item.id + "/results/potato/");
item.rss_host = resolveUrl(baseUrl, basePath + "/api/v2.0/indexers/" + item.id + "/results/torznab/api?apikey=" + api.key + "&t=search&cat=&q=");
item.torznab_host = resolveUrl(baseUrl, basePath + "/api/v2.0/indexers/" + item.id + "/results/torznab/");
item.potato_host = resolveUrl(baseUrl, basePath + "/api/v2.0/indexers/" + item.id + "/results/potato/");
if (item.last_error)
item.state = "error";
@@ -922,10 +929,14 @@ function populateSetupForm(indexerId, name, config, caps, link, alternativesitel
configForm.modal("show");
}
function resolveUrl(url) {
var a = document.createElement('a');
a.href = url;
url = a.href;
function resolveUrl(baseUrl, url) {
if (baseUrl != '') {
url = baseUrl + url;
}else{
var a = document.createElement('a');
a.href = url;
url = a.href;
}
return url;
}
@@ -1514,6 +1525,7 @@ function bindUIButtons() {
$("#change-jackett-port").click(function () {
var jackett_port = Number($("#jackett-port").val());
var jackett_basepathoverride = $("#jackett-basepathoverride").val();
var jackett_baseurloverride = $("#jackett-baseurloverride").val();
var jackett_external = $("#jackett-allowext").is(':checked');
var jackett_update = $("#jackett-allowupdate").is(':checked');
var jackett_prerelease = $("#jackett-prerelease").is(':checked');
@@ -1540,6 +1552,7 @@ function bindUIButtons() {
blackholedir: $("#jackett-savedir").val(),
logging: jackett_logging,
basepathoverride: jackett_basepathoverride,
baseurloverride: jackett_baseurloverride,
logging: jackett_logging,
cache_enabled: jackett_cache_enabled,
cache_ttl: jackett_cache_ttl,

View File

@@ -130,6 +130,10 @@
<span class="input-header">Base path override: </span>
<input id="jackett-basepathoverride" class="form-control input-right" type="text" value="" placeholder="/jackett">
</div>
<div class="input-area">
<span class="input-header">Base URL override: </span>
<input id="jackett-baseurloverride" class="form-control input-right" type="text" value="" placeholder="http://jackett:9117">
</div>
<div class="input-area">
<span class="input-header">Server port: </span>
<input id="jackett-port" class="form-control input-right" type="text" value="" placeholder="9117">

View File

@@ -40,6 +40,7 @@ namespace Jackett.Common.Models.Config
public bool UpdateDisabled { get; set; }
public bool UpdatePrerelease { get; set; }
public string BasePathOverride { get; set; }
public string BaseUrlOverride { get; set; }
public bool CacheEnabled { get; set; }
public long CacheTtl { get; set; }
public long CacheMaxResultsPerIndexer { get; set; }

View File

@@ -28,6 +28,8 @@ namespace Jackett.Common.Models.DTO
[DataMember]
public string basepathoverride { get; set; }
[DataMember]
public string baseurloverride { get; set; }
[DataMember]
public bool cache_enabled { get; set; }
[DataMember]
public long cache_ttl { get; set; }
@@ -71,6 +73,7 @@ namespace Jackett.Common.Models.DTO
password = string.IsNullOrEmpty(config.AdminPassword) ? string.Empty : config.AdminPassword.Substring(0, 10);
logging = config.RuntimeSettings.TracingEnabled;
basepathoverride = config.BasePathOverride;
baseurloverride = config.BaseUrlOverride;
cache_enabled = config.CacheEnabled;
cache_ttl = config.CacheTtl;
cache_max_results_per_indexer = config.CacheMaxResultsPerIndexer;

View File

@@ -92,6 +92,15 @@ namespace Jackett.Server.Controllers
throw new Exception("The Base Path Override must start with a /");
}
var baseUrlOverride = config.baseurloverride;
if (baseUrlOverride != null)
{
baseUrlOverride = baseUrlOverride.TrimEnd('/');
if (!Uri.TryCreate(config.baseurloverride, UriKind.Absolute, out var uri)
|| !(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
throw new Exception("Base URL Override is invalid. Example: http://jackett:9117");
}
var cacheEnabled = config.cache_enabled;
var cacheTtl = config.cache_ttl;
var cacheMaxResultsPerIndexer = config.cache_max_results_per_indexer;
@@ -106,6 +115,7 @@ namespace Jackett.Server.Controllers
serverConfig.UpdateDisabled = updateDisabled;
serverConfig.UpdatePrerelease = preRelease;
serverConfig.BasePathOverride = basePathOverride;
serverConfig.BaseUrlOverride = baseUrlOverride;
serverConfig.CacheEnabled = cacheEnabled;
serverConfig.CacheTtl = cacheTtl;
serverConfig.CacheMaxResultsPerIndexer = cacheMaxResultsPerIndexer;