diff --git a/data/interfaces/default/css/tautulli.css b/data/interfaces/default/css/tautulli.css
index c9ff27fb..136644e2 100644
--- a/data/interfaces/default/css/tautulli.css
+++ b/data/interfaces/default/css/tautulli.css
@@ -3680,10 +3680,6 @@ a.no-highlight:hover {
.login-container .form-group {
margin-bottom: 20px;
}
-.login-container .form-group label {
- font-weight: 400;
- color: #999;
-}
.login-container .form-control {
height: 38px;
line-height: 1.5em;
diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js
index 90050c46..14e12b06 100644
--- a/data/interfaces/default/js/script.js
+++ b/data/interfaces/default/js/script.js
@@ -555,12 +555,9 @@ $.fn.slideToggleBool = function(bool, options) {
};
function openPlexXML(endpoint, plextv, params) {
- var data = $.extend({endpoint: endpoint, plextv: plextv}, params);
- $.getJSON('return_plex_xml_url', data, function(xml_url) {
- if (xml_url) {
- window.open(xml_url, '_blank');
- }
- });
+ var data = $.extend({endpoint: endpoint, plextv: plextv || false}, params);
+ var query = new URLSearchParams(data)
+ window.open('open_plex_xml?' + query.toString(), '_blank');
}
function PopupCenter(url, title, w, h) {
diff --git a/data/interfaces/default/xml_shortcut.html b/data/interfaces/default/xml_shortcut.html
new file mode 100644
index 00000000..f1fd46a4
--- /dev/null
+++ b/data/interfaces/default/xml_shortcut.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+ Tautulli - ${title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sign in with Plex to view the XML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plexpy/config.py b/plexpy/config.py
index 15267560..77034bf5 100644
--- a/plexpy/config.py
+++ b/plexpy/config.py
@@ -75,7 +75,6 @@ _CONFIG_DEFINITIONS = {
'PMS_UPDATE_DISTRO_BUILD': (str, 'PMS', ''),
'PMS_UPDATE_CHECK_INTERVAL': (int, 'Advanced', 24),
'PMS_WEB_URL': (str, 'PMS', 'https://app.plex.tv/desktop'),
- 'PMS_XML_SHORTCUTS': (int, 'Advanced', 0),
'TIME_FORMAT': (str, 'General', 'HH:mm'),
'ANON_REDIRECT': (str, 'General', ''),
'ANON_REDIRECT_DYNAMIC': (int, 'General', 1),
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 787fa88e..b0bec465 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -379,26 +379,18 @@ class WebInterface(object):
return {'result': 'error', 'message': 'Failed to terminate session.'}
@cherrypy.expose
- @cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
- def return_plex_xml_url(self, endpoint='', plextv=False, **kwargs):
- if not (plexpy.CONFIG.HTTP_PASSWORD and plexpy.CONFIG.PMS_XML_SHORTCUTS):
- return
-
- kwargs['X-Plex-Token'] = plexpy.CONFIG.PMS_TOKEN
-
+ def open_plex_xml(self, endpoint='', plextv=False, **kwargs):
if helpers.bool_true(plextv):
base_url = 'https://plex.tv'
else:
- if plexpy.CONFIG.PMS_URL_OVERRIDE:
- base_url = plexpy.CONFIG.PMS_URL_OVERRIDE
- else:
- base_url = plexpy.CONFIG.PMS_URL
+ base_url = plexpy.CONFIG.PMS_URL_OVERRIDE or plexpy.CONFIG.PMS_URL
if '{machine_id}' in endpoint:
endpoint = endpoint.format(machine_id=plexpy.CONFIG.PMS_IDENTIFIER)
- return base_url + endpoint + '?' + urlencode(kwargs)
+ url = base_url + endpoint + ('?' + urlencode(kwargs) if kwargs else '')
+ return serve_template(templatename="xml_shortcut.html", title="Plex XML", url=url)
@cherrypy.expose
@requireAuth()