mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-11 05:33:37 +00:00
440237a3c2
Change refactor restart process, reducing restart time, improving ui, and fixing web_root. Change add response handling for invalid Plex Server hosts.
613 lines
27 KiB
Cheetah
613 lines
27 KiB
Cheetah
#import sickbeard
|
|
#import datetime
|
|
#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
|
|
#from sickbeard.indexers.indexer_config import INDEXER_TVDB, INDEXER_IMDB
|
|
##
|
|
#set global $title = $show.name
|
|
#set global $topmenu = 'home'
|
|
#set $exceptions_string = ', '.join($show.exceptions)
|
|
#set global $page_body_attr = 'display-show'
|
|
##
|
|
#import os.path, os
|
|
#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?v=$sbPID"></script>
|
|
|
|
<input type="hidden" id="sbRoot" value="$sbRoot">
|
|
|
|
<script type="text/javascript" src="$sbRoot/js/displayShow.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/sceneExceptionsTooltip.js?v=$sbPID"></script>
|
|
#if $sickbeard.USE_IMDB_INFO
|
|
<script type="text/javascript" src="$sbRoot/js/ratingTooltip.js?v=$sbPID"></script>
|
|
#end if
|
|
<script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/ajaxEpSubtitles.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/lib/jquery.collapser.min.js?v=$sbPID"></script>
|
|
<script type="text/javascript" charset="utf-8">
|
|
<!--
|
|
\$(document).ready(function(){
|
|
#set $fuzzydate = 'airdate'
|
|
#if $sickbeard.FUZZY_DATING
|
|
fuzzyMoment({
|
|
containerClass: '.${fuzzydate}',
|
|
dateHasTime: !1,
|
|
dateFormat: '${sickbeard.DATE_PRESET}',
|
|
timeFormat: '${sickbeard.TIME_PRESET}',
|
|
trimZero: #echo ('!1', '!0')[$sickbeard.TRIM_ZERO]#
|
|
});
|
|
#end if
|
|
#raw
|
|
$('.addQTip').each(function () {
|
|
$(this).css({'cursor':'help', 'text-shadow':'0px 0px 0.5px #666'});
|
|
$(this).qtip({
|
|
show: {solo:!0},
|
|
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)
|
|
#set void = $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))
|
|
#end for
|
|
#if 1 < len($sortedShowLists)
|
|
#set void = $displayshowlist.append('\t\t\t</optgroup>')
|
|
#end if
|
|
#end for
|
|
##
|
|
<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 0 < len($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>
|
|
#set $genres_done = False
|
|
#if $sickbeard.USE_IMDB_INFO and 'genres' in $show.imdb_info and '' != $show.imdb_info['genres']
|
|
#for $imdbgenre in $show.imdb_info['genres'].split('|')
|
|
#set $genres_done = True
|
|
<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
|
|
#if not $genres_done and $show.genre
|
|
#for $genre in $show.genre[1:-1].split('|')
|
|
#set $genres_done = True
|
|
<span class="label">$genre</span>
|
|
#end for#
|
|
#end if
|
|
#if not $genres_done
|
|
<span class="label">No genres</span>
|
|
#end if
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="details-wrapper">
|
|
<div id="details-right">
|
|
<div>
|
|
<span class="details-title">Links</span>
|
|
<span class="details-info">
|
|
#set $tvdb_id = None
|
|
#for $src_id, $src_name in $sickbeard.indexerApi().all_indexers.iteritems()
|
|
#if sickbeard.indexerApi($src_id).config.get('defunct') and $src_id != $show.indexer
|
|
#continue
|
|
#end if
|
|
#if $src_id in $show.ids and $show.ids[$src_id].get('id', 0) > 0 and $sickbeard.indexermapper.MapStatus.NOT_FOUND != $show.ids[$src_id]['status']
|
|
#if $INDEXER_TVDB == $src_id
|
|
#set $tvdb_id = $show.ids[$src_id]['id']
|
|
#end if
|
|
#if $INDEXER_IMDB == $src_id and not $sickbeard.USE_IMDB_INFO
|
|
#continue
|
|
#end if
|
|
#if not sickbeard.indexerApi($src_id).config.get('defunct')
|
|
<a class="service" href="$anon_url(sickbeard.indexerApi($src_id).config['show_url'], $show.ids[$src_id]['id'])" onclick="window.open(this.href, '_blank'); return !1;" title="View $src_name info in new tab">
|
|
#else#
|
|
<a class="service" href="$sbRoot/home/editShow?show=$show.indexerid#core-component-group3" title="Edit related show IDs">
|
|
#end if#
|
|
<img alt="$src_name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($src_id).config['icon']" />
|
|
</a>
|
|
#end if
|
|
#end for
|
|
##if $tvdb_id
|
|
## <a class="service" href="$anon_url('https://fanart.tv/series/', $tvdb_id)" onclick="window.open(this.href, '_blank'); return !1;" title="View Fanart.tv info in new tab"><img alt="Fanart.tv" height="16" width="16" src="$sbRoot/images/fanart.png" /></a>
|
|
##end if
|
|
#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 !1;" title="View XEM info in new tab"><img alt="[xem]" height="16" width="16" src="$sbRoot/images/xem.png" /></a>
|
|
#end if
|
|
</span>
|
|
</div>
|
|
|
|
#set $startyear, $flags, $runtime = (None, False, None)
|
|
#if $sickbeard.USE_IMDB_INFO and $show.imdbid
|
|
#if 'year' in $show.imdb_info
|
|
#set $startyear = $show.imdb_info['year']
|
|
#end if
|
|
#set $flags = 'country_codes' in $show.imdb_info and '' != $show.imdb_info['country_codes']
|
|
#if 'runtimes' in $show.imdb_info
|
|
#set $runtime = $show.imdb_info['runtimes']
|
|
#end if
|
|
#end if
|
|
#if None is $startyear and $show.startyear
|
|
#set $startyear = $show.startyear
|
|
#end if
|
|
#if None is $runtime and $show.runtime
|
|
#set $runtime = $show.runtime
|
|
#end if
|
|
#if None is not $startyear or $flags
|
|
<div>
|
|
<span class="details-title">Premiered</span>
|
|
<span class="details-info">
|
|
<span class="space-right">#echo ($startyear, 'Unknown')[None is $startyear]#</span>
|
|
#if $flags
|
|
#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>
|
|
#end if
|
|
|
|
#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
|
|
#if None is not $runtime
|
|
<div>
|
|
<span class="details-title">Runtime</span>
|
|
<span class="details-info">$runtime minutes</span>
|
|
</div>
|
|
#end if
|
|
#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">Upgrade to</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="" 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">End upgrade on 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 do not exist for this show at the associated indexer
|
|
<a class="service" href="$anon_url(sickbeard.indexerApi($show.indexer).config['show_url'], $show.indexerid)" onclick="window.open(this.href, '_blank'); return !1;" title="View $sickbeard.indexerApi($show.indexer).name info in new tab">$sickbeard.indexerApi($show.indexer).name</a>
|
|
</h3>
|
|
</div>
|
|
#else:
|
|
#set $network_timezone = $network_timezones.get_network_timezone($show.network)
|
|
#set $network_time = $network_timezones.parse_time($show.airs)
|
|
#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
|
|
##
|
|
#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']]#
|
|
<%= '<em class="tba grey-text">TBA</em>' if not epResult['name'] or 'TBA' == epResult['name'] else epResult['name'] %>
|
|
</td>
|
|
|
|
<td class="col-airdate">
|
|
<span class="${fuzzydate}"#if $sickbeard.FUZZY_DATING# data-fulldate="$sbdatetime.sbdatetime.sbfdate(dt=$datetime.date.fromordinal($epResult['airdate']), d_preset='%A, %B %d, %Y')"#end if#>#if 1 == int($epResult['airdate']) then 'never' else $sbdatetime.sbdatetime.sbfdate($sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($epResult['airdate'], $network_time, $network_timezone)))#</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="$sbRoot/home/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="$sbRoot/home/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="$sbRoot/home/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')
|