diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html
index e592a6e8..6237444d 100644
--- a/data/interfaces/default/config.html
+++ b/data/interfaces/default/config.html
@@ -859,7 +859,8 @@
$("#pms-verify-status").html(' Verifying server...');
$('#pms-verify-status').fadeIn('fast');
$.ajax({
- url: 'http://' + pms_ip + ':' + pms_port + '/identity',
+ url: 'get_server_id',
+ data : { hostname: pms_ip, port: pms_port },
cache: true,
async: true,
timeout: 5000,
@@ -868,7 +869,7 @@
$('#pms-verify-status').fadeIn('fast');
},
success: function (xml) {
- if ( $(xml).find('MediaContainer').attr('machineIdentifier') ) {
+ if ($(xml).find('MediaContainer').attr('machineIdentifier')) {
$("#pms_identifier").val($(xml).find('MediaContainer').attr('machineIdentifier'));
$("#pms-verify-status").html(' Server verified!');
$('#pms-verify-status').fadeIn('fast');
diff --git a/data/interfaces/default/welcome.html b/data/interfaces/default/welcome.html
index 571c4c6d..c7d118ad 100644
--- a/data/interfaces/default/welcome.html
+++ b/data/interfaces/default/welcome.html
@@ -299,12 +299,12 @@ from plexpy import version
$("#pms-verify-status").html(' Validating server...');
$('#pms-verify-status').fadeIn('fast');
$.ajax({
- url: 'http://' + pms_ip + ':' + pms_port + '/identity',
+ url: 'get_server_id',
+ data : { hostname: pms_ip, port: pms_port },
cache: true,
async: true,
timeout: 5000,
error: function(jqXHR, textStatus, errorThrown) {
- console.log('we dont have a plex server');
$("#pms-verify-status").html(' This is not a Plex Server!');
$('#pms-verify-status').fadeIn('fast');
},
diff --git a/plexpy/http_handler.py b/plexpy/http_handler.py
index a03db388..98416c9b 100644
--- a/plexpy/http_handler.py
+++ b/plexpy/http_handler.py
@@ -39,7 +39,8 @@ class HTTPHandler(object):
request_type='GET',
headers=None,
output_format='raw',
- return_type=False):
+ return_type=False,
+ no_token=False):
valid_request_types = ['GET', 'POST', 'PUT', 'DELETE']
@@ -53,10 +54,12 @@ class HTTPHandler(object):
else:
handler = HTTPConnection(self.host, self.port, timeout=10)
- if uri.find('?') > 0:
- token_string = '&X-Plex-Token=' + self.token
- else:
- token_string = '?X-Plex-Token=' + self.token
+ token_string = ''
+ if not no_token:
+ if uri.find('?') > 0:
+ token_string = '&X-Plex-Token=' + self.token
+ else:
+ token_string = '?X-Plex-Token=' + self.token
try:
if headers:
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 964493e5..ff9ba0ba 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -1000,3 +1000,26 @@ class WebInterface(object):
@cherrypy.expose
def plexwatch_import(self, **kwargs):
return serve_template(templatename="plexwatch_import.html", title="Import PlexWatch Database")
+
+ @cherrypy.expose
+ def get_server_id(self, hostname=None, port=None, **kwargs):
+ from plexpy import http_handler
+
+ if hostname and port:
+ request_handler = http_handler.HTTPHandler(host=hostname,
+ port=port,
+ token=None)
+ uri = '/identity'
+ request = request_handler.make_request(uri=uri,
+ proto='http',
+ request_type='GET',
+ output_format='',
+ no_token=True)
+ if request:
+ cherrypy.response.headers['Content-type'] = 'application/xml'
+ return request
+ else:
+ logger.warn('Unable to retrieve data.')
+ return None
+ else:
+ return None
\ No newline at end of file