Browse Source

Fix add filter to data used for alternative scene episode numbers.

Change don't enable "Scene numbering" for shows without alternative scene episode numbers.
Change label/summary of editShow/Search/"Scene numbering" to "Editable episode numbers" to improve clarity for its use.
Change improve summary of addShow/Finally/"Scene numbering".
Change improve displayShow tooltips for editable episode number fields.
tags/release_0.17.13^2
JackDandy 7 years ago
parent
commit
8d003cceed
  1. 11
      CHANGES.md
  2. 6
      gui/slick/interfaces/default/editShow.tmpl
  3. 4
      gui/slick/interfaces/default/inc_addShowOptions.tmpl
  4. 4
      gui/slick/interfaces/default/inc_displayShow.tmpl
  5. 2
      gui/slick/js/newShow.js
  6. 16
      sickbeard/scene_numbering.py
  7. 19
      sickbeard/show_queue.py
  8. 3
      sickbeard/webserve.py

11
CHANGES.md

@ -1,4 +1,13 @@
### 0.17.12 (2018-10-23 19:50:00 UTC)
### 0.17.13 (2018-11-08 21:12:00 UTC)
* Fix add filter to data used for alternative scene episode numbers
* Change don't enable "Scene numbering" for shows without alternative scene episode numbers
* Change label/summary of editShow/Search/"Scene numbering" to "Editable episode numbers" to improve clarity for its use
* Change improve summary of addShow/Finally/"Scene numbering"
* Change improve displayShow tooltips for editable episode number fields
### 0.17.12 (2018-10-23 19:50:00 UTC)
* Change add text search as default for old newznab without supportedParams caps parameter

6
gui/slick/interfaces/default/editShow.tmpl

