mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-13 18:16:57 -07:00
Add "Use Server Setting" as Plex update channel
This commit is contained in:
parent
31ac82ad71
commit
5f52171fc4
6 changed files with 64 additions and 27 deletions
|
@ -553,9 +553,10 @@
|
|||
<div id="pms_update_options">
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="col-md-3">
|
||||
<label for="pms_update_channel">Update Channel</label>
|
||||
<select class="form-control" id="pms_update_channel" name="pms_update_channel">
|
||||
<option value="plex">Use Server Setting</option>
|
||||
<option value="public">Public</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -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($('<option></option>')
|
||||
.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];
|
||||
$.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;
|
||||
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($('<option></option>')
|
||||
.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'))
|
||||
});
|
||||
$('#pms_update_distro').val($('#pms_update_distro_build option:selected').data('distro'))
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'],
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -2587,3 +2587,14 @@ class PmsConnect(object):
|
|||
|
||||
plexpy.CONFIG.__setattr__('PMS_VERSION', version)
|
||||
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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue