' +
@@ -2611,7 +2602,6 @@ $(document).ready(function() {
return '
' +
@@ -2634,7 +2624,6 @@ $(document).ready(function() {
var identifier = $(pms_ip_selected).data('identifier');
var ip = $(pms_ip_selected).data('ip');
var port = $(pms_ip_selected).data('port');
- var local = $(pms_ip_selected).data('local');
var ssl = $(pms_ip_selected).data('ssl');
var is_cloud = $(pms_ip_selected).data('is_cloud');
var value = $(pms_ip_selected).data('value');
@@ -2642,8 +2631,6 @@ $(document).ready(function() {
$("#pms_identifier").val(identifier !== 'undefined' ? identifier : '');
$('#pms_ip').val(ip !== 'undefined' ? ip : value);
$('#pms_port').val(port !== 'undefined' ? port : 32400);
- $('#pms_is_remote_checkbox').prop('checked', (local !== 'undefined' && local === 0));
- $('#pms_is_remote').val(local !== 'undefined' && local === 0 ? 1 : 0);
$('#pms_ssl_checkbox').prop('checked', (ssl !== 'undefined' && ssl === 1));
$('#pms_ssl').val(ssl !== 'undefined' && ssl === 1 ? 1 : 0);
$('#pms_is_cloud').val(is_cloud !== 'undefined' && is_cloud === true ? 1 : 0);
@@ -2681,7 +2668,6 @@ $(document).ready(function() {
var pms_port = $("#pms_port").val();
var pms_identifier = $("#pms_identifier").val();
var pms_ssl = $("#pms_ssl").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() !== '')) {
@@ -2693,7 +2679,6 @@ $(document).ready(function() {
hostname: pms_ip,
port: pms_port,
ssl: pms_ssl,
- remote: pms_is_remote,
manual: pms_url_manual,
get_url: true,
test_websocket: true
diff --git a/data/interfaces/default/welcome.html b/data/interfaces/default/welcome.html
index 39fc19b4..baf1b57e 100644
--- a/data/interfaces/default/welcome.html
+++ b/data/interfaces/default/welcome.html
@@ -135,7 +135,6 @@
data-identifier="${config['pms_identifier']}"
data-ip="${config['pms_ip']}"
data-port="${config['pms_port']}"
- data-local="${int(not int(config['pms_is_remote']))}"
data-ssl="${config['pms_ssl']}"
data-is_cloud="${config['pms_is_cloud']}"
data-label="${config['pms_name'] or 'Local'}"
@@ -151,7 +150,7 @@
-
+
-
-
-
-
-
' +
@@ -405,7 +395,6 @@ $(document).ready(function() {
return '
' +
@@ -428,7 +417,6 @@ $(document).ready(function() {
var identifier = $(pms_ip_selected).data('identifier');
var ip = $(pms_ip_selected).data('ip');
var port = $(pms_ip_selected).data('port');
- var local = $(pms_ip_selected).data('local');
var ssl = $(pms_ip_selected).data('ssl');
var is_cloud = $(pms_ip_selected).data('is_cloud');
var value = $(pms_ip_selected).data('value');
@@ -439,19 +427,15 @@ $(document).ready(function() {
$("#pms_identifier").val(identifier !== 'undefined' ? identifier : '');
$('#pms_ip').val(ip !== 'undefined' ? ip : value);
$('#pms_port').val(port !== 'undefined' ? port : 32400);
- $('#pms_is_remote_checkbox').prop('checked', (local !== 'undefined' && local === 0));
- $('#pms_is_remote').val(local !== 'undefined' && local === 0 ? 1 : 0);
$('#pms_ssl_checkbox').prop('checked', (ssl !== 'undefined' && ssl === 1));
$('#pms_ssl').val(ssl !== 'undefined' && ssl === 1 ? 1 : 0);
$('#pms_is_cloud').val(is_cloud !== 'undefined' && is_cloud === true ? 1 : 0);
if (is_cloud === true) {
$('#pms_port').prop('readonly', true);
- $('#pms_is_remote_checkbox').prop('disabled', true);
$('#pms_ssl_checkbox').prop('disabled', true);
} else {
$('#pms_port').prop('readonly', false);
- $('#pms_is_remote_checkbox').prop('disabled', false);
$('#pms_ssl_checkbox').prop('disabled', false);
}
},
@@ -488,7 +472,6 @@ $(document).ready(function() {
var pms_port = $("#pms_port").val().trim();
var pms_identifier = $("#pms_identifier").val();
var pms_ssl = $("#pms_ssl").val();
- var pms_is_remote = $("#pms_is_remote").val();
if ((pms_ip !== '') || (pms_port !== '')) {
$("#pms-verify-status").html(' Verifying server...');
$('#pms-verify-status').fadeIn('fast');
@@ -498,8 +481,7 @@ $(document).ready(function() {
hostname: pms_ip,
port: pms_port,
identifier: pms_identifier,
- ssl: pms_ssl,
- remote: pms_is_remote
+ ssl: pms_ssl
},
cache: true,
async: true,
diff --git a/plexpy/plextv.py b/plexpy/plextv.py
index d45ce785..eed9d50e 100644
--- a/plexpy/plextv.py
+++ b/plexpy/plextv.py
@@ -39,7 +39,6 @@ def get_server_resources(return_presence=False, return_server=False, return_info
'pms_ip': plexpy.CONFIG.PMS_IP,
'pms_port': plexpy.CONFIG.PMS_PORT,
'pms_ssl': plexpy.CONFIG.PMS_SSL,
- 'pms_is_remote': plexpy.CONFIG.PMS_IS_REMOTE,
'pms_is_cloud': plexpy.CONFIG.PMS_IS_CLOUD,
'pms_url': plexpy.CONFIG.PMS_URL,
'pms_url_manual': plexpy.CONFIG.PMS_URL_MANUAL,
@@ -52,7 +51,7 @@ def get_server_resources(return_presence=False, return_server=False, return_info
if kwargs:
server.update(kwargs)
- for k in ['pms_ssl', 'pms_is_remote', 'pms_is_cloud', 'pms_url_manual']:
+ for k in ['pms_ssl', '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']:
@@ -88,30 +87,25 @@ def get_server_resources(return_presence=False, return_server=False, return_info
# Only need to retrieve PMS_URL if using SSL
if not server['pms_url_manual'] and server['pms_ssl']:
if connections:
- if server['pms_is_remote']:
- # Get all remote connections
- conns = [c for c in connections if
- c['local'] == '0' and ('plex.direct' in c['uri'] or 'plex.service' in c['uri'])]
- else:
- # Get all local connections
- conns = [c for c in connections if
- c['local'] == '1' and ('plex.direct' in c['uri'] or 'plex.service' in c['uri'])]
-
- if conns:
- # Get connection with matching address, otherwise return first connection
- conn = next((c for c in conns if c['address'] == server['pms_ip']
- and c['port'] == str(server['pms_port'])), conns[0])
- server['pms_url'] = conn['uri']
- logger.info("Tautulli PlexTV :: Server URL retrieved.")
+ # Get connection with matching address, otherwise return first connection
+ connection = next(
+ (c for c in connections if c['address'] == server['pms_ip'] and c['port'] == str(server['pms_port'])),
+ connections[0]
+ )
+ server['pms_url'] = connection['uri']
+ server['pms_is_remote'] = int(connection['local'] == '0')
+ logger.info("Tautulli PlexTV :: Server URL retrieved.")
# get_server_urls() failed or PMS_URL not found, fallback url doesn't use SSL
if not server['pms_url']:
server['pms_url'] = fallback_url
+ server['pms_is_remote'] = 0
logger.warn("Tautulli PlexTV :: Unable to retrieve server URLs. Using user-defined value without SSL.")
- # Not using SSL, remote has no effect
+ # Not using SSL
else:
server['pms_url'] = fallback_url
+ server['pms_is_remote'] = 0
logger.info("Tautulli PlexTV :: Using user-defined URL.")
if return_server:
diff --git a/plexpy/versioncheck.py b/plexpy/versioncheck.py
index 442dcc23..2c161dd3 100644
--- a/plexpy/versioncheck.py
+++ b/plexpy/versioncheck.py
@@ -394,6 +394,7 @@ def reset_git_install():
output, err = runGit('branch -u {}/{}'.format(plexpy.CONFIG.GIT_REMOTE,
plexpy.CONFIG.GIT_BRANCH))
output, err = runGit('reset --hard {}'.format(common.RELEASE))
+ _, _ = runGit('clean -fd')
if not output:
logger.error('Unable to reset Tautulli installation.')
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 444d5a68..150bc18d 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -175,7 +175,6 @@ class WebInterface(object):
"pms_identifier": plexpy.CONFIG.PMS_IDENTIFIER,
"pms_ip": plexpy.CONFIG.PMS_IP,
"pms_port": plexpy.CONFIG.PMS_PORT,
- "pms_is_remote": plexpy.CONFIG.PMS_IS_REMOTE,
"pms_ssl": plexpy.CONFIG.PMS_SSL,
"pms_is_cloud": plexpy.CONFIG.PMS_IS_CLOUD,
"pms_name": helpers.pms_name(),
@@ -1997,15 +1996,15 @@ class WebInterface(object):
if 'start_date' in kwargs:
start_date = helpers.split_strip(kwargs.pop('start_date', ''))
if start_date:
- custom_where.append(['strftime("%Y-%m-%d", datetime(started, "unixepoch", "localtime"))', start_date])
+ custom_where.append(["strftime('%Y-%m-%d', datetime(started, 'unixepoch', 'localtime'))", start_date])
if 'before' in kwargs:
before = helpers.split_strip(kwargs.pop('before', ''))
if before:
- custom_where.append(['strftime("%Y-%m-%d", datetime(started, "unixepoch", "localtime")) <', before])
+ custom_where.append(["strftime('%Y-%m-%d', datetime(started, 'unixepoch', 'localtime')) <", before])
if 'after' in kwargs:
after = helpers.split_strip(kwargs.pop('after', ''))
if after:
- custom_where.append(['strftime("%Y-%m-%d", datetime(started, "unixepoch", "localtime")) >', after])
+ custom_where.append(["strftime('%Y-%m-%d', datetime(started, 'unixepoch', 'localtime')) >", after])
if 'reference_id' in kwargs:
reference_id = helpers.split_strip(kwargs.pop('reference_id', ''))
if reference_id:
@@ -3247,7 +3246,6 @@ class WebInterface(object):
# If we change the SSL setting for PMS or PMS remote setting, make sure we grab the new url.
if kwargs.get('pms_ssl') != str(plexpy.CONFIG.PMS_SSL) or \
- kwargs.get('pms_is_remote') != str(plexpy.CONFIG.PMS_IS_REMOTE) or \
kwargs.get('pms_url_manual') != plexpy.CONFIG.PMS_URL_MANUAL:
server_changed = True
@@ -4060,7 +4058,7 @@ class WebInterface(object):
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
@addtoapi()
- def get_server_id(self, hostname=None, port=None, identifier=None, ssl=0, remote=0, manual=0,
+ def get_server_id(self, hostname=None, port=None, identifier=None, ssl=0, manual=0,
get_url=False, test_websocket=False, **kwargs):
""" Get the PMS server identifier.
@@ -4115,7 +4113,6 @@ class WebInterface(object):
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']
diff --git a/plexpy/webstart.py b/plexpy/webstart.py
index b02e9ec1..62ab41ae 100644
--- a/plexpy/webstart.py
+++ b/plexpy/webstart.py
@@ -51,6 +51,7 @@ def start():
def stop():
logger.info("Tautulli WebStart :: Stopping Tautulli web server...")
cherrypy.engine.exit()
+ cherrypy.server.httpserver = None
def restart():