@ -168,10 +168,10 @@
<div class="field-pair">
<label for="scene">
<span class="component-title">Scene numbering</span>
<span class="component-title">Editable episode numbers</span>
<span class="component-desc">
<input type="checkbox" name="scene" id="scene"#echo ('', $html_checked)[$show.scene]#>
<p>find episodes numbered by release groups instead of the TV network <em class="grey-text">(#if $show_has_scene_map then 'scene/manual numbers' else 'manual numbers only '# available)</em></p>
<p>enable editable #if $show_has_scene_map then '(<em class="grey-text">and alternative scene release</em>) ' else ''# episode numbers for search and media processing</p>
</span>
</label>
</div>
@ -181,7 +181,7 @@
<span class="component-title">Use DVD titles and numbers</span>
<span class="component-desc">
<input type="checkbox" name="dvdorder" id="dvdorder"#echo ('', $html_checked)[$show.dvdorder]#>
<p>#echo ('enable to use DVD title and episode ordering', 'disable to use TV network title, number and aired order')[$show.dvdorder]#.&nbsp;
<p>#echo ('enable use of DVD title and episode ordering', 'disable use of TV network title, number and aired order')[$show.dvdorder]#.&nbsp;
After changing this setting, a "force full update" is essential, and existing episodes should be manually renamed or replaced with #echo ('DVD', 'network')[$show.dvdorder]# numbered releases</p>
</span>
</label>

4
gui/slick/interfaces/default/inc_addShowOptions.tmpl

@ -95,12 +95,12 @@
</label>
</div>
<div class="field-pair alt">
<div class="field-pair alt" id="scene-maps-found" style="display:none">
<label for="scene">
<span class="component-title">Scene numbering</span>
<span class="component-desc">
<input type="checkbox" name="scene" id="scene"#if $sg_var('SCENE_DEFAULT') then $checked else ''# />
<p>search for episodes numbered by scene groups instead of by the TV network<span id="scene-maps-found" style="display:none" class="grey-text"> (scene numbers found)</span></p>
<p>if any exists, enable editable episode numbers from TheXEM.de for search and media processing</p>
</span>
</label>
</div>

4
gui/slick/interfaces/default/inc_displayShow.tmpl

@ -56,7 +56,7 @@
<input type="text" placeholder="#echo '%sx%s' % ($dfltSeas, $dfltEpis)#" size="6" maxlength="8"
class="sceneSeasonXEpisode form-control input-scene" data-for-season="$ep['season']" data-for-episode="$ep['episode']"
id="sceneSeasonXEpisode_#echo '%s_%s_%s' % (($show.indexerid,) + $ep_key)#"
title="Change the value here if scene numbering differs from the indexer episode numbering"
title="Enter a new SSxEE if different at the provider (e.g. 20x5). Remove content for default"
#set $value = '%sx%s' % $scene_numbering.get($ep_key, ('', ''))
#set $value = ($value, '')['x' == $value]
value="$value"
@ -68,7 +68,7 @@
<input type="text" placeholder="$dfltAbsolute" size="6" maxlength="8"
class="sceneAbsolute form-control input-scene" data-for-season="$ep['season']" data-for-episode="$ep['episode']"
id="sceneAbsolute_#echo '%s_%s_%s' % (($show.indexerid,) + $ep_key)#"
title="Change the value here if scene absolute numbering differs from the indexer absolute numbering"
title="Enter a new absolute number if different at the provider (e.g. 22). Remove content for default"
value="$scene_absolute_numbering.get($ep_key, '')"
style="padding:0; text-align:center; max-width:60px">
</td>

2
gui/slick/js/newShow.js

@ -305,7 +305,7 @@ $(document).ready(function () {
if (elRadio.length) {
show_name = elRadio.val().split('|')[idxWhichTitle];
elScene[0].checked = 0 <= show_scene_maps.indexOf(parseInt(elRadio.val().split('|')[idxWhichShowID], 10));
$('#scene-maps-found').css('display', elScene.is(':checked') ? 'inline' : 'None');
$('#scene-maps-found').css('display', elScene.is(':checked') ? 'block' : 'None');
}
// if we provided a show in the hidden field, use that
else if (elInput.length && elInput.val().length) {

16
sickbeard/scene_numbering.py

@ -410,6 +410,20 @@ def get_scene_numbering_for_show(indexer_id, indexer):
return _get_numbering_for_show('scene_numbering', indexer, indexer_id)
def has_xem_scene_mapping(indexer_id, indexer):
"""
Test if a scene mapping exists for a show at XEM
:param indexer_id:
:type indexer_id: int
:param indexer:
:type indexer: int
:return: True if scene mapping exists, False if not
:rtype: Bool
"""
return bool(get_xem_numbering_for_show(indexer_id, indexer))
def get_xem_numbering_for_show(indexer_id, indexer):
"""
Returns a dict of (season, episode) : (scene_season, scene_episode) mappings
@ -562,7 +576,7 @@ def xem_refresh(indexer_id, indexer, force=False):
if 'success' in parsed_json['result']:
cl = []
for entry in parsed_json['data']:
for entry in filter(lambda x: 'scene' in x, parsed_json['data']):
# use scene2 for doubles
scene = 'scene%s' % ('', '_2')['scene_2' in entry]
cl.append([

19
sickbeard/show_queue.py

@ -482,9 +482,22 @@ class QueueItemAdd(ShowQueueItem):
# Load XEM data to DB for show
sickbeard.scene_numbering.xem_refresh(self.show.indexerid, self.show.indexer, force=True)
# check if show has XEM mapping and if user disabled scene numbering during add show, output availability to log
if not self.scene and self.show.indexerid in sickbeard.scene_exceptions.xem_ids_list[self.show.indexer]:
logger.log('Alternative scene episode numbers were disabled during add show. Edit show to enable them for searching.')
if self.show.scene:
# enable/disable scene flag based on if show has an explicit _scene_ mapping at XEM
self.show.scene = sickbeard.scene_numbering.has_xem_scene_mapping(
self.show.indexerid, self.show.indexer)
# if "scene" numbering is disabled during add show, output availability to log
if None is not self.scene and not self.show.scene and \
self.show.indexerid in sickbeard.scene_exceptions.xem_ids_list[self.show.indexer]:
logger.log('No scene number mappings found at TheXEM. Therefore, episode scene numbering disabled, '
'edit show and enable it to manually add custom numbers for search and media processing.')
try:
self.show.saveToDB()
except Exception as e:
logger.log('Error saving the show to the database: %s' % ex(e), logger.ERROR)
logger.log(traceback.format_exc(), logger.ERROR)
self._finishEarly()
raise
# update internal name cache
name_cache.buildNameCache(self.show)

3
sickbeard/webserve.py

@ -2227,7 +2227,8 @@ class Home(MainHandler):
with showObj.lock:
t.show = showObj
t.show_has_scene_map = showObj.indexerid in sickbeard.scene_exceptions.xem_ids_list[showObj.indexer]
t.show_has_scene_map = sickbeard.scene_numbering.has_xem_scene_mapping(
showObj.indexerid, showObj.indexer)
# noinspection PyTypeChecker
self.fanart_tmpl(t)

Loading…
Cancel
Save