diff --git a/data/interfaces/default/settings.html b/data/interfaces/default/settings.html
index c8b7ecf6..4e01630a 100644
--- a/data/interfaces/default/settings.html
+++ b/data/interfaces/default/settings.html
@@ -2934,27 +2934,18 @@ $(document).ready(function() {
var update_channel = update_params.pms_update_channel;
var update_distro = update_params.pms_update_distro;
var update_distro_build = update_params.pms_update_distro_build;
- var plex_update_channel = update_params.plex_update_channel;
$('#pms_update_channel option[value=beta]').remove();
if (plexpass) {
- var selected = (update_channel == 'beta') ? true : false;
- $('#pms_update_channel')
- .append($('')
- .text('Beta')
- .val('beta')
- .prop('selected', selected));
+ $('#pms_update_channel').append($('').text('Beta').val('beta'))
}
-
- var download_url = 'https://plex.tv/api/downloads/' + (plex_update_channel === 'plexpass' ? '5' : '1') + '.json?channel=' + plex_update_channel;
+ $('#pms_update_channel option[value=' + update_channel + ']').prop('selected', true);
$.ajax({
- url: download_url,
+ url: 'get_pms_downloads',
type: 'GET',
+ data: { update_channel: update_channel },
dataType: 'json',
- beforeSend: function (xhr) {
- xhr.setRequestHeader('X-Plex-Token', $('#pms_token').val());
- },
success: function (downloads) {
var platform_downloads = downloads.computer[platform] || downloads.nas[platform];
if (platform_downloads) {
diff --git a/plexpy/activity_pinger.py b/plexpy/activity_pinger.py
index e667e943..f1aac594 100644
--- a/plexpy/activity_pinger.py
+++ b/plexpy/activity_pinger.py
@@ -261,7 +261,7 @@ def check_server_updates():
logger.info("Tautulli Monitor :: Checking for PMS updates...")
plex_tv = plextv.PlexTV()
- download_info = plex_tv.get_plex_downloads()
+ download_info = plex_tv.get_plex_update()
if download_info:
logger.info("Tautulli Monitor :: Current PMS version: %s", plexpy.CONFIG.PMS_VERSION)
diff --git a/plexpy/plextv.py b/plexpy/plextv.py
index d97c7797..d95f8d16 100644
--- a/plexpy/plextv.py
+++ b/plexpy/plextv.py
@@ -754,7 +754,16 @@ class PlexTV(object):
return clean_servers
- def get_plex_downloads(self):
+ def get_plex_downloads(self, update_channel):
+ plex_downloads = self.get_plextv_downloads(plexpass=(update_channel == 'beta'))
+
+ try:
+ return json.loads(plex_downloads)
+ except Exception as e:
+ logger.warn("Tautulli PlexTV :: Unable to load JSON for get_plex_updates: %s", e)
+ return {}
+
+ def get_plex_update(self):
logger.debug("Tautulli PlexTV :: Retrieving current server version.")
pms_connect = pmsconnect.PmsConnect()
@@ -763,12 +772,9 @@ class PlexTV(object):
update_channel = pms_connect.get_server_update_channel()
logger.debug("Tautulli PlexTV :: Plex update channel is %s." % update_channel)
- plex_downloads = self.get_plextv_downloads(plexpass=(update_channel == 'beta'))
+ available_downloads = self.get_plex_downloads(update_channel=update_channel)
- try:
- available_downloads = json.loads(plex_downloads)
- except Exception as e:
- logger.warn("Tautulli PlexTV :: Unable to load JSON for get_plex_updates.")
+ if not available_downloads:
return {}
# Get the updates for the platform
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 0688642c..586c5c27 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -3423,6 +3423,14 @@ class WebInterface(object):
if not response.ok:
cherrypy.response.status = 401
+ @cherrypy.expose
+ @cherrypy.tools.json_out()
+ @requireAuth(member_of("admin"))
+ def get_pms_downloads(self, update_channel, **kwargs):
+ plex_tv = plextv.PlexTV()
+ downloads = plex_tv.get_plex_downloads(update_channel=update_channel)
+ return downloads
+
@cherrypy.expose
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
@@ -3471,8 +3479,7 @@ class WebInterface(object):
plexpy.CONFIG.PMS_PLATFORM, plexpy.CONFIG.PMS_PLATFORM),
'pms_update_channel': plexpy.CONFIG.PMS_UPDATE_CHANNEL,
'pms_update_distro': plexpy.CONFIG.PMS_UPDATE_DISTRO,
- 'pms_update_distro_build': plexpy.CONFIG.PMS_UPDATE_DISTRO_BUILD,
- 'plex_update_channel': 'plexpass' if update_channel == 'beta' else 'public'}
+ 'pms_update_distro_build': plexpy.CONFIG.PMS_UPDATE_DISTRO_BUILD}
@cherrypy.expose
@cherrypy.tools.json_out()
@@ -6423,7 +6430,7 @@ class WebInterface(object):
```
"""
plex_tv = plextv.PlexTV()
- result = plex_tv.get_plex_downloads()
+ result = plex_tv.get_plex_update()
return result
@cherrypy.expose