From 13925835507b12291a415a84ffac861086c624f8 Mon Sep 17 00:00:00 2001 From: medariox <dariovizz@hotmail.it> Date: Tue, 8 Dec 2015 14:40:48 +0100 Subject: [PATCH] Fixes many subtitles related issues --- gui/slick/views/displayShow.mako | 6 ++-- gui/slick/views/manage_subtitleMissed.mako | 34 +++++++++++++++++----- sickbeard/subtitles.py | 6 ++-- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/gui/slick/views/displayShow.mako b/gui/slick/views/displayShow.mako index 8e78f7332..9b7515d7f 100644 --- a/gui/slick/views/displayShow.mako +++ b/gui/slick/views/displayShow.mako @@ -519,8 +519,10 @@ <a class="epSearch" id="${str(show.indexerid)}x${str(epResult["season"])}x${str(epResult["episode"])}" name="${str(show.indexerid)}x${str(epResult["season"])}x${str(epResult["episode"])}" href="searchEpisode?show=${show.indexerid}&season=${epResult["season"]}&episode=${epResult["episode"]}"><img src="${srRoot}/images/search16.png" width="16" height="16" alt="search" title="Manual Search" /></a> % endif % endif - % if sickbeard.USE_SUBTITLES and show.subtitles and epResult["location"] and (len(epResult["subtitles"]) == 0 or subtitles.needs_subtitles(epResult['subtitles'])): - <a class="epSubtitlesSearch" href="searchEpisodeSubtitles?show=${show.indexerid}&season=${epResult["season"]}&episode=${epResult["episode"]}"><img src="${srRoot}/images/closed_captioning.png" height="16" alt="search subtitles" title="Search Subtitles" /></a> + % if sickbeard.USE_SUBTITLES and show.subtitles and epResult["location"]: + % if (sickbeard.SUBTITLES_MULTI and subtitles.needs_subtitles(epResult["subtitles"])) or (not sickbeard.SUBTITLES_MULTI and len(subtitles.wanted_languages()) > 0 and "und" not in epResult["subtitles"] and list(subtitles.wanted_languages())[0] not in epResult["subtitles"]): + <a class="epSubtitlesSearch" href="searchEpisodeSubtitles?show=${show.indexerid}&season=${epResult["season"]}&episode=${epResult["episode"]}"><img src="${srRoot}/images/closed_captioning.png" height="16" alt="search subtitles" title="Search Subtitles" /></a> + % endif % endif </td> </tr> diff --git a/gui/slick/views/manage_subtitleMissed.mako b/gui/slick/views/manage_subtitleMissed.mako index 25d844288..cd9d2d241 100644 --- a/gui/slick/views/manage_subtitleMissed.mako +++ b/gui/slick/views/manage_subtitleMissed.mako @@ -22,13 +22,25 @@ % endif <form action="${srRoot}/manage/subtitleMissed" method="get"> - Manage episodes without <select name="whichSubs" class="form-control form-control-inline input-sm"> - <option value="all">All</option> - % for sub_code in subtitles.wanted_languages(): - <option value="${sub_code}">${subtitles.name_from_code(sub_code)}</option> - % endfor + % if sickbeard.SUBTITLES_MULTI: + Manage episodes without <select name="whichSubs" class="form-control form-control-inline input-sm"> + <option value="all">All</option> + % for sub_code in subtitles.wanted_languages(): + <option value="${sub_code}">${subtitles.name_from_code(sub_code)}</option> + % endfor + % else: + Manage episodes without <select name="whichSubs" class="form-control form-control-inline input-sm"> + % if not subtitles.wanted_languages(): + <option value="all">All</option> + % else: + % for index, sub_code in enumerate(subtitles.wanted_languages()): + % if index == 0: + <option value="und">${subtitles.name_from_code(sub_code)}</option> + % endif + % endfor + % endif </select> - + % endif <input class="btn" type="submit" value="Manage" /> </form> @@ -36,7 +48,15 @@ ##Strange that this is used by js but is an input outside of any form? <input type="hidden" id="selectSubLang" name="selectSubLang" value="${whichSubs}" /> <form action="${srRoot}/manage/downloadSubtitleMissed" method="post"> - <h2>Episodes without ${subsLanguage} subtitles.</h2> + % if sickbeard.SUBTITLES_MULTI: + <h2>Episodes without ${subsLanguage} subtitles.</h2> + % else: + % for index, sub_code in enumerate(subtitles.wanted_languages()): + % if index == 0: + <h2>Episodes without ${subtitles.name_from_code(sub_code)} (undefined) subtitles.</h2> + % endif + % endfor + % endif <br> Download missed subtitles for selected episodes <input class="btn btn-inline" type="submit" value="Go" /> <div> diff --git a/sickbeard/subtitles.py b/sickbeard/subtitles.py index d568aa6d0..d0ab532c4 100644 --- a/sickbeard/subtitles.py +++ b/sickbeard/subtitles.py @@ -123,13 +123,13 @@ def subtitle_code_filter(): def needs_subtitles(subtitles): - if isinstance(subtitles, basestring): + if isinstance(subtitles, basestring) and sickbeard.SUBTITLES_MULTI: subtitles = {subtitle.strip() for subtitle in subtitles.split(',')} if sickbeard.SUBTITLES_MULTI: return len(wanted_languages().difference(subtitles)) > 0 - else: - return len(subtitles) == 0 + elif 'und' not in subtitles: + return True # Hack around this for now. -- GitLab