SickGear/gui/slick/js/configSearch.js
2023-02-09 13:41:15 +00:00

189 lines
6.7 KiB
JavaScript

/** @namespace $.SickGear.Root */
/** @namespace config.defaultHost */
$(document).ready(function(){
var loading = '<img src="' + $.SickGear.Root + '/images/loading16' + themeSpinner + '.gif" height="16" width="16" />',
handleSCGI = function() {
var opts$ = $('#torrent-username-option,#torrent-password-option');
$('#torrent_username,#torrent_password').each(function() {$(this).val(
/^\s*scgi:\/\//.test($('#torrent_host').val()) ? opts$.hide() && $('#torrent_label').select() && ''
: opts$.show() && $('#torrent_username').select() && $(this).prop('defaultValue'));});};
$('#test-flaresolverr').click(function(){
var host$ = $('#flaresolverr'), host = $.trim(host$.val()), result$ = $('#test-flaresolverr-result'),
valid = !!host && -1 !== host.indexOf('http');
if (!valid) {
result$.html('Please correct the field above');
if (!valid) {
host$.addClass('warning');
} else {
host$.removeClass('warning');
}
return;
}
host$.removeClass('warning');
$(this).prop('disabled', !0);
result$.html(loading);
$.get(sbRoot + '/home/test-flaresolverr',
{host: host})
.done(function (data) {
$('#test-flaresolverr-result').html(data);
$('#test-flaresolverr').prop('disabled', !1);
});
});
function toggleTorrentTitle() {
var noTorrent$ = $('#no_torrents');
if ($('#use_torrents').prop('checked'))
noTorrent$.show();
else
noTorrent$.hide();
}
$.fn.nzbMethodHandler = function() {
var selectedProvider = $('#nzb_method').find(':selected').val(),
blackholeSettings = '#blackhole-settings',
nzbgetSettings = '#nzbget-settings, #test-nzb-result, .nzbget',
sabnzbdSettings = '#sabnzbd-settings, #test-nzb-result, .sabnzbd';
$('#test-sabnzbd-result').html('Click below to test');
$([blackholeSettings, nzbgetSettings, sabnzbdSettings].join(',')).hide();
if ('blackhole' == selectedProvider) {
$(blackholeSettings).show();
} else if ('nzbget' == selectedProvider) {
$(nzbgetSettings).show();
} else {
$(sabnzbdSettings).show();
}
};
$('#nzb_method').change($(this).nzbMethodHandler);
$(this).nzbMethodHandler();
$.fn.torrentMethodHandler = function() {
var selectedProvider = $('#torrent_method').find(':selected').val(),
host = ' host:port', username = ' username', password = ' password',
label = ' label',
directory = ' directory',
client = '',
hideHostDesc = !1, hidePausedOption = !1, hideLabelOption = !1, hidePathBlank = !1,
optionsBlackhole = '#options-torrent-blackhole',
optionsClients = '#options-torrent-clients',
optionsPanel = optionsBlackhole;
$(optionsBlackhole).hide();
$(optionsClients).hide();
$('#test-torrent-result').html('Click below to test');
$('.default-host').html(config.defaultHost[selectedProvider]);
if ('blackhole' != selectedProvider) {
var labelWarningDeluge = '#label-warning-deluge',
hostDesc = '#host-desc-torrent',
hostDescDeluge = '#host-desc-deluge',
hostDescRtorrent = '#host-desc-rtorrent',
usernameOption = '#torrent-username-option',
verifyCertOption = '#torrent-verify-cert-option',
labelOption = '#torrent-label-option',
qBitTorrent = '.qbittorrent',
rTorrent = '.rtorrent',
synology = '.synology',
transmission = '.transmission',
pathOption = '#torrent-path-option',
pathBlank = '#path-blank',
seedTimeOption = '#torrent-seed-time-option',
pausedOption = '#torrent-paused-option',
highBandwidthOption = '#torrent-high-bandwidth-option',
torrentHost$ = $('#torrent_host');
$([labelWarningDeluge, hostDescDeluge, hostDescRtorrent, verifyCertOption, seedTimeOption,
highBandwidthOption, qBitTorrent, rTorrent, synology, transmission].join(',')).hide();
$([hostDesc, usernameOption, pathOption, labelOption, pathBlank, pausedOption].join(',')).show();
$(pathOption).find('.fileBrowser').show();
torrentHost$.off('blur');
switch (selectedProvider) {
case 'utorrent':
client = 'uTorrent';
$(pathOption).hide();
$(seedTimeOption).show();
break;
case 'deluge':
client = 'Deluge'; hideHostDesc = !0;
$(usernameOption).hide();
$([hostDescDeluge, verifyCertOption, labelWarningDeluge].join(',')).show();
break;
case 'transmission':
client = 'Transmission'; hideLabelOption = !1; hidePathBlank = !0;
$([transmission, highBandwidthOption].join(',')).show();
break;
case 'qbittorrent':
client = 'qBittorrent'; hidePathBlank = !0;
$([qBitTorrent, highBandwidthOption].join(',')).show();
break;
case 'download_station':
client = 'Synology DS'; hideLabelOption = !0;
$(pathOption).find('.fileBrowser').hide();
$(synology).show();
break;
case 'rtorrent':
client = 'rTorrent'; hideHostDesc = !0;
$([rTorrent, hostDescRtorrent].join(',')).show();
torrentHost$.on('blur', handleSCGI);
break;
}
hideHostDesc && $(hostDesc).hide();
hideLabelOption && $(labelOption).hide();
hidePausedOption && $(pausedOption).hide();
hidePathBlank && $(pathBlank).hide();
$('#host-title').text(client + host);
$('#username-title').text(client + username);
$('#password-title').text(client + password);
$('#torrent-client').text(client);
optionsPanel = optionsClients;
}
$(optionsPanel).show();
};
$('#torrent_method').change($(this).torrentMethodHandler);
$(this).torrentMethodHandler();
$('#use_torrents').click(function() {
toggleTorrentTitle();
});
$.fn.testResult = function(data, test$) {
// endpoint changed so gracefully handle 404s until restarted
$(test$).html(/404/.test(data) ? 'Test not found, a restart should fix' : data);
};
$('#test_torrent').click(function() {
$('#test-torrent-result').html(loading);
var method = $('#torrent_method').find(':selected').val();
(('rtorrent' === method) && handleSCGI());
$.get(sbRoot + '/home/test-torrent',
{'torrent_method': method, 'host': $('#torrent_host').val(),
'username': $('#torrent_username').val(), 'password': $('#torrent_password').val()},
function(data) { $(this).testResult(data, '#test-torrent-result'); });
});
$('#test_nzbget').click(function() {
$('#test-nzb-result').html(loading);
$.get(sbRoot + '/home/test-nzbget',
{'host': $('#nzbget_host').val(), 'use_https': $('#nzbget_use_https').prop('checked'),
'username': $('#nzbget_username').val(), 'password': $('#nzbget_password').val()},
function(data) { $(this).testResult(data, '#test-nzb-result'); });
});
$('#test_sabnzbd').click(function() {
$('#test-nzb-result').html(loading);
$.get(sbRoot + '/home/test-sabnzbd',
{'host': $('#sab_host').val(), 'username': $('#sab_username').val(),
'password': $('#sab_password').val(), 'apikey': $('#sab_apikey').val()},
function(data) { $(this).testResult(data, '#test-nzb-result'); });
});
});