mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-10 23:42:37 -07:00
Show Plex Server URL in settings
This commit is contained in:
parent
d045fd5834
commit
2479533d07
4 changed files with 97 additions and 34 deletions
|
@ -642,7 +642,7 @@
|
||||||
<label for="pms_port">Plex Port</label>
|
<label for="pms_port">Plex Port</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<input data-parsley-type="integer" class="pms-settings form-control" type="text" id="pms_port" name="pms_port" value="${config['pms_port']}" size="30" data-parsley-trigger="change" data-parsley-errors-container="#pms_port_error" required>
|
<input data-parsley-type="integer" class="form-control pms-settings" type="text" id="pms_port" name="pms_port" value="${config['pms_port']}" size="30" data-parsley-trigger="change" data-parsley-errors-container="#pms_port_error" required>
|
||||||
</div>
|
</div>
|
||||||
<div id="pms_port_error" class="alert alert-danger settings-alert" role="alert"></div>
|
<div id="pms_port_error" class="alert alert-danger settings-alert" role="alert"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -650,29 +650,45 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="pms_is_remote_checkbox" class="checkbox-toggle" data-id="pms_is_remote" value="1" ${checked(config['pms_is_remote'])}> Remote Server
|
<input type="checkbox" id="pms_is_remote_checkbox" class="checkbox-toggle pms-settings" data-id="pms_is_remote" value="1" ${checked(config['pms_is_remote'])}> Remote Server
|
||||||
<input type="hidden" id="pms_is_remote" name="pms_is_remote" value="${config['pms_is_remote']}">
|
<input type="hidden" id="pms_is_remote" name="pms_is_remote" value="${config['pms_is_remote']}">
|
||||||
</label>
|
</label>
|
||||||
<p class="help-block">Check this if your Plex Server is not on the same local network as Tautulli.</p>
|
<p class="help-block">Check this if your Plex Server is not on the same local network as Tautulli.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="pms_ssl_checkbox" class="checkbox-toggle" data-id="pms_ssl" value="1" ${checked(config['pms_ssl'])}> Use SSL
|
<input type="checkbox" id="pms_ssl_checkbox" class="checkbox-toggle pms-settings" data-id="pms_ssl" value="1" ${checked(config['pms_ssl'])}> Use SSL
|
||||||
<input type="hidden" id="pms_ssl" name="pms_ssl" value="${config['pms_ssl']}">
|
<input type="hidden" id="pms_ssl" name="pms_ssl" value="${config['pms_ssl']}">
|
||||||
</label>
|
</label>
|
||||||
<p class="help-block">If you have secure connections enabled on your Plex Server, communicate with it securely.</p>
|
<p class="help-block">If you have secure connections enabled on your Plex Server, communicate with it securely.</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="pms_url">Plex Server URL</label>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-9">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" id="pms_url" name="pms_url" value="${config['pms_url']}" size="30" readonly>
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-form" type="button" id="test_pms_url_button">Test URL</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="help-block">
|
||||||
|
The server URL that Tautulli will use to connect to your Plex server. Retrieved automatically.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
<div class="checkbox advanced-setting">
|
<div class="checkbox advanced-setting">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="pms_url_manual" name="pms_url_manual" value="1" ${config['pms_url_manual']}> Manual Connection
|
<input type="checkbox" class="pms-settings" id="pms_url_manual" name="pms_url_manual" value="1" ${config['pms_url_manual']}> Manual Connection
|
||||||
</label>
|
</label>
|
||||||
<span id="cloudManualConnection" style="display: none; color: #eb8600; padding-left: 10px;"> Not available for Plex Cloud servers.</span>
|
<span id="cloudManualConnection" style="display: none; color: #eb8600; padding-left: 10px;"> Not available for Plex Cloud servers.</span>
|
||||||
<p class="help-block">Use the user defined connection details. Do not retrieve the server connection URL automatically.</p>
|
<p class="help-block">Use the user defined connection details. Do not retrieve the server connection URL automatically.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group advanced-setting">
|
<div class="form-group advanced-setting">
|
||||||
<label for="pms_logs_folder">Plex Web URL</label>
|
<label for="pms_web_url">Plex Web URL</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-9">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" class="form-control" id="pms_web_url" name="pms_web_url" value="${config['pms_web_url']}" size="30" data-parsley-trigger="change" data-parsley-pattern="^https?:\/\/\S+$|^https:\/\/app.plex.tv\/desktop$" data-parsley-errors-container="#pms_web_url_error" data-parsley-error-message="Invalid Plex Web URL.">
|
<input type="text" class="form-control" id="pms_web_url" name="pms_web_url" value="${config['pms_web_url']}" size="30" data-parsley-trigger="change" data-parsley-pattern="^https?:\/\/\S+$|^https:\/\/app.plex.tv\/desktop$" data-parsley-errors-container="#pms_web_url_error" data-parsley-error-message="Invalid Plex Web URL.">
|
||||||
<span class="input-group-btn">
|
<span class="input-group-btn">
|
||||||
|
@ -1573,7 +1589,7 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function preSaveChecks(_callback) {
|
function preSaveChecks(_callback) {
|
||||||
if ($("#pms_identifier").val() == "") {
|
if (serverChanged) {
|
||||||
verifyServer();
|
verifyServer();
|
||||||
}
|
}
|
||||||
verifyPMSWebURL();
|
verifyPMSWebURL();
|
||||||
|
@ -1585,7 +1601,7 @@ $(document).ready(function() {
|
||||||
|
|
||||||
// Alert the user that their changes require a restart.
|
// Alert the user that their changes require a restart.
|
||||||
function postSaveChecks() {
|
function postSaveChecks() {
|
||||||
if (serverChanged || authChanged || httpChanged || directoryChanged) {
|
if (authChanged || httpChanged || directoryChanged) {
|
||||||
$('#restart-modal').modal('show');
|
$('#restart-modal').modal('show');
|
||||||
}
|
}
|
||||||
$("#http_hashed_password").val($("#http_hash_password").is(":checked") ? 1 : 0);
|
$("#http_hashed_password").val($("#http_hash_password").is(":checked") ? 1 : 0);
|
||||||
|
@ -1769,9 +1785,8 @@ $(document).ready(function() {
|
||||||
|
|
||||||
$( ".pms-settings" ).change(function() {
|
$( ".pms-settings" ).change(function() {
|
||||||
serverChanged = true;
|
serverChanged = true;
|
||||||
$("#pms_identifier").val("");
|
|
||||||
$("#server_changed").prop('checked', true);
|
$("#server_changed").prop('checked', true);
|
||||||
verifyServer();
|
$("#pms_verify").hide();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.checkbox-toggle').click(function () {
|
$('.checkbox-toggle').click(function () {
|
||||||
|
@ -1841,6 +1856,7 @@ $(document).ready(function() {
|
||||||
$('#pms_ssl').val(ssl !== 'undefined' && ssl === 1 ? 1 : 0);
|
$('#pms_ssl').val(ssl !== 'undefined' && ssl === 1 ? 1 : 0);
|
||||||
$('#pms_is_cloud').val(is_cloud !== 'undefined' && is_cloud === true ? 1 : 0);
|
$('#pms_is_cloud').val(is_cloud !== 'undefined' && is_cloud === true ? 1 : 0);
|
||||||
$('#pms_url_manual').prop('checked', false);
|
$('#pms_url_manual').prop('checked', false);
|
||||||
|
$('#pms_url').val('Please verify your server above to retrieve the URL');
|
||||||
PMSCloudCheck();
|
PMSCloudCheck();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1906,6 +1922,7 @@ $(document).ready(function() {
|
||||||
var pms_identifier = $("#pms_identifier").val();
|
var pms_identifier = $("#pms_identifier").val();
|
||||||
var pms_ssl = $("#pms_ssl").val();
|
var pms_ssl = $("#pms_ssl").val();
|
||||||
var pms_is_remote = $("#pms_is_remote").val();
|
var pms_is_remote = $("#pms_is_remote").val();
|
||||||
|
var pms_url_manual = $("#pms_url_manual").is(':checked') ? 1 : 0;
|
||||||
|
|
||||||
if (($("#pms_ip").val() !== '') || ($("#pms_port").val() !== '')) {
|
if (($("#pms_ip").val() !== '') || ($("#pms_port").val() !== '')) {
|
||||||
$("#pms_verify").html('<i class="fa fa-refresh fa-spin"></i>').fadeIn('fast');
|
$("#pms_verify").html('<i class="fa fa-refresh fa-spin"></i>').fadeIn('fast');
|
||||||
|
@ -1916,7 +1933,9 @@ $(document).ready(function() {
|
||||||
port: pms_port,
|
port: pms_port,
|
||||||
identifier: pms_identifier,
|
identifier: pms_identifier,
|
||||||
ssl: pms_ssl,
|
ssl: pms_ssl,
|
||||||
remote: pms_is_remote
|
remote: pms_is_remote,
|
||||||
|
manual: pms_url_manual,
|
||||||
|
get_url: serverChanged
|
||||||
},
|
},
|
||||||
cache: true,
|
cache: true,
|
||||||
async: true,
|
async: true,
|
||||||
|
@ -1925,13 +1944,20 @@ $(document).ready(function() {
|
||||||
$("#pms_verify").html('<i class="fa fa-close"></i>').fadeIn('fast');
|
$("#pms_verify").html('<i class="fa fa-close"></i>').fadeIn('fast');
|
||||||
$("#pms_ip_group").addClass("has-error");
|
$("#pms_ip_group").addClass("has-error");
|
||||||
},
|
},
|
||||||
success: function (json) {
|
success: function(xhr, status) {
|
||||||
var machine_identifier = json;
|
var result = xhr;
|
||||||
if (machine_identifier) {
|
var identifier = result.identifier;
|
||||||
$("#pms_identifier").val(machine_identifier);
|
var url = result.url;
|
||||||
|
if (identifier) {
|
||||||
|
$("#pms_identifier").val(identifier);
|
||||||
|
if (url) {
|
||||||
|
$("#pms_url").val(url);
|
||||||
|
}
|
||||||
$("#pms_verify").html('<i class="fa fa-check"></i>').fadeIn('fast');
|
$("#pms_verify").html('<i class="fa fa-check"></i>').fadeIn('fast');
|
||||||
$("#pms_ip_group").removeClass("has-error");
|
$("#pms_ip_group").removeClass("has-error");
|
||||||
|
|
||||||
|
serverChanged = false;
|
||||||
|
|
||||||
if (_callback) {
|
if (_callback) {
|
||||||
_callback();
|
_callback();
|
||||||
}
|
}
|
||||||
|
@ -1950,7 +1976,6 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#verify_server_button').on('click', function(){
|
$('#verify_server_button').on('click', function(){
|
||||||
$("#pms_identifier").val("");
|
|
||||||
verifyServer();
|
verifyServer();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1959,6 +1984,13 @@ $(document).ready(function() {
|
||||||
$("#pms_web_url").val(pms_web_url || 'https://app.plex.tv/desktop');
|
$("#pms_web_url").val(pms_web_url || 'https://app.plex.tv/desktop');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('#test_pms_url_button').on('click', function(){
|
||||||
|
var pms_url = $.trim($("#pms_url").val());
|
||||||
|
if (pms_url.startsWith('http')) {
|
||||||
|
window.open(pms_url + '/web', '_blank');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('#test_pms_web_button').on('click', function(){
|
$('#test_pms_web_button').on('click', function(){
|
||||||
var pms_web_url = $.trim($("#pms_web_url").val());
|
var pms_web_url = $.trim($("#pms_web_url").val());
|
||||||
window.open(pms_web_url, '_blank');
|
window.open(pms_web_url, '_blank');
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
<label for="pms_ip">Plex IP or Hostname</label>
|
<label for="pms_ip">Plex IP or Hostname</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<select class="form-control selectize-pms-ip" id="pms_ip" name="pms_ip">
|
<select class="form-control pms-settings selectize-pms-ip" id="pms_ip" name="pms_ip">
|
||||||
<option value="${config['pms_ip']}" selected>${config['pms_ip']}</option>
|
<option value="${config['pms_ip']}" selected>${config['pms_ip']}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -104,12 +104,12 @@
|
||||||
<label for="pms_port">Plex Port</label>
|
<label for="pms_port">Plex Port</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-3">
|
<div class="col-xs-3">
|
||||||
<input type="text" class="form-control pms_settings" name="pms_port" id="pms_port" placeholder="32400" value="${config['pms_port']}" required>
|
<input type="text" class="form-control pms-settings" name="pms_port" id="pms_port" placeholder="32400" value="${config['pms_port']}" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="pms_ssl_checkbox" class="checkbox-toggle" data-id="pms_ssl" value="1" ${helpers.checked(config['pms_ssl'])}> Use SSL
|
<input type="checkbox" id="pms_ssl_checkbox" class="checkbox-toggle pms-settings" data-id="pms_ssl" value="1" ${helpers.checked(config['pms_ssl'])}> Use SSL
|
||||||
<input type="hidden" id="pms_ssl" name="pms_ssl" value="${config['pms_ssl']}">
|
<input type="hidden" id="pms_ssl" name="pms_ssl" value="${config['pms_ssl']}">
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -117,16 +117,16 @@
|
||||||
<div class="col-xs-4">
|
<div class="col-xs-4">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" id="pms_is_remote_checkbox" class="checkbox-toggle" data-id="pms_is_remote" value="1" ${helpers.checked(config['pms_is_remote'])}> Remote Server
|
<input type="checkbox" id="pms_is_remote_checkbox" class="checkbox-toggle pms-settings" data-id="pms_is_remote" value="1" ${helpers.checked(config['pms_is_remote'])}> Remote Server
|
||||||
<input type="hidden" id="pms_is_remote" name="pms_is_remote" value="${config['pms_is_remote']}">
|
<input type="hidden" id="pms_is_remote" name="pms_is_remote" value="${config['pms_is_remote']}">
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" class="form-control pms-settings" id="pms_valid" data-validate="validatePMSip" value="">
|
<input type="hidden" id="pms_valid" data-validate="validatePMSip" value="">
|
||||||
<input type="hidden" id="pms_is_cloud" name="pms_is_cloud" value="${config['pms_is_cloud']}">
|
<input type="hidden" id="pms_is_cloud" name="pms_is_cloud" value="${config['pms_is_cloud']}">
|
||||||
<input type="hidden" class="form-control pms-settings" id="pms_identifier" name="pms_identifier" value="${config['pms_identifier']}">
|
<input type="hidden" id="pms_identifier" name="pms_identifier" value="${config['pms_identifier']}">
|
||||||
<a class="btn btn-dark" id="verify-plex-server" href="#" role="button">Verify</a><span style="margin-left: 10px; display: none;" id="pms-verify-status"></span>
|
<a class="btn btn-dark" id="verify-plex-server" href="#" role="button">Verify</a><span style="margin-left: 10px; display: none;" id="pms-verify-status"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -419,7 +419,8 @@ $(document).ready(function() {
|
||||||
port: pms_port,
|
port: pms_port,
|
||||||
identifier: pms_identifier,
|
identifier: pms_identifier,
|
||||||
ssl: pms_ssl,
|
ssl: pms_ssl,
|
||||||
remote: pms_is_remote },
|
remote: pms_is_remote
|
||||||
|
},
|
||||||
cache: true,
|
cache: true,
|
||||||
async: true,
|
async: true,
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
|
@ -427,10 +428,11 @@ $(document).ready(function() {
|
||||||
$("#pms-verify-status").html('<i class="fa fa-exclamation-circle"></i> This is not a Plex Server!');
|
$("#pms-verify-status").html('<i class="fa fa-exclamation-circle"></i> This is not a Plex Server!');
|
||||||
$('#pms-verify-status').fadeIn('fast');
|
$('#pms-verify-status').fadeIn('fast');
|
||||||
},
|
},
|
||||||
success: function (json) {
|
success: function(xhr, status) {
|
||||||
var machine_identifier = json;
|
var result = xhr;
|
||||||
if (machine_identifier) {
|
var identifier = result.identifier;
|
||||||
$("#pms_identifier").val(machine_identifier);
|
if (identifier) {
|
||||||
|
$("#pms_identifier").val(identifier);
|
||||||
$("#pms-verify-status").html('<i class="fa fa-check"></i> Server found!');
|
$("#pms-verify-status").html('<i class="fa fa-check"></i> Server found!');
|
||||||
$('#pms-verify-status').fadeIn('fast');
|
$('#pms-verify-status').fadeIn('fast');
|
||||||
pms_verified = true;
|
pms_verified = true;
|
||||||
|
|
|
@ -29,7 +29,7 @@ import pmsconnect
|
||||||
import session
|
import session
|
||||||
|
|
||||||
|
|
||||||
def get_server_resources(return_presence=False):
|
def get_server_resources(return_presence=False, return_server=False, **kwargs):
|
||||||
if not return_presence:
|
if not return_presence:
|
||||||
logger.info(u"Tautulli PlexTV :: Requesting resources for server...")
|
logger.info(u"Tautulli PlexTV :: Requesting resources for server...")
|
||||||
|
|
||||||
|
@ -42,9 +42,15 @@ def get_server_resources(return_presence=False):
|
||||||
'pms_is_remote': plexpy.CONFIG.PMS_IS_REMOTE,
|
'pms_is_remote': plexpy.CONFIG.PMS_IS_REMOTE,
|
||||||
'pms_is_cloud': plexpy.CONFIG.PMS_IS_CLOUD,
|
'pms_is_cloud': plexpy.CONFIG.PMS_IS_CLOUD,
|
||||||
'pms_url': plexpy.CONFIG.PMS_URL,
|
'pms_url': plexpy.CONFIG.PMS_URL,
|
||||||
'pms_url_manual': plexpy.CONFIG.PMS_URL_MANUAL
|
'pms_url_manual': plexpy.CONFIG.PMS_URL_MANUAL,
|
||||||
|
'pms_identifier': plexpy.CONFIG.PMS_IDENTIFIER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if kwargs:
|
||||||
|
server.update(kwargs)
|
||||||
|
for k in ['pms_ssl', 'pms_is_remote', 'pms_is_cloud', 'pms_url_manual']:
|
||||||
|
server[k] = int(server[k])
|
||||||
|
|
||||||
if server['pms_url_manual'] and server['pms_ssl'] or server['pms_is_cloud']:
|
if server['pms_url_manual'] and server['pms_ssl'] or server['pms_is_cloud']:
|
||||||
scheme = 'https'
|
scheme = 'https'
|
||||||
else:
|
else:
|
||||||
|
@ -55,7 +61,7 @@ def get_server_resources(return_presence=False):
|
||||||
port=server['pms_port'])
|
port=server['pms_port'])
|
||||||
|
|
||||||
plex_tv = PlexTV()
|
plex_tv = PlexTV()
|
||||||
result = plex_tv.get_server_connections(pms_identifier=plexpy.CONFIG.PMS_IDENTIFIER,
|
result = plex_tv.get_server_connections(pms_identifier=server['pms_identifier'],
|
||||||
pms_ip=server['pms_ip'],
|
pms_ip=server['pms_ip'],
|
||||||
pms_port=server['pms_port'],
|
pms_port=server['pms_port'],
|
||||||
include_https=server['pms_ssl'])
|
include_https=server['pms_ssl'])
|
||||||
|
@ -103,6 +109,9 @@ def get_server_resources(return_presence=False):
|
||||||
server['pms_url'] = fallback_url
|
server['pms_url'] = fallback_url
|
||||||
logger.info(u"Tautulli PlexTV :: Using user-defined URL.")
|
logger.info(u"Tautulli PlexTV :: Using user-defined URL.")
|
||||||
|
|
||||||
|
if return_server:
|
||||||
|
return server
|
||||||
|
|
||||||
plexpy.CONFIG.process_kwargs(server)
|
plexpy.CONFIG.process_kwargs(server)
|
||||||
plexpy.CONFIG.write()
|
plexpy.CONFIG.write()
|
||||||
|
|
||||||
|
@ -645,6 +654,7 @@ class PlexTV(object):
|
||||||
'label': helpers.get_xml_attr(d, 'name'),
|
'label': helpers.get_xml_attr(d, 'name'),
|
||||||
'ip': helpers.get_xml_attr(c, 'address'),
|
'ip': helpers.get_xml_attr(c, 'address'),
|
||||||
'port': helpers.get_xml_attr(c, 'port'),
|
'port': helpers.get_xml_attr(c, 'port'),
|
||||||
|
'uri': helpers.get_xml_attr(c, 'uri'),
|
||||||
'local': helpers.get_xml_attr(c, 'local'),
|
'local': helpers.get_xml_attr(c, 'local'),
|
||||||
'value': helpers.get_xml_attr(c, 'address'),
|
'value': helpers.get_xml_attr(c, 'address'),
|
||||||
'is_cloud': is_cloud
|
'is_cloud': is_cloud
|
||||||
|
|
|
@ -2611,6 +2611,7 @@ class WebInterface(object):
|
||||||
"pms_ssl": plexpy.CONFIG.PMS_SSL,
|
"pms_ssl": plexpy.CONFIG.PMS_SSL,
|
||||||
"pms_is_remote": plexpy.CONFIG.PMS_IS_REMOTE,
|
"pms_is_remote": plexpy.CONFIG.PMS_IS_REMOTE,
|
||||||
"pms_is_cloud": plexpy.CONFIG.PMS_IS_CLOUD,
|
"pms_is_cloud": plexpy.CONFIG.PMS_IS_CLOUD,
|
||||||
|
"pms_url": plexpy.CONFIG.PMS_URL,
|
||||||
"pms_url_manual": checked(plexpy.CONFIG.PMS_URL_MANUAL),
|
"pms_url_manual": checked(plexpy.CONFIG.PMS_URL_MANUAL),
|
||||||
"pms_uuid": plexpy.CONFIG.PMS_UUID,
|
"pms_uuid": plexpy.CONFIG.PMS_UUID,
|
||||||
"pms_web_url": plexpy.CONFIG.PMS_WEB_URL,
|
"pms_web_url": plexpy.CONFIG.PMS_WEB_URL,
|
||||||
|
@ -2812,6 +2813,12 @@ class WebInterface(object):
|
||||||
|
|
||||||
return {'result': 'success', 'message': 'Settings saved.'}
|
return {'result': 'success', 'message': 'Settings saved.'}
|
||||||
|
|
||||||
|
@cherrypy.expose
|
||||||
|
@cherrypy.tools.json_out()
|
||||||
|
@requireAuth(member_of("admin"))
|
||||||
|
def get_server_resources(self, **kwargs):
|
||||||
|
return plextv.get_server_resources(return_server=True, **kwargs)
|
||||||
|
|
||||||
@cherrypy.expose
|
@cherrypy.expose
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
|
@ -3455,7 +3462,8 @@ class WebInterface(object):
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
@addtoapi()
|
@addtoapi()
|
||||||
def get_server_id(self, hostname=None, port=None, identifier=None, ssl=0, remote=0, **kwargs):
|
def get_server_id(self, hostname=None, port=None, identifier=None, ssl=0, remote=0, manual=0,
|
||||||
|
get_url=False, **kwargs):
|
||||||
""" Get the PMS server identifier.
|
""" Get the PMS server identifier.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -3468,7 +3476,8 @@ class WebInterface(object):
|
||||||
remote (int): 0 or 1
|
remote (int): 0 or 1
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
string: The unique PMS identifier
|
json:
|
||||||
|
{'identifier': '08u2phnlkdshf890bhdlksghnljsahgleikjfg9t'}
|
||||||
```
|
```
|
||||||
"""
|
"""
|
||||||
# Attempt to get the pms_identifier from plex.tv if the server is published
|
# Attempt to get the pms_identifier from plex.tv if the server is published
|
||||||
|
@ -3499,11 +3508,21 @@ class WebInterface(object):
|
||||||
xml_head = request.getElementsByTagName('MediaContainer')[0]
|
xml_head = request.getElementsByTagName('MediaContainer')[0]
|
||||||
identifier = xml_head.getAttribute('machineIdentifier')
|
identifier = xml_head.getAttribute('machineIdentifier')
|
||||||
|
|
||||||
|
result = {'identifier': identifier}
|
||||||
|
|
||||||
if identifier:
|
if identifier:
|
||||||
return identifier
|
if get_url == 'true':
|
||||||
|
server = self.get_server_resources(pms_ip=hostname,
|
||||||
|
pms_port=port,
|
||||||
|
pms_ssl=ssl,
|
||||||
|
pms_is_remote=remote,
|
||||||
|
pms_url_manual=manual,
|
||||||
|
pms_identifier=identifier)
|
||||||
|
result['url'] = server['pms_url']
|
||||||
|
return result
|
||||||
else:
|
else:
|
||||||
logger.warn('Unable to retrieve the PMS identifier.')
|
logger.warn('Unable to retrieve the PMS identifier.')
|
||||||
return None
|
return result
|
||||||
|
|
||||||
@cherrypy.expose
|
@cherrypy.expose
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue