mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-11 05:33:37 +00:00
4bd6576688
Change display genres sourced from indexers in labels underneath the show title on displayShow, remove the tag image. Change IMDb genre links to have the tag image applied to the link making it an easier target to click and also visually different from indexer genres. Fix scene anime html id construction in line with plot_info.
589 lines
26 KiB
Cheetah
589 lines
26 KiB
Cheetah
#import sickbeard
|
|
#import re
|
|
#from sickbeard import subtitles, sbdatetime, network_timezones
|
|
#import sickbeard.helpers
|
|
#from sickbeard.common import *
|
|
#from sickbeard.helpers import anon_url
|
|
#from lib import subliminal
|
|
#import os.path, os
|
|
#import datetime
|
|
|
|
#set global $title = $show.name
|
|
#set global $topmenu = 'home'
|
|
#set $exceptions_string = ', '.join($show.exceptions)
|
|
|
|
#set global $page_body_attr = 'display-show'
|
|
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
|
|
|
|
<script type="text/javascript" src="$sbRoot/js/lib/jquery.bookmarkscroll.js?$sbPID"></script>
|
|
|
|
<input type="hidden" id="sbRoot" value="$sbRoot">
|
|
|
|
<script type="text/javascript" src="$sbRoot/js/displayShow.js?$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/sceneExceptionsTooltip.js?$sbPID"></script>
|
|
#if $sickbeard.USE_IMDB_INFO:
|
|
<script type="text/javascript" src="$sbRoot/js/ratingTooltip.js?$sbPID"></script>
|
|
#end if
|
|
<script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js?$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/ajaxEpSubtitles.js?$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/lib/jquery.collapser.min.js?$sbPID"></script>
|
|
<script type="text/javascript" charset="utf-8">
|
|
<!--
|
|
\$(document).ready(function(){
|
|
#set $fuzzydate = 'airdate'
|
|
#if $sickbeard.FUZZY_DATING:
|
|
fuzzyMoment({
|
|
containerClass : '.${fuzzydate}',
|
|
dateHasTime : false,
|
|
dateFormat : '${sickbeard.DATE_PRESET}',
|
|
timeFormat : '${sickbeard.TIME_PRESET}',
|
|
trimZero : #if $sickbeard.TRIM_ZERO then 'true' else 'false'#
|
|
});
|
|
#end if
|
|
#raw
|
|
$('.addQTip').each(function () {
|
|
$(this).css({'cursor':'help', 'text-shadow':'0px 0px 0.5px #666'});
|
|
$(this).qtip({
|
|
show: {solo:true},
|
|
position: {viewport:$(window), my:'left center', adjust:{ y: -10, x: 2 }},
|
|
style: {classes:'qtip-rounded qtip-shadow qtip-maxwidth'}
|
|
});
|
|
});
|
|
#end raw
|
|
#if $sickbeard.USE_IMDB_INFO:
|
|
\$.fn.generateStars = function() {
|
|
return this.each(function(i,e){\$(e).html(\$('<span/>').width(\$(e).text()*12));});
|
|
};
|
|
\$('.imdbstars').generateStars();
|
|
#end if
|
|
TVShowList = [${tvshow_id_csv}]
|
|
});
|
|
//-->
|
|
</script>
|
|
|
|
<div class="displayshow-wrapper reg all">
|
|
|
|
<div class="background-container">
|
|
<div style="" class="background"></div>
|
|
</div>
|
|
|
|
<div class="pull-left form-inline">
|
|
Change show:
|
|
#set $displayshowlist = []
|
|
#set $cur_sel = 0
|
|
#for $curShowList in $sortedShowLists
|
|
#set $curShowType = $curShowList[0]
|
|
#set $curShowList = $curShowList[1]
|
|
#if 1 < len($sortedShowLists):
|
|
$displayshowlist.append('\t\t\t<optgroup label="%s">' % $curShowType)
|
|
#end if
|
|
#for $curShow in $curShowList
|
|
#set void = $displayshowlist.append('\t\t\t<option value="%s"%s>%s</option>' % ($curShow.indexerid, ('', ' selected="selected"')[$curShow == $show], $curShow.name))
|
|
#if $curShow == $show
|
|
#set $cur_sel = len($displayshowlist)
|
|
#end if
|
|
#end for
|
|
#if 1 < len($sortedShowLists)
|
|
#set void = $displayshowlist.append('\t\t\t</optgroup>')
|
|
#end if
|
|
#end for
|
|
#set $last_item = len($displayshowlist)
|
|
#set $prev_option = $displayshowlist[($cur_sel - 2, $last_item - 1)[1 == $cur_sel]]
|
|
#set $next_option = $displayshowlist[($cur_sel, 0)[$last_item == $cur_sel]]
|
|
#set $next_match = re.search(r'<opt[^>]+>(.*?)</opt', $prev_option)
|
|
#set $prev_match = re.search(r'<opt[^>]+>(.*?)</opt', $next_option)
|
|
#set $prev_title = 'Prev show' if not $next_match else 'Prev show, ' + $next_match.group(1)
|
|
#set $next_title = 'Next show' if not $prev_match else 'Next show, ' + $prev_match.group(1)
|
|
#slurp
|
|
<div class="navShow"><img id="prevShow" src="$sbRoot/images/prev.png" alt="<<" title="$prev_title" class="addQTip" /></div>
|
|
<select id="pickShow" class="form-control form-control-inline input-sm">
|
|
#echo '\n'.join($displayshowlist)#
|
|
</select>
|
|
<div class="navShow"><img id="nextShow" src="$sbRoot/images/next.png" alt=">>" title="$next_title" class="addQTip" /></div>
|
|
</div>
|
|
|
|
<div class="clearfix" style="margin-bottom:15px"></div>
|
|
|
|
#if $show_message:
|
|
<div class="alert alert-info">
|
|
$show_message
|
|
</div>
|
|
#end if
|
|
|
|
<div class="display-show-container">
|
|
<div id="posterCol" class="hidden-xs">
|
|
<a href="$sbRoot/showPoster/?show=$show.indexerid&which=poster" rel="dialog" title="View poster for $show.name">
|
|
<img src="$sbRoot/showPoster/?show=$show.indexerid&which=poster_thumb" class="tvshowImg" alt="" />
|
|
</a>
|
|
</div>
|
|
|
|
<div id="showCol" class="display-details">
|
|
#if int($show.paused):
|
|
<div class="paused paused-highlight">
|
|
<i class="sgicon-pause paused-outline"></i>
|
|
</div>
|
|
#end if
|
|
<div id="details-wrapper">
|
|
<div id="details-right">
|
|
#if $seasonResults:
|
|
##There is a special/season_0?##
|
|
#set $season_special = (0, 1)[0 == int($seasonResults[-1]['season'])]
|
|
|
|
#if not $sickbeard.DISPLAY_SHOW_SPECIALS and $season_special:
|
|
$seasonResults.pop(-1)
|
|
#end if
|
|
<div>
|
|
#if $season_special:
|
|
<span class="details-title">Specials</span>
|
|
<span class="details-info">#if sickbeard.DISPLAY_SHOW_SPECIALS#<a href="#season-0">View</a><span style="margin:0 10px">-</span>#end if#<a class="inner" href="$sbRoot/toggleDisplayShowSpecials/?show=$show.indexerid">#echo ('Show', 'Hide')[sickbeard.DISPLAY_SHOW_SPECIALS]#</a></span>
|
|
#end if
|
|
</div>
|
|
#set $many_seasons = 12 < len($seasonResults)
|
|
<div class="details-seasons">
|
|
<span class="details-title#echo ('', ' combo-seasons')[$many_seasons]#">Season</span>
|
|
<span class="details-info">
|
|
#if $many_seasons:
|
|
<select id="seasonJump" class="form-control form-control-inline input-sm">
|
|
<option value="jump">Jump to season</option>
|
|
#for $seasonNum in $seasonResults:
|
|
#if 0 == int($seasonNum['season'])
|
|
#continue
|
|
#end if
|
|
<option value="#season-$seasonNum['season']">Season $seasonNum['season']</option>
|
|
#end for
|
|
</select>
|
|
#else:
|
|
#for $seasonNum in $seasonResults:
|
|
#if 0 == int($seasonNum['season'])
|
|
#continue
|
|
#end if
|
|
<a href="#season-$seasonNum['season']">$seasonNum['season']</a>
|
|
#end for
|
|
#end if
|
|
</span>
|
|
</div>
|
|
#end if
|
|
</div>
|
|
|
|
<div id="details-top">
|
|
<div id="showtitle" data-showname="$show.name">
|
|
<h2 class="title" id="scene_exception_$show.indexerid"><span>$show.name</span></h2>
|
|
#if not $sickbeard.USE_IMDB_INFO or not $show.imdbid
|
|
#if $show.genre:
|
|
#for $genre in $show.genre[1:-1].split('|')
|
|
<span class="label">$genre</span>
|
|
#end for
|
|
#end if
|
|
#end if
|
|
#if $sickbeard.USE_IMDB_INFO and 'genres' in $show.imdb_info and '' != $show.imdb_info['genres']:
|
|
#for $imdbgenre in $show.imdb_info['genres'].split('|')
|
|
<span class="label"><a href="<%= anon_url('http://www.imdb.com/search/title?at=0&genres=', imdbgenre.lower().replace('-','_'),'&sort=moviemeter,asc&title_type=tv_series') %>" target="_blank" title="View other popular $imdbgenre shows on imdb.com">$imdbgenre.replace('Sci-Fi','Science-Fiction')</a></span>
|
|
#end for
|
|
#end if
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="details-wrapper">
|
|
<div id="details-right">
|
|
<div>
|
|
<span class="details-title">Indexers</span>
|
|
<span class="details-info">
|
|
#set $_show = $show
|
|
#if $sickbeard.USE_IMDB_INFO and $show.imdbid
|
|
<a class="service" href="<%= anon_url('http://www.imdb.com/title/', _show.imdbid) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="Show IMDb info in new tab"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" /></a>
|
|
#end if
|
|
<a class="service" href="<%= anon_url(sickbeard.indexerApi(_show.indexer).config['show_url'], _show.indexerid) %>" onclick="window.open(this.href, '_blank'); return false;" title="Show $sickbeard.indexerApi($show.indexer).name info in new tab"><img alt="$sickbeard.indexerApi($show.indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($show.indexer).config['icon']" /></a>
|
|
#if $xem_numbering or $xem_absolute_numbering:
|
|
<a class="service" href="<%= anon_url('http://thexem.de/search?q=', _show.name) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="Show XEM info in new tab"><img alt="[xem]" height="16" width="16" src="$sbRoot/images/xem.png" /></a>
|
|
#end if
|
|
</span>
|
|
</div>
|
|
|
|
#if not $sickbeard.USE_IMDB_INFO or not $show.imdbid
|
|
#set $runtime = $show.runtime
|
|
#set $startyear = $show.startyear
|
|
#elif $sickbeard.USE_IMDB_INFO
|
|
#if 'countries' in $show.imdb_info:
|
|
#set $country = $show.imdb_info['countries']
|
|
#end if
|
|
#if 'year' in $show.imdb_info:
|
|
#set $runtime = $show.imdb_info['runtimes']
|
|
#set $startyear = $show.imdb_info['year']
|
|
#end if
|
|
#end if
|
|
<div>
|
|
<span class="details-title">Premiered</span>
|
|
<span class="details-info">
|
|
<span class="space-right">$startyear</span>
|
|
#if $sickbeard.USE_IMDB_INFO and 'country_codes' in $show.imdb_info and '' != $show.imdb_info['country_codes']:
|
|
#for $country in $show.imdb_info['country_codes'].split('|')
|
|
<img class="flag space-right" src="$sbRoot/images/flags/${$country}.png" width="16" height="11" />
|
|
#end for
|
|
#end if
|
|
</span>
|
|
</div>
|
|
|
|
#if $show.airs:
|
|
#set $showairs = '%s%s' % ($show.airs.replace('y', 'y,'),
|
|
('', ' <span class="red-text" style="font-weight:bold">(invalid timeformat)</span>')[not $network_timezones.test_timeformat($show.airs)])
|
|
<div>
|
|
<span class="details-title">Airs</span>
|
|
<span class="details-info">$showairs</span>
|
|
</div>
|
|
#end if
|
|
|
|
#if $show.network:
|
|
<div>
|
|
<span class="details-title">Network</span>
|
|
<span class="details-info">$show.network</span>
|
|
</div>
|
|
#end if
|
|
|
|
<div>
|
|
<span class="details-title">Runtime</span>
|
|
<span class="details-info">$runtime minutes</span>
|
|
</div>
|
|
|
|
#if '' != $show.status:
|
|
<div>
|
|
<span class="details-title">Status</span>
|
|
<span class="details-info">$show.status</span>
|
|
</div>
|
|
#end if
|
|
|
|
#if $sickbeard.USE_IMDB_INFO and 'rating' in $show.imdb_info
|
|
<div>
|
|
<span class="details-title">IMDb rating</span>
|
|
<span class="details-info">
|
|
#if '' != $show.imdb_info['votes']
|
|
#set $rating_tip = '%s of 10 stars<br />%s votes' % (str($show.imdb_info['rating']), str($show.imdb_info['votes']))
|
|
<span class="imdbstars" qtip-content="$rating_tip">$show.imdb_info['rating']</span>
|
|
#else
|
|
<span>No votes available</span>
|
|
#end if
|
|
</span>
|
|
</div>
|
|
#end if
|
|
|
|
#set $anyQualities, $bestQualities = $Quality.splitQuality(int($show.quality))
|
|
#if $show.quality in $qualityPresets:
|
|
<div>
|
|
<span class="details-title">Quality</span>
|
|
<span class="details-info">
|
|
<span class="quality $qualityPresetStrings[$show.quality]">$qualityPresetStrings[$show.quality]</span>
|
|
</span>
|
|
</div>
|
|
#else:
|
|
#if $anyQualities:
|
|
<div>
|
|
<span class="details-title">Initial</span>
|
|
<span class="details-info">
|
|
#echo ', '.join([$Quality.qualityStrings[$x] for $x in sorted($anyQualities)])#
|
|
</span>
|
|
</div>
|
|
#end if
|
|
#if $bestQualities:
|
|
<div>
|
|
<span class="details-title">Replace with</span>
|
|
<span class="details-info">
|
|
#echo ', '.join([$Quality.qualityStrings[$x] for $x in sorted($bestQualities)])#
|
|
</span>
|
|
</div>
|
|
#end if
|
|
#end if
|
|
</div>
|
|
|
|
<div id="details-left">
|
|
<div class="details-plot#echo ('', ' no-plot')['' == $show.overview]#">
|
|
#echo ('No plot overview available', $show.overview)['' != $show.overview]#
|
|
</div>
|
|
|
|
<div id="details-bottom">
|
|
<span class="label addQTip" title="Info language, $show.lang"><img src="$sbRoot/images/flags/${show.lang}.png" width="16" height="11" alt="Info language, $show.lang" title="Info language, $show.lang" style="margin-top:-1px" /></span>
|
|
<span class="label addQTip" title="Location#echo (' no longer exists" style="background-color:#8f1515"', '"')[$showLoc[1]]#>$showLoc[0]</span>
|
|
<span class="label addQTip" title="Size">$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))</span>
|
|
#set $filecount = sum([$c for $k, $c in $epCounts['videos'].items()])
|
|
<span class="label addQTip" title="Videos">$filecount file$sickbeard.helpers.maybe_plural($filecount)</span>
|
|
#if $show.paused
|
|
<span class="label label-paused">Paused</span>
|
|
#end if
|
|
#if ($anyQualities + $bestQualities) and int($show.archive_firstmatch)
|
|
<span class="label">Archive first match</span>
|
|
#end if
|
|
#if $show.exceptions:
|
|
<span class="label addQTip" title="$exceptions_string.replace(', ', '<br />')">Scene names</span>
|
|
#end if
|
|
#if $show.rls_ignore_words:
|
|
<span class="label addQTip" title="#echo $show.rls_ignore_words.replace(',', '<br />')#">Ignored words</span>
|
|
#end if
|
|
#if $show.rls_require_words:
|
|
<span class="label addQTip" title="#echo $show.rls_require_words.replace(',', '<br />')#">Required words</span>
|
|
#end if
|
|
#if $show.flatten_folders or $sickbeard.NAMING_FORCE_FOLDERS:
|
|
<span class="label">Flat folders</span>
|
|
#end if
|
|
#if int($show.air_by_date):
|
|
<span class="label">Air by date</span>
|
|
#end if
|
|
#if int($show.dvdorder):
|
|
<span class="label">DVD order</span>
|
|
#end if
|
|
#if int($show.scene):
|
|
<span class="label">Scene numbering</span>
|
|
#end if
|
|
#if $sickbeard.USE_SUBTITLES and int($show.subtitles):
|
|
<span class="label">Subtitles</span>
|
|
#end if
|
|
#if int($show.is_sports):
|
|
<span class="label">Sports</span>
|
|
#end if
|
|
#if int($show.is_anime):
|
|
<span class="label">Anime</span>
|
|
#end if
|
|
#if $bwl and $bwl.whitelist:
|
|
<span class="label addQTip" title="#echo ', '.join($bwl.whitelist).replace(',', '<br />')#">Wanted group$sickbeard.helpers.maybe_plural(len($bwl.whitelist))</span>
|
|
#end if
|
|
#if $bwl and $bwl.blacklist:
|
|
<span class="label addQTip" title="#echo ', '.join($bwl.blacklist).replace(',', '<br />')#">Unwanted group$sickbeard.helpers.maybe_plural(len($bwl.blacklist))</span>
|
|
#end if
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
<div class="pull-left">
|
|
<p style="margin-bottom:5px">Change selected episodes to</p>
|
|
<select id="statusSelect" class="form-control form-control-inline input-sm">
|
|
#for $curStatus in [$WANTED, $SKIPPED, $ARCHIVED, $IGNORED, $FAILED] + sorted($Quality.DOWNLOADED):
|
|
#if $DOWNLOADED == $curStatus:
|
|
#continue
|
|
#end if
|
|
<option value="$curStatus">$statusStrings[$curStatus]</option>
|
|
#end for
|
|
</select>
|
|
<input type="hidden" id="showID" value="$show.indexerid">
|
|
<input type="hidden" id="indexer" value="$show.indexer">
|
|
<input class="btn btn-inline" type="button" id="changeStatus" value="Go">
|
|
</div>
|
|
|
|
<div class="pull-right clearfix" id="checkboxControls">
|
|
<div style="padding-bottom:5px">
|
|
<label for="wanted"><span class="wanted"><input type="checkbox" id="wanted" checked="checked"> Wanted: <b>$epCounts[$Overview.WANTED]</b></span></label>
|
|
<label for="qual"><span class="qual"><input type="checkbox" id="qual" checked="checked"> Low quality: <b>$epCounts[$Overview.QUAL]</b></span></label>
|
|
<label for="good"><span class="good"><input type="checkbox" id="good" checked="checked"> Downloaded: <b>$epCounts[$Overview.GOOD]</b></span></label>
|
|
<label for="skipped"><span class="skipped"><input type="checkbox" id="skipped" checked="checked"> Skipped: <b>$epCounts[$Overview.SKIPPED]</b></span></label>
|
|
<label for="snatched"><span class="snatched"><input type="checkbox" id="snatched" checked="checked"> Snatched: <b>$epCounts[$Overview.SNATCHED]</b></span></label>
|
|
</div>
|
|
|
|
<div class="pull-right" >
|
|
<button class="btn btn-xs seriesCheck">Select filtered episodes</button>
|
|
<button class="btn btn-xs clearAll">Clear all</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
#set $curSeason = -1
|
|
#set $odd = 0
|
|
|
|
#set $scene, $scene_anime = (False, False)
|
|
#if not $show.air_by_date and not $show.is_sports and not $show.is_anime and $show.is_scene:
|
|
#set $scene = True
|
|
#elif not $show.air_by_date and not $show.is_sports and $show.is_anime and $show.is_scene:
|
|
#set $scene_anime = True
|
|
#end if
|
|
|
|
#if 0 == len($sqlResults)
|
|
<div style="margin-top:50px"><h3>Episodes no longer exist for this show at the associated indexer</h3></div>
|
|
#else:
|
|
#for $epResult in $sqlResults:
|
|
#set $epStr = '%sx%s' % ($epResult['season'], $epResult['episode'])
|
|
#if not $epStr in $epCats or (0 == int($epResult['season']) and not $sickbeard.DISPLAY_SHOW_SPECIALS):
|
|
#continue
|
|
#end if
|
|
#slurp
|
|
#if $curSeason != int($epResult['season']):
|
|
#if 0 <= $curSeason:
|
|
</tbody>
|
|
</table>
|
|
|
|
#end if
|
|
<table class="sickbeardTable" cellspacing="0" border="0" cellpadding="0">
|
|
<tr id="season-$epResult['season']">
|
|
<th class="row-seasonheader" colspan="13">
|
|
|
|
<button id="showseason-$epResult['season']" type="button" class="btn btn-default pull-right#echo '%s%s' % (('', ' display-season')[int($epResult['season']) in $display_seasons], ('', ' latest-season')[$latest_season == int($epResult['season'])])#" data-toggle="collapse" data-target="#collapseSeason-$epResult['season']">Show episodes<span class="sgicon-arrowdown" style="margin-left:4px"></span></button>
|
|
#set $videos = 'none' if $epResult['season'] not in $epCounts['videos'] else $epCounts['videos'][$epResult['season']]
|
|
#set $archived = False if $epResult['season'] not in $epCounts['archived'] else $epCounts['archived'][$epResult['season']]
|
|
<h3><a name="season-$epResult['season']"></a>#if 0 == int($epResult['season']) then 'Specials' else 'Season ' + str($epResult['season'])
|
|
<span class="season-status"><b>[</b> <span class="footerhighlight">$videos</span> / <span class="footerhighlight">$epCounts['totals'][$epResult['season']]</span><span class="archived-count">#echo ('', ' with <span class="footerhighlight">%s</span> archived' % $archived)[0 < $archived]#</span> <b>]</b></span>
|
|
</h3>
|
|
</th>
|
|
</tr>
|
|
|
|
<tbody id="collapseSeason-$epResult['season']" class="collapse#echo '%s%s' % (('', ' display-season')[int($epResult['season']) in $display_seasons], ('', ' latest-season')[$latest_season == int($epResult['season'])])#">
|
|
|
|
<tr id="season-$epResult['season']-cols" class="seasoncols">
|
|
<th class="col-checkbox"><input type="checkbox" class="seasonCheck" id="$epResult['season']"></th>
|
|
<th class="col-metadata">NFO</th>
|
|
<th class="col-metadata">TBN</th>
|
|
<th class="col-ep">Episode</th>
|
|
#if $show.is_anime:
|
|
<th class="col-ep">Absolute</th>
|
|
#end if
|
|
#if $scene:
|
|
<th class="col-ep">Scene</th>
|
|
#end if
|
|
#if $scene_anime:
|
|
<th class="col-ep">Scene absolute</th>
|
|
#end if
|
|
<th class="col-name">Name</th>
|
|
<th class="col-airdate">Airdate</th>
|
|
#if $sickbeard.USE_SUBTITLES and $show.subtitles:
|
|
<th class="col-subtitles">Subtitles</th>
|
|
#end if
|
|
<th class="col-status">Status</th>
|
|
<th class="col-search">Search</th>
|
|
</tr>
|
|
#set $curSeason = int($epResult['season'])
|
|
#end if
|
|
|
|
#set $epLoc = $epResult['location']
|
|
#set never_aired = 0 < $curSeason and 1 == int($epResult['airdate'])
|
|
|
|
<tr class="#echo ($Overview.overviewStrings[$epCats[$epStr]], 'airdate-never')[$never_aired]##echo ('', ' archived')[ARCHIVED == int($epResult['status'])]# season-$curSeason seasonstyle">
|
|
|
|
<td class="col-checkbox">
|
|
#if $UNAIRED != int($epResult['status']) and not $never_aired
|
|
<input type="checkbox" class="epCheck" id="#echo $epStr#" name="#echo $epStr#">
|
|
#end if
|
|
</td>
|
|
|
|
<td align="center"><img src="$sbRoot/images/#if int($epResult['hasnfo']) then 'nfo.gif" alt="Yes" title="Yes' else 'nfo-no.gif" alt="No" title="No'#" width="23" height="11" /></td>
|
|
|
|
<td align="center"><img src="$sbRoot/images/#if int($epResult['hastbn']) then 'tbn.gif" alt="Yes" title="Yes' else 'tbn-no.gif" alt="No" title="No'#" width="23" height="11" /></td>
|
|
|
|
<td align="center">
|
|
#if $epLoc and $show._location and $epLoc.lower().startswith($show._location.lower()):
|
|
#set $epLoc = $epLoc[len($show._location)+1:]
|
|
#elif $epLoc and (not $epLoc.lower().startswith($show._location.lower()) or not $show._location):
|
|
#set $epLoc = $epLoc
|
|
#end if
|
|
|
|
#if '' != $epLoc and None != $epLoc:
|
|
<span title="$epLoc - <strong>$sickbeard.helpers.human($epResult['file_size'])</strong>" class="addQTip">$epResult["episode"]</span>
|
|
#else
|
|
$epResult['episode']
|
|
#end if
|
|
</td>
|
|
|
|
#if $show.is_anime:
|
|
<td align="center">$epResult['absolute_number']</td>
|
|
#end if
|
|
|
|
#if $scene:
|
|
#set $dfltSeas, $dfltEpis = (0, 0) if ($epResult['season'], $epResult['episode']) not in $xem_numbering else $xem_numbering[($epResult['season'], $epResult['episode'])]
|
|
<td align="center">
|
|
<input type="text" placeholder="#echo '%sx%s' % ($dfltSeas, $dfltEpis)#" size="6" maxlength="8"
|
|
class="sceneSeasonXEpisode form-control input-scene" data-for-season="$epResult['season']" data-for-episode="$epResult['episode']"
|
|
id="#echo 'sceneSeasonXEpisode_%s_%s_%s' % ($show.indexerid, $epResult['season'], $epResult['episode'])#"
|
|
title="Change the value here if scene numbering differs from the indexer episode numbering"
|
|
#if ($epResult['season'], $epResult['episode']) in $scene_numbering:
|
|
#set $scSeas, $scEpis = $scene_numbering[($epResult['season'], $epResult['episode'])]
|
|
value="#echo '%sx%s' % ($scSeas, $scEpis)#"
|
|
#else
|
|
value=""
|
|
#end if
|
|
style="padding:0; text-align:center; max-width:60px">
|
|
</td>
|
|
#elif $scene_anime:
|
|
#set $dfltAbsolute = 0 if $epResult['absolute_number'] not in $xem_absolute_numbering else $xem_absolute_numbering[$epResult['absolute_number']]
|
|
<td align="center">
|
|
<input type="text" placeholder="$dfltAbsolute" size="6" maxlength="8"
|
|
class="sceneAbsolute form-control input-scene" data-for-absolute="$epResult['absolute_number']"
|
|
id="#echo 'sceneAbsolute_%s_%s' % ($show.indexerid, $epResult['absolute_number'])#"
|
|
title="Change the value here if scene absolute numbering differs from the indexer absolute numbering"
|
|
#if $epResult['absolute_number'] in $scene_absolute_numbering:
|
|
value="$scene_absolute_numbering[$epResult['absolute_number']]"
|
|
#else
|
|
value=""
|
|
#end if
|
|
style="padding:0; text-align:center; max-width:60px" />
|
|
</td>
|
|
#end if
|
|
|
|
<td class="col-name">
|
|
<img src="$sbRoot/images/info32.png" width="16" height="16" alt="" class="plotInfo#echo '%s" />' %\
|
|
('None', ('" id="plot_info_%s_%s_%s' % ($show.indexerid, $epResult['season'], $epResult['episode'])))[None is not $epResult['description'] and '' != $epResult['description']]#
|
|
$epResult['name']
|
|
</td>
|
|
|
|
<td class="col-airdate">
|
|
<span class="${fuzzydate}">#if 1 == int($epResult['airdate']) then 'never' else $sbdatetime.sbdatetime.sbfdate($sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($epResult['airdate'], $show.airs, $show.network)))#</span>
|
|
</td>
|
|
|
|
#if $sickbeard.USE_SUBTITLES and $show.subtitles:
|
|
<td class="col-subtitles" align="center">
|
|
#if $epResult['subtitles']:
|
|
#for $sub_lang in subliminal.language.language_list($epResult['subtitles'].split(',')):
|
|
#if '' != sub_lang.alpha2
|
|
<img src="$sbRoot/images/flags/${sub_lang.alpha2}.png" width="16" height="11" alt="${sub_lang}" />
|
|
#end if
|
|
#end for
|
|
#end if
|
|
</td>
|
|
#end if
|
|
|
|
#set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($epResult['status']))
|
|
#if Quality.NONE != $curQuality:
|
|
<td class="col-status">$statusStrings[$curStatus] <span class="quality $Quality.qualityStrings[$curQuality].replace('720p','HD720p').replace('1080p','HD1080p').replace('RawHD TV', 'RawHD').replace('HD TV', 'HD720p')">$Quality.qualityStrings[$curQuality]</span></td>
|
|
#else:
|
|
<td class="col-status">$statusStrings[$curStatus]</td>
|
|
#end if
|
|
|
|
<td class="col-search">
|
|
#if 0 != int($epResult['season']):
|
|
#if (int($epResult['status']) in $Quality.SNATCHED or int($epResult['status']) in $Quality.DOWNLOADED) and $sickbeard.USE_FAILED_DOWNLOADS:
|
|
<a class="epRetry" id="#echo $epStr#" name="#echo $epStr#" href="retryEpisode?show=$show.indexerid&season=$epResult['season']&episode=$epResult['episode']"><img src="$sbRoot/images/search16.png" height="16" alt="retry" title="Retry download" /></a>
|
|
#else:
|
|
<a class="epSearch" id="#echo $epStr#" name="#echo $epStr#" href="searchEpisode?show=$show.indexerid&season=$epResult['season']&episode=$epResult['episode']"><img src="$sbRoot/images/search16.png" width="16" height="16" alt="search" title="Manual search" /></a>
|
|
#end if
|
|
#end if
|
|
|
|
#if $sickbeard.USE_SUBTITLES and $show.subtitles and len(set(str($epResult['subtitles']).split(',')).intersection(set($subtitles.wantedLanguages()))) < len($subtitles.wantedLanguages()) and $epResult['location']
|
|
<a class="epSubtitlesSearch" href="searchEpisodeSubtitles?show=$show.indexerid&season=$epResult['season']&episode=$epResult['episode']"><img src="$sbRoot/images/closed_captioning.png" height="16" alt="search subtitles" title="Search subtitles" /></a>
|
|
#end if
|
|
</td>
|
|
</tr>
|
|
#end for
|
|
</tbody>
|
|
</table>
|
|
#end if
|
|
|
|
<script type="text/javascript" charset="utf-8">
|
|
#raw
|
|
$(document).ready(function(){
|
|
$('.details-plot').collapser({
|
|
mode: 'lines',
|
|
truncate: 10,
|
|
showText: '<span class="pull-right moreless"><i class="sgicon-arrowdown" style="margin-right:2px"></i>more</span>',
|
|
hideText: '<span class="pull-right moreless"><i class="sgicon-arrowup" style="margin-right:2px"></i>less</span>',
|
|
showClass: 'show-class'
|
|
});
|
|
|
|
$('button[data-target*="collapseSeason-"]').each(function(k,v){
|
|
var tbl = $($(this).attr('data-target')),
|
|
btn = $('#' + $(this).attr('id'));
|
|
tbl.on('hide.bs.collapse', function () { btn.html('Show episodes<span class="sgicon-arrowdown" style="margin-left:4px"></span>'); })
|
|
tbl.on('show.bs.collapse', function () { btn.html('Hide episodes<span class="sgicon-arrowup" style="margin-left:4px"></span>'); })
|
|
});
|
|
#end raw
|
|
});
|
|
</script>
|
|
</div>
|
|
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')
|