When transcoding, only let user choose to burn-in subtitles that can't be displayed otherwise by Kodi
This commit is contained in:
parent
310ae54e7b
commit
1021c47b04
3 changed files with 38 additions and 53 deletions
|
@ -1060,11 +1060,6 @@ msgctxt "#39074"
|
|||
msgid "TV Shows"
|
||||
msgstr ""
|
||||
|
||||
# PKC Settings - Playback
|
||||
msgctxt "#39075"
|
||||
msgid "Always use default Plex subtitle if possible"
|
||||
msgstr ""
|
||||
|
||||
# Pop-up during initial sync
|
||||
msgctxt "#39076"
|
||||
msgid "If you use several Plex libraries of one kind, e.g. \"Kids Movies\" and \"Parents Movies\", be sure to check the Wiki: https://goo.gl/JFtQV9"
|
||||
|
@ -1369,9 +1364,9 @@ msgid "Use at your own risk"
|
|||
msgstr ""
|
||||
|
||||
|
||||
# If user gets prompted to choose between several subtitles. Leave the number one at the beginning of the string!
|
||||
# If user gets prompted to choose between several subtitles to burn in
|
||||
msgctxt "#39706"
|
||||
msgid "1 No subtitles"
|
||||
msgid "Don't burn-in any subtitle"
|
||||
msgstr ""
|
||||
|
||||
# If user gets prompted to choose between several audio/subtitle tracks and language is unknown
|
||||
|
|
|
@ -337,8 +337,8 @@ def audio_subtitle_prefs(api, listitem):
|
|||
audio_streams_list = []
|
||||
audio_streams = []
|
||||
subtitle_streams_list = []
|
||||
# No subtitles as an option
|
||||
subtitle_streams = [utils.lang(39706)]
|
||||
# "Don't burn-in any subtitle"
|
||||
subtitle_streams = ['1 %s' % utils.lang(39706)]
|
||||
downloadable_streams = []
|
||||
download_subs = []
|
||||
# selectAudioIndex = ""
|
||||
|
@ -346,7 +346,6 @@ def audio_subtitle_prefs(api, listitem):
|
|||
audio_numb = 0
|
||||
# Remember 'no subtitles'
|
||||
sub_num = 1
|
||||
default_sub = None
|
||||
|
||||
for stream in mediastreams:
|
||||
# Since Plex returns all possible tracks together, have to sort
|
||||
|
@ -373,21 +372,11 @@ def audio_subtitle_prefs(api, listitem):
|
|||
|
||||
# Subtitles
|
||||
elif typus == "3":
|
||||
try:
|
||||
track = '{} {}'.format(sub_num, stream.attrib['displayTitle'])
|
||||
except KeyError:
|
||||
track = '{} {} ({})'.format(sub_num + 1,
|
||||
utils.lang(39707), # unknown
|
||||
stream.get('codec'))
|
||||
default = stream.get('default')
|
||||
forced = stream.get('forced')
|
||||
downloadable = stream.get('key')
|
||||
|
||||
if default:
|
||||
track = "%s - %s" % (track, utils.lang(39708)) # Default
|
||||
if forced:
|
||||
track = "%s - %s" % (track, utils.lang(39709)) # Forced
|
||||
if downloadable:
|
||||
# Download the subtitle to Kodi - the user will need to
|
||||
# manually select the subtitle on the Kodi side
|
||||
# Hence do NOT show dialog for this sub
|
||||
path = api.download_external_subtitles(
|
||||
'{{server}}{}'.format(stream.get('key')),
|
||||
stream.get('displayTitle'),
|
||||
|
@ -396,12 +385,21 @@ def audio_subtitle_prefs(api, listitem):
|
|||
downloadable_streams.append(index)
|
||||
download_subs.append(path.encode('utf-8'))
|
||||
else:
|
||||
# Burn in the subtitle, if user chooses to do so
|
||||
default = stream.get('default')
|
||||
forced = stream.get('forced')
|
||||
try:
|
||||
track = '{} {}'.format(sub_num + 1,
|
||||
stream.attrib['displayTitle'])
|
||||
except KeyError:
|
||||
track = '{} {} ({})'.format(sub_num + 1,
|
||||
utils.lang(39707), # unknown
|
||||
stream.get('codec'))
|
||||
if default:
|
||||
track = "%s - %s" % (track, utils.lang(39708)) # Default
|
||||
if forced:
|
||||
track = "%s - %s" % (track, utils.lang(39709)) # Forced
|
||||
track = "%s (%s)" % (track, utils.lang(39710)) # burn-in
|
||||
if stream.get('selected') == '1' and downloadable:
|
||||
# Only show subs without asking user if they can be
|
||||
# turned off
|
||||
default_sub = index
|
||||
|
||||
subtitle_streams_list.append(index)
|
||||
subtitle_streams.append(track.encode('utf-8'))
|
||||
sub_num += 1
|
||||
|
@ -418,30 +416,23 @@ def audio_subtitle_prefs(api, listitem):
|
|||
action_type='PUT',
|
||||
parameters=args)
|
||||
|
||||
if sub_num == 1:
|
||||
# No subtitles
|
||||
return
|
||||
|
||||
select_subs_index = None
|
||||
if (utils.settings('pickPlexSubtitles') == 'true' and
|
||||
default_sub is not None):
|
||||
LOG.info('Using default Plex subtitle: %s', default_sub)
|
||||
select_subs_index = default_sub
|
||||
else:
|
||||
resp = utils.dialog('select', utils.lang(33014), subtitle_streams)
|
||||
if resp > 0:
|
||||
select_subs_index = subtitle_streams_list[resp - 1]
|
||||
else:
|
||||
# User selected no subtitles or backed out of dialog
|
||||
select_subs_index = ''
|
||||
|
||||
LOG.debug('Adding external subtitles: %s', download_subs)
|
||||
LOG.debug('Adding downloadable subtitles: %s', download_subs)
|
||||
# Enable Kodi to switch autonomously to downloadable subtitles
|
||||
if download_subs:
|
||||
listitem.setSubtitles(download_subs)
|
||||
# Don't additionally burn in subtitles
|
||||
if select_subs_index in downloadable_streams:
|
||||
select_subs_index = ''
|
||||
if sub_num == 1:
|
||||
LOG.debug('No subtitles to burn-in')
|
||||
return
|
||||
|
||||
resp = utils.dialog('select', utils.lang(33014), subtitle_streams)
|
||||
if resp < 1:
|
||||
# User did not select a subtitle or backed out of the dialog
|
||||
LOG.debug('User chose to not burn-in any subtitles')
|
||||
return
|
||||
select_subs_index = subtitle_streams_list[resp - 1]
|
||||
LOG.debug('User chose to burn-in subtitle %s: %s',
|
||||
select_subs_index,
|
||||
subtitle_streams[resp].decode('utf-8'))
|
||||
# Now prep the PMS for our choice
|
||||
args = {
|
||||
'subtitleStreamID': select_subs_index,
|
||||
|
|
|
@ -107,7 +107,6 @@
|
|||
<setting id="enableCinema" type="bool" label="30518" default="false" />
|
||||
<setting id="askCinema" type="bool" label="30519" default="false" visible="eq(-1,true)" subsetting="true" />
|
||||
<setting id="trailerNumber" type="slider" label="39000" default="3" visible="eq(-2,true)" range="1,1,15" option="int" />
|
||||
<setting id="pickPlexSubtitles" type="bool" label="39075" default="true" />
|
||||
<setting id="ignoreSpecialsNextEpisodes" type="bool" label="30527" default="false" />
|
||||
<setting id="resumeJumpBack" type="slider" label="30521" default="10" range="0,1,120" option="int" visible="false"/>
|
||||
<setting type="sep" />
|
||||
|
|
Loading…
Reference in a new issue