+
@@ -2104,32 +2105,41 @@ $(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='plexpass']").remove();
+ $('#pms_update_channel option[value=beta]').remove();
if (plexpass) {
- var selected = (update_channel == 'plexpass') ? true : false;
+ var selected = (update_channel == 'beta') ? true : false;
$('#pms_update_channel')
.append($('
')
- .text('Plex Pass')
- .val('plexpass')
+ .text('Beta')
+ .val('beta')
.prop('selected', selected));
}
- $.getJSON('https://plex.tv/api/downloads/1.json?channel=' + update_channel, function (downloads) {
- platform_downloads = downloads.computer[platform] || downloads.nas[platform];
- if (platform_downloads) {
- $("#pms_update_distro_build option").remove();
- $.each(platform_downloads.releases, function (index, item) {
- var label = (platform_downloads.releases.length == 1) ? platform_downloads.name : platform_downloads.name + ' - ' + item.label;
- var selected = (item.distro == update_distro && item.build == update_distro_build) ? true : false;
- $('#pms_update_distro_build')
- .append($('
')
- .text(label)
- .val(item.build)
- .attr('data-distro', item.distro)
- .prop('selected', selected));
- })
- $('#pms_update_distro').val($("#pms_update_distro_build option:selected").data('distro'))
+ $.ajax({
+ url: 'https://plex.tv/api/downloads/1.json?channel=' + plex_update_channel,
+ type: 'GET',
+ 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) {
+ $("#pms_update_distro_build option").remove();
+ $.each(platform_downloads.releases, function (index, item) {
+ var label = (platform_downloads.releases.length === 1) ? platform_downloads.name : platform_downloads.name + ' - ' + item.label;
+ var selected = (item.distro === update_distro && item.build === update_distro_build) ? true : false;
+ $('#pms_update_distro_build')
+ .append($('
')
+ .text(label)
+ .val(item.build)
+ .attr('data-distro', item.distro)
+ .prop('selected', selected));
+ });
+ $('#pms_update_distro').val($('#pms_update_distro_build option:selected').data('distro'))
+ }
}
});
});
diff --git a/plexpy/config.py b/plexpy/config.py
index 9d7b72b2..76952e7a 100644
--- a/plexpy/config.py
+++ b/plexpy/config.py
@@ -61,7 +61,7 @@ _CONFIG_DEFINITIONS = {
'PMS_PLEXPASS': (int, 'PMS', 0),
'PMS_PLATFORM': (str, 'PMS', ''),
'PMS_VERSION': (str, 'PMS', ''),
- 'PMS_UPDATE_CHANNEL': (str, 'PMS', 'public'),
+ 'PMS_UPDATE_CHANNEL': (str, 'PMS', 'plex'),
'PMS_UPDATE_DISTRO': (str, 'PMS', ''),
'PMS_UPDATE_DISTRO_BUILD': (str, 'PMS', ''),
'PMS_WEB_URL': (str, 'PMS', 'https://app.plex.tv/desktop'),
@@ -876,3 +876,9 @@ class Config(object):
self.MUSIC_WATCHED_PERCENT = self.NOTIFY_WATCHED_PERCENT
self.CONFIG_VERSION = 9
+
+ if self.CONFIG_VERSION == 9:
+ if self.PMS_UPDATE_CHANNEL == 'plexpass':
+ self.PMS_UPDATE_CHANNEL = 'beta'
+
+ self.CONFIG_VERSION = 10
diff --git a/plexpy/notification_handler.py b/plexpy/notification_handler.py
index 628ef4cc..9af67043 100644
--- a/plexpy/notification_handler.py
+++ b/plexpy/notification_handler.py
@@ -839,6 +839,8 @@ def build_server_notify_params(notify_action=None, **kwargs):
date_format = plexpy.CONFIG.DATE_FORMAT.replace('Do','')
time_format = plexpy.CONFIG.TIME_FORMAT.replace('Do','')
+ update_channel = pmsconnect.PmsConnect().get_server_update_channel()
+
pms_download_info = defaultdict(str, kwargs.pop('pms_download_info', {}))
plexpy_download_info = defaultdict(str, kwargs.pop('plexpy_download_info', {}))
@@ -864,7 +866,7 @@ def build_server_notify_params(notify_action=None, **kwargs):
'update_url': pms_download_info['download_url'],
'update_release_date': arrow.get(pms_download_info['release_date']).format(date_format)
if pms_download_info['release_date'] else '',
- 'update_channel': 'Beta' if plexpy.CONFIG.PMS_UPDATE_CHANNEL == 'plexpass' else 'Public',
+ 'update_channel': 'Beta' if update_channel == 'beta' else 'Public',
'update_platform': pms_download_info['platform'],
'update_distro': pms_download_info['distro'],
'update_distro_build': pms_download_info['build'],
diff --git a/plexpy/plextv.py b/plexpy/plextv.py
index 8aa2f2aa..f816ee8a 100644
--- a/plexpy/plextv.py
+++ b/plexpy/plextv.py
@@ -648,10 +648,14 @@ class PlexTV(object):
def get_plex_downloads(self):
logger.debug(u"Tautulli PlexTV :: Retrieving current server version.")
- pmsconnect.PmsConnect().set_server_version()
- logger.debug(u"Tautulli PlexTV :: Plex update channel is %s." % plexpy.CONFIG.PMS_UPDATE_CHANNEL)
- plex_downloads = self.get_plextv_downloads(plexpass=(plexpy.CONFIG.PMS_UPDATE_CHANNEL == 'plexpass'))
+ pms_connect = pmsconnect.PmsConnect()
+ pms_connect.set_server_version()
+
+ update_channel = pms_connect.get_server_update_channel()
+
+ logger.debug(u"Tautulli PlexTV :: Plex update channel is %s." % update_channel)
+ plex_downloads = self.get_plextv_downloads(plexpass=(update_channel == 'beta'))
try:
available_downloads = json.loads(plex_downloads)
diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py
index a6f9a9fc..0d1dfe97 100644
--- a/plexpy/pmsconnect.py
+++ b/plexpy/pmsconnect.py
@@ -2586,4 +2586,15 @@ class PmsConnect(object):
version = identity.get('version', plexpy.CONFIG.PMS_VERSION)
plexpy.CONFIG.__setattr__('PMS_VERSION', version)
- plexpy.CONFIG.write()
\ No newline at end of file
+ plexpy.CONFIG.write()
+
+ def get_server_update_channel(self):
+ if plexpy.CONFIG.PMS_UPDATE_CHANNEL == 'plex':
+ update_channel_value = self.get_server_pref('ButlerUpdateChannel')
+
+ if update_channel_value == '8':
+ return 'beta'
+ else:
+ return 'public'
+
+ return plexpy.CONFIG.PMS_UPDATE_CHANNEL
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index dfdefe8d..a33e6c14 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -2798,12 +2798,16 @@ class WebInterface(object):
def get_server_update_params(self, **kwargs):
plex_tv = plextv.PlexTV()
plexpass = plex_tv.get_plexpass_status()
+
+ update_channel = pmsconnect.PmsConnect().get_server_update_channel()
+
return {'plexpass': plexpass,
'pms_platform': common.PMS_PLATFORM_NAME_OVERRIDES.get(
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}
+ 'pms_update_distro_build': plexpy.CONFIG.PMS_UPDATE_DISTRO_BUILD,
+ 'plex_update_channel': 'plexpass' if update_channel == 'beta' else 'public'}
@cherrypy.expose
@cherrypy.tools.json_out()