mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-19 12:59:42 -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 id="pms_update_options">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-3">
|
||||||
<label for="pms_update_channel">Update Channel</label>
|
<label for="pms_update_channel">Update Channel</label>
|
||||||
<select class="form-control" id="pms_update_channel" name="pms_update_channel">
|
<select class="form-control" id="pms_update_channel" name="pms_update_channel">
|
||||||
|
<option value="plex">Use Server Setting</option>
|
||||||
<option value="public">Public</option>
|
<option value="public">Public</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2104,32 +2105,41 @@ $(document).ready(function() {
|
||||||
var update_channel = update_params.pms_update_channel;
|
var update_channel = update_params.pms_update_channel;
|
||||||
var update_distro = update_params.pms_update_distro;
|
var update_distro = update_params.pms_update_distro;
|
||||||
var update_distro_build = update_params.pms_update_distro_build;
|
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) {
|
if (plexpass) {
|
||||||
var selected = (update_channel == 'plexpass') ? true : false;
|
var selected = (update_channel == 'beta') ? true : false;
|
||||||
$('#pms_update_channel')
|
$('#pms_update_channel')
|
||||||
.append($('<option></option>')
|
.append($('<option></option>')
|
||||||
.text('Plex Pass')
|
.text('Beta')
|
||||||
.val('plexpass')
|
.val('beta')
|
||||||
.prop('selected', selected));
|
.prop('selected', selected));
|
||||||
}
|
}
|
||||||
|
|
||||||
$.getJSON('https://plex.tv/api/downloads/1.json?channel=' + update_channel, function (downloads) {
|
$.ajax({
|
||||||
platform_downloads = downloads.computer[platform] || downloads.nas[platform];
|
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) {
|
if (platform_downloads) {
|
||||||
$("#pms_update_distro_build option").remove();
|
$("#pms_update_distro_build option").remove();
|
||||||
$.each(platform_downloads.releases, function (index, item) {
|
$.each(platform_downloads.releases, function (index, item) {
|
||||||
var label = (platform_downloads.releases.length == 1) ? platform_downloads.name : platform_downloads.name + ' - ' + item.label;
|
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 selected = (item.distro === update_distro && item.build === update_distro_build) ? true : false;
|
||||||
$('#pms_update_distro_build')
|
$('#pms_update_distro_build')
|
||||||
.append($('<option></option>')
|
.append($('<option></option>')
|
||||||
.text(label)
|
.text(label)
|
||||||
.val(item.build)
|
.val(item.build)
|
||||||
.attr('data-distro', item.distro)
|
.attr('data-distro', item.distro)
|
||||||
.prop('selected', selected));
|
.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_PLEXPASS': (int, 'PMS', 0),
|
||||||
'PMS_PLATFORM': (str, 'PMS', ''),
|
'PMS_PLATFORM': (str, 'PMS', ''),
|
||||||
'PMS_VERSION': (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': (str, 'PMS', ''),
|
||||||
'PMS_UPDATE_DISTRO_BUILD': (str, 'PMS', ''),
|
'PMS_UPDATE_DISTRO_BUILD': (str, 'PMS', ''),
|
||||||
'PMS_WEB_URL': (str, 'PMS', 'https://app.plex.tv/desktop'),
|
'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.MUSIC_WATCHED_PERCENT = self.NOTIFY_WATCHED_PERCENT
|
||||||
|
|
||||||
self.CONFIG_VERSION = 9
|
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','')
|
date_format = plexpy.CONFIG.DATE_FORMAT.replace('Do','')
|
||||||
time_format = plexpy.CONFIG.TIME_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', {}))
|
pms_download_info = defaultdict(str, kwargs.pop('pms_download_info', {}))
|
||||||
plexpy_download_info = defaultdict(str, kwargs.pop('plexpy_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_url': pms_download_info['download_url'],
|
||||||
'update_release_date': arrow.get(pms_download_info['release_date']).format(date_format)
|
'update_release_date': arrow.get(pms_download_info['release_date']).format(date_format)
|
||||||
if pms_download_info['release_date'] else '',
|
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_platform': pms_download_info['platform'],
|
||||||
'update_distro': pms_download_info['distro'],
|
'update_distro': pms_download_info['distro'],
|
||||||
'update_distro_build': pms_download_info['build'],
|
'update_distro_build': pms_download_info['build'],
|
||||||
|
|
|
@ -648,10 +648,14 @@ class PlexTV(object):
|
||||||
|
|
||||||
def get_plex_downloads(self):
|
def get_plex_downloads(self):
|
||||||
logger.debug(u"Tautulli PlexTV :: Retrieving current server version.")
|
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)
|
pms_connect = pmsconnect.PmsConnect()
|
||||||
plex_downloads = self.get_plextv_downloads(plexpass=(plexpy.CONFIG.PMS_UPDATE_CHANNEL == 'plexpass'))
|
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:
|
try:
|
||||||
available_downloads = json.loads(plex_downloads)
|
available_downloads = json.loads(plex_downloads)
|
||||||
|
|
|
@ -2587,3 +2587,14 @@ class PmsConnect(object):
|
||||||
|
|
||||||
plexpy.CONFIG.__setattr__('PMS_VERSION', version)
|
plexpy.CONFIG.__setattr__('PMS_VERSION', version)
|
||||||
plexpy.CONFIG.write()
|
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):
|
def get_server_update_params(self, **kwargs):
|
||||||
plex_tv = plextv.PlexTV()
|
plex_tv = plextv.PlexTV()
|
||||||
plexpass = plex_tv.get_plexpass_status()
|
plexpass = plex_tv.get_plexpass_status()
|
||||||
|
|
||||||
|
update_channel = pmsconnect.PmsConnect().get_server_update_channel()
|
||||||
|
|
||||||
return {'plexpass': plexpass,
|
return {'plexpass': plexpass,
|
||||||
'pms_platform': common.PMS_PLATFORM_NAME_OVERRIDES.get(
|
'pms_platform': common.PMS_PLATFORM_NAME_OVERRIDES.get(
|
||||||
plexpy.CONFIG.PMS_PLATFORM, plexpy.CONFIG.PMS_PLATFORM),
|
plexpy.CONFIG.PMS_PLATFORM, plexpy.CONFIG.PMS_PLATFORM),
|
||||||
'pms_update_channel': plexpy.CONFIG.PMS_UPDATE_CHANNEL,
|
'pms_update_channel': plexpy.CONFIG.PMS_UPDATE_CHANNEL,
|
||||||
'pms_update_distro': plexpy.CONFIG.PMS_UPDATE_DISTRO,
|
'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.expose
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue