diff --git a/data/interfaces/default/current_activity_instance.html b/data/interfaces/default/current_activity_instance.html index 66925d9f..85720937 100644 --- a/data/interfaces/default/current_activity_instance.html +++ b/data/interfaces/default/current_activity_instance.html @@ -62,7 +62,6 @@ DOCUMENTATION :: END % if session is not None: <% from collections import defaultdict - from urllib import quote from plexpy import helpers from plexpy.common import VIDEO_RESOLUTION_OVERRIDES, AUDIO_CODEC_OVERRIDES, EXTRA_TYPES import plexpy @@ -81,14 +80,11 @@ DOCUMENTATION :: END
<% if data['live'] == 1: - background_url = 'images/art-live.png' + background_url = 'pms_image_proxy?img=' + data['art'] + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art-live&refresh=true' elif data['channel_stream'] == 0: background_url = 'pms_image_proxy?img=' + data['art'] + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art&refresh=true' else: - if (data['art'] and data['art'].startswith('http')) or (data['thumb'] and data['thumb'].startswith('http')): - background_url = data['art'] - else: - background_url = 'pms_image_proxy?img=' + quote(data['art'] or data['thumb']) + '&width=500&height=280&fallback=art&refresh=true&clip=true' + background_url = 'pms_image_proxy?img=' + (data['art'] or data['thumb']) + '&width=500&height=280&fallback=art&refresh=true&clip=true' %>
diff --git a/plexpy/common.py b/plexpy/common.py index 1b74989f..c944ff79 100644 --- a/plexpy/common.py +++ b/plexpy/common.py @@ -34,11 +34,21 @@ DEFAULT_USER_THUMB = "interfaces/default/images/gravatar-default-80x80.png" DEFAULT_POSTER_THUMB = "interfaces/default/images/poster.png" DEFAULT_COVER_THUMB = "interfaces/default/images/cover.png" DEFAULT_ART = "interfaces/default/images/art.png" +DEFAULT_LIVE_TV_POSTER_THUMB = "interfaces/default/images/poster-live.png" +DEFAULT_LIVE_TV_ART = "interfaces/default/images/art-live.png" ONLINE_POSTER_THUMB = "https://tautulli.com/images/poster.png" ONLINE_COVER_THUMB = "https://tautulli.com/images/cover.png" ONLINE_ART = "https://tautulli.com/images/art.png" +DEFAULT_IMAGES = { + 'poster': DEFAULT_POSTER_THUMB, + 'cover': DEFAULT_COVER_THUMB, + 'art': DEFAULT_ART, + 'poster-live': DEFAULT_LIVE_TV_POSTER_THUMB, + 'poster-art': DEFAULT_LIVE_TV_ART +} + MEDIA_TYPE_HEADERS = { 'movie': 'Movies', 'show': 'TV Shows', diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index d110a2e0..fdca4d2e 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -2694,10 +2694,14 @@ class PmsConnect(object): height = height or 1500 if img: - if refresh: + web_img = img.startswith('http') + + if refresh and not web_img: img = '{}/{}'.format(img.rstrip('/'), int(time.time())) - if clip: + if web_img: + params = {'url': '%s' % img} + elif clip: params = {'url': '%s&%s' % (img, urllib.urlencode({'X-Plex-Token': self.token}))} else: params = {'url': 'http://127.0.0.1:32400%s?%s' % (img, urllib.urlencode({'X-Plex-Token': self.token}))} diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 474e2122..a206c327 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -4038,7 +4038,7 @@ class WebInterface(object): background (str): 282828 blur (str): 3 img_format (str): png - fallback (str): "poster", "cover", "art" + fallback (str): "poster", "cover", "art", "poster-live", "poster-art" refresh (bool): True or False whether to refresh the image cache return_hash (bool): True or False to return the self-hosted image hash instead of the image @@ -4058,9 +4058,12 @@ class WebInterface(object): else: img = '/library/metadata/{}/thumb'.format(rating_key) - img_split = img.split('/') - img = '/'.join(img_split[:5]) - rating_key = rating_key or img_split[3] + web_img = img.startswith('http') + + if not web_img: + img_split = img.split('/') + img = '/'.join(img_split[:5]) + rating_key = rating_key or img_split[3] img_hash = notification_handler.set_hash_image_info( img=img, rating_key=rating_key, width=width, height=height, @@ -4111,15 +4114,8 @@ class WebInterface(object): except Exception as e: logger.warn(u'Failed to get image %s, falling back to %s.' % (img, fallback)) - fbi = None - if fallback == 'poster': - fbi = common.DEFAULT_POSTER_THUMB - elif fallback == 'cover': - fbi = common.DEFAULT_COVER_THUMB - elif fallback == 'art': - fbi = common.DEFAULT_ART - - if fbi: + if fallback in common.DEFAULT_IMAGES: + fbi = common.DEFAULT_IMAGES[fallback] fp = os.path.join(plexpy.PROG_DIR, 'data', fbi) return serve_file(path=fp, content_type='image/png') @@ -4137,14 +4133,8 @@ class WebInterface(object): img_hash = args[0].split('.')[0] - if img_hash in ('poster', 'cover', 'art'): - if img_hash == 'poster': - fbi = common.DEFAULT_POSTER_THUMB - elif img_hash == 'cover': - fbi = common.DEFAULT_COVER_THUMB - elif img_hash == 'art': - fbi = common.DEFAULT_ART - + if img_hash in common.DEFAULT_IMAGES: + fbi = common.DEFAULT_IMAGES[img_hash] fp = os.path.join(plexpy.PROG_DIR, 'data', fbi) return serve_file(path=fp, content_type='image/png')