Prefer local trailers; new setting to list extras instead of playing trailer
- Fixes #515
This commit is contained in:
parent
abca9c32f9
commit
ac2a57b28d
5 changed files with 28 additions and 11 deletions
|
@ -464,6 +464,11 @@ msgctxt "#30513"
|
||||||
msgid "Limit artwork cache threads (recommended for rpi)"
|
msgid "Limit artwork cache threads (recommended for rpi)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
# PKC Settings - Sync Options
|
||||||
|
msgctxt "#30514"
|
||||||
|
msgid "Show all Plex extras instead of immediately playing trailers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
# PKC Settings - Sync Options
|
# PKC Settings - Sync Options
|
||||||
msgctxt "#30515"
|
msgctxt "#30515"
|
||||||
msgid "Maximum items to request from the server at once"
|
msgid "Maximum items to request from the server at once"
|
||||||
|
|
|
@ -52,7 +52,8 @@ STATE_SETTINGS = {
|
||||||
'fetch_pms_item_number': 'FETCH_PMS_ITEM_NUMBER',
|
'fetch_pms_item_number': 'FETCH_PMS_ITEM_NUMBER',
|
||||||
'imageSyncNotifications': 'IMAGE_SYNC_NOTIFICATIONS',
|
'imageSyncNotifications': 'IMAGE_SYNC_NOTIFICATIONS',
|
||||||
'syncSpecificPlexPlaylists': 'SYNC_SPECIFIC_PLEX_PLAYLISTS',
|
'syncSpecificPlexPlaylists': 'SYNC_SPECIFIC_PLEX_PLAYLISTS',
|
||||||
'syncSpecificKodiPlaylists': 'SYNC_SPECIFIC_KODI_PLAYLISTS'
|
'syncSpecificKodiPlaylists': 'SYNC_SPECIFIC_KODI_PLAYLISTS',
|
||||||
|
'showExtrasInsteadOfTrailer': 'SHOW_EXTRAS_INSTEAD_OF_PLAYING_TRAILER'
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
|
@ -743,26 +743,33 @@ class API(object):
|
||||||
|
|
||||||
def trailers(self):
|
def trailers(self):
|
||||||
"""
|
"""
|
||||||
Returns the URL for a single trailer, an addon path for extras
|
Returns the URL for a single trailer (local trailer preferred; first
|
||||||
(route_to_extras) if several trailers are present. Or None
|
trailer found returned) or an add-on path to list all Plex extras
|
||||||
|
if the user setting showExtrasInsteadOfTrailer is set.
|
||||||
|
Returns None if nothing is found.
|
||||||
"""
|
"""
|
||||||
url = None
|
url = None
|
||||||
number = 0
|
|
||||||
for extras in self.item.iterfind('Extras'):
|
for extras in self.item.iterfind('Extras'):
|
||||||
|
# There will always be only 1 extras element
|
||||||
|
if (len(extras) > 0 and
|
||||||
|
state.SHOW_EXTRAS_INSTEAD_OF_PLAYING_TRAILER):
|
||||||
|
return ('plugin://%s?mode=route_to_extras&plex_id=%s'
|
||||||
|
% (v.ADDON_ID, self.plex_id()))
|
||||||
for extra in extras:
|
for extra in extras:
|
||||||
try:
|
try:
|
||||||
typus = int(extra.attrib['extraType'])
|
typus = int(extra.attrib['extraType'])
|
||||||
except (KeyError, TypeError):
|
except (KeyError, TypeError):
|
||||||
typus = None
|
typus = None
|
||||||
if typus != 1:
|
if typus != 1:
|
||||||
|
# Skip non-trailers
|
||||||
continue
|
continue
|
||||||
number += 1
|
if extra.get('guid', '').startswith('file:'):
|
||||||
url = extra.get('ratingKey')
|
url = extra.get('ratingKey')
|
||||||
if number > 1:
|
# Always prefer local trailers (first one listed)
|
||||||
# Several trailers present. Hence let the user choose
|
break
|
||||||
url = ('plugin://%s?mode=route_to_extras&plex_id=%s'
|
elif not url:
|
||||||
% (v.ADDON_ID, self.plex_id()))
|
url = extra.get('ratingKey')
|
||||||
elif url:
|
if url:
|
||||||
url = ('plugin://%s.movies/?plex_id=%s&plex_type=%s&mode=play'
|
url = ('plugin://%s.movies/?plex_id=%s&plex_type=%s&mode=play'
|
||||||
% (v.ADDON_ID, url, v.PLEX_TYPE_CLIP))
|
% (v.ADDON_ID, url, v.PLEX_TYPE_CLIP))
|
||||||
return url
|
return url
|
||||||
|
|
|
@ -45,6 +45,9 @@ RESTRICTED_USER = False
|
||||||
DIRECT_PATHS = False
|
DIRECT_PATHS = False
|
||||||
# Shall we replace custom user ratings with the number of versions available?
|
# Shall we replace custom user ratings with the number of versions available?
|
||||||
INDICATE_MEDIA_VERSIONS = False
|
INDICATE_MEDIA_VERSIONS = False
|
||||||
|
# Will sync movie trailer differently: either play trailer directly or show
|
||||||
|
# all the Plex extras for the user to choose
|
||||||
|
SHOW_EXTRAS_INSTEAD_OF_PLAYING_TRAILER = False
|
||||||
# Do we need to run a special library scan?
|
# Do we need to run a special library scan?
|
||||||
RUN_LIB_SCAN = None
|
RUN_LIB_SCAN = None
|
||||||
# Number of items to fetch and display in widgets
|
# Number of items to fetch and display in widgets
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
<setting id="backgroundsync_saftyMargin" type="slider" label="39051" default="5" option="int" range="5,1,300" visible="eq(-1,true)" subsetting="true" />
|
<setting id="backgroundsync_saftyMargin" type="slider" label="39051" default="5" option="int" range="5,1,300" visible="eq(-1,true)" subsetting="true" />
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting type="lsep" label="30538" /><!-- Manual complete reset of Kodi database necessary, see "Advanced" -->
|
<setting type="lsep" label="30538" /><!-- Manual complete reset of Kodi database necessary, see "Advanced" -->
|
||||||
|
<setting id="showExtrasInsteadOfTrailer" type="bool" label="30514" default="false" /><!-- Show all Plex extras instead of immediately playing trailers -->
|
||||||
<setting id="indicate_media_versions" type="bool" label="39719" default="false" /><!-- Replace user ratings with number of versions -->
|
<setting id="indicate_media_versions" type="bool" label="39719" default="false" /><!-- Replace user ratings with number of versions -->
|
||||||
<setting id="enableMusic" type="bool" label="30509" default="true" />
|
<setting id="enableMusic" type="bool" label="30509" default="true" />
|
||||||
<setting id="useDirectPaths" type="enum" label="30511" values="Addon(Default)|Native(Direct paths)" default="0" visible="true"/> <!-- Playback mode -->
|
<setting id="useDirectPaths" type="enum" label="30511" values="Addon(Default)|Native(Direct paths)" default="0" visible="true"/> <!-- Playback mode -->
|
||||||
|
|
Loading…
Reference in a new issue