2014-03-10 01:18:05 -04:00
#import sickbeard
#import datetime
#from sickbeard . common import *
#from sickbeard import sbdatetime
#set global $ title = " Coming Episodes "
#set global $ header = " Coming Episodes "
#set global $ sbPath = " .. "
#set global $ topmenu = " comingEpisodes "
#import os . path
#include $ os . path . join ( $ sickbeard . PROG_DIR , " gui/slick/interfaces/default/inc_top.tmpl " )
#set $ sort = $ sickbeard . COMING_EPS_SORT
<script type="text/javascript" src=" $ sbRoot /js/ajaxEpSearch.js? $ sbPID "></script>
#if $ varExists ( ' header ' )
<h1 class="header"> $ header </h1>
#else
<h1 class="title"> $ title </h1>
#end if
<style type="text/css">
.sort_data {display:none}
</style>
<div class="h2footer align-right">
<b>Key:</b>
<span class="listing_overdue">Missed</span>
<span class="listing_current">Current</span>
<span class="listing_default">Future</span>
<span class="listing_toofar">Distant</span>
<a class="btn btn-mini btn-inverse forceBacklog" href="webcal:// $ sbHost : $ sbHttpPort /calendar">
<i class="icon-calendar icon-white"></i>Subscribe</a>
<!-- <span class="listing_unknown">Unknown</span> //-->
</div>
#if $ layout == ' list ' :
<!-- start list view //-->
<script type="text/javascript" src=" $ sbRoot /js/plotTooltip.js? $ sbPID "></script>
<script type="text/javascript" charset="utf-8">
<!--
\$.tablesorter.addParser({
id: 'loadingNames',
is: function(s) {
return false;
},
format: function(s) {
if (s.indexOf('Loading...') == 0)
return s.replace('Loading...','000');
#if not $ sickbeard . SORT_ARTICLE :
return (s || '').replace(/^(The|A|An)\s/i,'');
#else :
return (s || '');
#end if
},
type: 'text'
});
\$.tablesorter.addParser({
id: 'quality',
is: function(s) {
return false;
},
format: function(s) {
return s.replace('hd1080p',5).replace('hd720p',4).replace('hd',3).replace('sd',2).replace('any',1).replace('best',0).replace('custom',7);
},
type: 'numeric'
});
\$.tablesorter.addParser({
id: 'cDate',
is: function(s) {
return false;
},
format: function(s) {
return s;
},
type: 'numeric'
});
\$(document).ready(function(){
#set $ sort_codes = { ' date ' : 0 , ' show ' : 1 , ' network ' : 4 }
#if $ sort not in $ sort_codes :
$ sort = 'date'
#end if
sortList = [[ $ sort_codes [ $ sort ],0]];
\$(" #showListTable : has ( tbody tr ) " ).tablesorter( {
widgets: ['stickyHeaders'],
sortList: sortList,
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
4: function(node) { return \$(node).find("img").attr("alt"); },
5: function(node) { return \$(node).find("span").text().toLowerCase(); }
},
headers: {
0: { sorter: 'cDate' },
1: { sorter: 'loadingNames' },
2: { sorter: false },
3: { sorter: false },
4: { sorter: 'loadingNames' },
5: { sorter: 'quality' },
6: { sorter: false },
7: { sorter: false },
8: { sorter: false }
}
});
\$(' #sbRoot ' ).ajaxEpSearch();
2014-05-23 11:20:44 -04:00
#set $ fuzzydate = ' airdate '
#if $ sickbeard . FUZZY_DATING :
fuzzyMoment({
containerClass : '. ${ fuzzydate } ',
dateHasTime : true,
dateFormat : ' ${ sickbeard . DATE_PRESET } ',
timeFormat : ' ${ sickbeard . TIME_PRESET } ',
trimZero : #if $ sickbeard . TRIM_ZERO then " true " else " false " #
});
#end if
2014-03-10 01:18:05 -04:00
});
//-->
</script>
#set $ show_div = " listing_default "
<input type="hidden" id="sbRoot" value=" $ sbRoot " />
<table id="showListTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
2014-03-10 22:32:02 -04:00
<thead><tr><th>Airdate</th><th>Show</th><th class="nowrap">Next Ep</th><th>Next Ep Name</th><th>Network</th><th>Quality</th><th>IMDb</th><th>Indexer</th><th>Search</th></tr></thead>
2014-03-10 01:18:05 -04:00
<tbody>
#for $ cur_result in $ sql_results :
2014-03-26 00:15:10 -04:00
#set $ cur_indexer = int ( $ cur_result [ " indexer " ] )
2014-05-23 06:00:45 -04:00
#set $ runtime = $ cur_result [ " runtime " ]
2014-03-10 01:18:05 -04:00
#if int ( $ cur_result [ " paused " ] ) and not $ sickbeard . COMING_EPS_DISPLAY_PAUSED :
#continue
#end if
#set $ cur_ep_airdate = $ cur_result [ " localtime " ] . date ( )
2014-05-23 06:00:45 -04:00
#if $ runtime :
#set $ cur_ep_enddate = $ cur_result [ " localtime " ] + datetime . timedelta ( minutes = $ runtime )
2014-03-10 01:18:05 -04:00
#if $ cur_ep_enddate < $ today :
#set $ show_div = " listing_overdue "
#elif $ cur_ep_airdate > = $ next_week . date ( ) :
#set $ show_div = " listing_toofar "
#elif $ cur_ep_airdate > = $ today . date ( ) and $ cur_ep_airdate < $ next_week . date ( ) :
#if $ cur_ep_airdate == $ today . date ( ) :
#set $ show_div = " listing_current "
#else :
#set $ show_div = " listing_default "
#end if
#end if
2014-05-23 06:00:45 -04:00
#end if
2014-03-10 01:18:05 -04:00
<!-- start $ cur_result ["show_name"] //-->
<tr class=" $ show_div ">
2014-05-23 11:20:44 -04:00
## forced to use a div to wrap airdate, the column sort went crazy with a span
<td align="center" class="nowrap"><div class=" ${ fuzzydate } "> $ sbdatetime . sbdatetime . sbfdatetime ( $ cur_result ["localtime"]).decode( $ sickbeard . SYS_ENCODING )</div><span class="sort_data"> $ time . mktime ( $ cur_result ["localtime"].timetuple())</span></td>
2014-03-10 01:18:05 -04:00
<td class="tvShow"><a href=" $ sbRoot /home/displayShow?show= ${ cur_result [ " showid " ] } "> $ cur_result ["show_name"]</a>
#if int ( $ cur_result [ " paused " ] ) :
<span class="pause">[paused]</span>
#end if
</td>
<td class="nowrap" align="center" style="color: #555555; font-size: 16px;"><b><%="%02ix%02i" % (int(cur_result["season"]), int(cur_result["episode"])) %></b></td>
<td>
#if $ cur_result [ " description " ] != " " and $ cur_result [ " description " ] != None :
<img alt="" src=" $ sbRoot /images/info32.png" height="16" width="16" class="plotInfo" id="plot_info_<%=str(cur_result["showid"])+"_"+str(cur_result["season"])+"_"+str(cur_result["episode"])%>" style="padding-top: 6px;"/>
#end if
$ cur_result ["name"]
</td>
<td align="center"> $ cur_result ["network"]</td>
<td align="center">
#if int ( $ cur_result [ " quality " ] ) in $ qualityPresets :
<span class="quality $ qualityPresetStrings [int( $ cur_result ["quality"])]"> $ qualityPresetStrings [int( $ cur_result ["quality"])]</span>
#else :
<span class="quality Custom">Custom</span>
#end if
</td>
<td align="center">
#if $ cur_result [ " imdb_id " ] :
<a href="http://www.imdb.com/title/ ${ cur_result [ " imdb_id " ] } " onclick="window.open(this.href, '_blank'); return false;" title="http://www.imdb.com/title/ ${ cur_result [ " imdb_id " ] } "><img alt="[imdb]" height="16" width="16" src=" $ sbRoot /images/imdb.png" />
#end if
</td>
2014-03-26 00:15:10 -04:00
<td align="center"><a href=" $ sickbeard . indexerApi ( $ cur_indexer ).config["show_url"] ${ cur_result [ " showid " ] } "
rel="noreferrer" onclick="window.open(' ${ sickbeard . ANON_REDIRECT } ' + this.href,
'_blank'); return false;" title=" $ sickbeard . indexerApi ( $ cur_indexer )
.config["show_url"] ${ cur_result [ " showid " ] } "><img alt=" $ sickbeard . indexerApi ( $ cur_indexer )
.name" height="16" width="16" src=" $ sbRoot /images/ $ sickbeard . indexerApi ( $ cur_indexer ).config["icon"]"
/></a></td>
2014-03-10 01:18:05 -04:00
<td align="center">
<a href=" $ sbRoot /home/searchEpisode?show= ${ cur_result [ " showid " ] } &season= $ cur_result ["season"]&episode= $ cur_result ["episode"]" title="Manual Search" id="forceUpdate- ${ cur_result [ " showid " ] } " class="forceUpdate epSearch"><img alt="[search]" height="16" width="16" src=" $ sbRoot /images/search32.png" id="forceUpdateImage- ${ cur_result [ " showid " ] } " /></a>
</td>
</tr>
<!-- end $ cur_result ["show_name"] //-->
#end for
</tbody>
</table>
<!-- end list view //-->
#else :
<!-- start non list view //-->
<script type="text/javascript" charset="utf-8">
<!--
\$(document).ready(function(){
\$(' #sbRoot ' ).ajaxEpSearch( { ' size ' : 16, ' loadingImage ' : ' loading16 . gif ' });
\$(".ep_summary").hide();
\$(".ep_summaryTrigger").click(function() {
\$(this).next(".ep_summary").slideToggle('normal', function() {
\$(this).prev(".ep_summaryTrigger").attr('src', function(i, src) {
return \$(this).next(".ep_summary").is(':visible') ? src.replace('plus','minus') : src.replace('minus','plus');
});
});
});
});
//-->
</script>
#set $ cur_segment = None
#set $ too_late_header = False
#set $ missed_header = False
#set $ today_header = False
#set $ show_div = " ep_listing listing_default "
#if $ sort == " show " :
2014-05-23 11:20:44 -04:00
<br /><br />
2014-03-10 01:18:05 -04:00
#end if
#for $ cur_result in $ sql_results :
2014-03-26 00:15:10 -04:00
#set $ cur_indexer = int ( $ cur_result [ " indexer " ] )
2014-03-10 01:18:05 -04:00
<!-- start $ cur_result ["show_name"] //-->
#if int ( $ cur_result [ " paused " ] ) and not $ sickbeard . COMING_EPS_DISPLAY_PAUSED :
#continue
#end if
2014-05-23 06:00:45 -04:00
#set $ runtime = $ cur_result [ " runtime " ]
2014-03-10 01:18:05 -04:00
#if $ sort == " network " :
#if $ cur_result [ " network " ] and $ cur_segment != $ cur_result [ " network " ] :
<h1 class="network"> $ cur_result ["network"]</h1>
#set $ cur_segment = $ cur_result [ " network " ]
#end if
#set $ cur_ep_airdate = $ cur_result [ " localtime " ] . date ( )
2014-05-23 06:00:45 -04:00
#if $ runtime :
#set $ cur_ep_enddate = $ cur_result [ " localtime " ] + datetime . timedelta ( minutes = $ runtime )
#if $ cur_ep_enddate < $ today :
#set $ show_div = " ep_listing listing_overdue "
#elif $ cur_ep_airdate > = $ next_week . date ( ) :
#set $ show_div = " ep_listing listing_toofar "
#elif $ cur_ep_enddate > = $ today and $ cur_ep_airdate < $ next_week . date ( ) :
#if $ cur_ep_airdate == $ today . date ( ) :
#set $ show_div = " ep_listing listing_current "
#else :
#set $ show_div = " ep_listing listing_default "
#end if
2014-03-10 01:18:05 -04:00
#end if
#end if
#elif $ sort == " date " :
#set $ cur_ep_airdate = $ cur_result [ " localtime " ] . date ( )
2014-05-23 06:00:45 -04:00
2014-03-10 01:18:05 -04:00
#if $ cur_segment != $ cur_ep_airdate :
2014-05-23 06:00:45 -04:00
#if $ runtime :
#set $ cur_ep_enddate = $ cur_result [ " localtime " ] + datetime . timedelta ( minutes = $ runtime )
#if $ cur_ep_enddate < $ today and $ cur_ep_airdate != $ today . date ( ) and not $ missed_header :
<br /><h1 class="day">Missed</h1>
#set $ missed_header = True
#elif $ cur_ep_airdate > = $ next_week . date ( ) and not $ too_late_header :
<br /><h1 class="day">Later</h1>
#set $ too_late_header = True
#elif $ cur_ep_enddate > = $ today and $ cur_ep_airdate < $ next_week . date ( ) :
#if $ cur_ep_airdate == $ today . date ( ) :
<br /><h1 class="day"> $ datetime . date . fromordinal ( $ cur_ep_airdate . toordinal ).strftime("%A").decode( $ sickbeard . SYS_ENCODING ).capitalize() <span style="font-size: 12px;">[today]</span></h1>
#set $ today_header = True
#else :
<br /><h1 class="day"> $ datetime . date . fromordinal ( $ cur_ep_airdate . toordinal ).strftime("%A").decode( $ sickbeard . SYS_ENCODING ).capitalize()</h1>
#end if
2014-03-10 01:18:05 -04:00
#end if
#end if
#set $ cur_segment = $ cur_ep_airdate
#end if
#if $ cur_ep_airdate == $ today . date ( ) and not $ today_header :
<br /><h1 class="day"> $ datetime . date . fromordinal ( $ cur_ep_airdate . toordinal ).strftime("%A").decode( $ sickbeard . SYS_ENCODING ).capitalize() <span style="font-size: 12px;">[today]</span></h1>
#set $ today_header = True
#end if
#if $ cur_ep_enddate < $ today :
#set $ show_div = " ep_listing listing_overdue "
#elif $ cur_ep_airdate > = $ next_week . date ( ) :
#set $ show_div = " ep_listing listing_toofar "
#elif $ cur_ep_enddate > = $ today and $ cur_ep_airdate < $ next_week . date ( ) :
#if $ cur_ep_airdate == $ today . date ( ) :
2014-05-23 06:00:45 -04:00
#set $ show_div = " ep_listing listing_current "
#else :
#set $ show_div = " ep_listing listing_default "
#end if
#end if
#elif $ sort == " show " :
#set $ cur_ep_airdate = $ cur_result [ " localtime " ] . date ( )
#if $ runtime :
#set $ cur_ep_enddate = $ cur_result [ " localtime " ] + datetime . timedelta ( minutes = $ runtime )
#if $ cur_ep_enddate < $ today :
#set $ show_div = " ep_listing listing_overdue "
#elif $ cur_ep_airdate > = $ next_week . date ( ) :
#set $ show_div = " ep_listing listing_toofar "
#elif $ cur_ep_enddate > = $ today and $ cur_ep_airdate < $ next_week . date ( ) :
#if $ cur_ep_airdate == $ today . date ( ) :
2014-03-10 01:18:05 -04:00
#set $ show_div = " ep_listing listing_current "
#else :
#set $ show_div = " ep_listing listing_default "
#end if
#end if
#end if
#end if
<div class=" $ show_div " id="listing_ ${ cur_result [ " showid " ] } ">
<div class="tvshowDiv">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<th #if $ layout == ' banner ' then " class= \" nobg \" " else " rowspan= \" 2 \" " # style="background-color: #efefef ; " valign= " top " >
<a href=" $ sbRoot /home/displayShow?show= ${ cur_result [ " showid " ] } "><img alt="" class=" #if $ layout == ' banner ' then " bannerThumb " else " posterThumb " # " src=" $ sbRoot /showPoster/?show= ${ cur_result [ " showid " ] } &which= #if $ layout == ' poster ' then " poster_thumb " else $ layout # " /></a>
</th>
#if $ layout == ' banner ' :
</tr>
<tr>
#end if
<td class="next_episode">
<div class="clearfix">
<h2 class="tvshowTitle"><a href=" $ sbRoot /home/displayShow?show= ${ cur_result [ " showid " ] } "> $ cur_result ["show_name"]
#if int ( $ cur_result [ " paused " ] ) :
<span class="pause">[paused]</span>
#end if
</a></h2>
<span class="tvshowTitleIcons">
#if $ cur_result [ " imdb_id " ] :
<a href="http://www.imdb.com/title/ ${ cur_result [ " imdb_id " ] } " rel="noreferrer" onclick="window.open(' ${ sickbeard . ANON_REDIRECT } ' + this.href, '_blank'); return false;" title="http://www.imdb.com/title/ ${ cur_result [ " imdb_id " ] } "><img alt="[imdb]" height="16" width="16" src=" $ sbRoot /images/imdb.png" />
2014-03-10 22:32:02 -04:00
#end if
2014-03-26 00:15:10 -04:00
<a href=" $ sickbeard . indexerApi ( $ cur_indexer ).config["show_url"] ${ cur_result [ " showid " ] } "
rel="noreferrer" onclick="window.open(' ${ sickbeard . ANON_REDIRECT } ' + this.href,
'_blank'); return false;" title=" $ sickbeard . indexerApi ( $ cur_indexer )
.config["show_url"] ${ cur_result [ " showid " ] } "><img alt=" $ sickbeard . indexerApi ( $ cur_indexer ).name"
height="16" width="16" src=" $ sbRoot /images/ $ sickbeard . indexerApi ( $ cur_indexer ).config["icon"]"
/></a>
2014-03-10 01:18:05 -04:00
<span><a href=" $ sbRoot /home/searchEpisode?show= ${ cur_result [ " showid " ] } &season= $ cur_result ["season"]&episode= $ cur_result ["episode"]" title="Manual Search" id="forceUpdate- ${ cur_result [ " showid " ] } " class="epSearch forceUpdate"><img alt="[search]" height="16" width="16" src=" $ sbRoot /images/search32.png" id="forceUpdateImage- ${ cur_result [ " showid " ] } " /></a></span>
</span>
</div>
<span class="title">Next Episode:</span> <span><%=str(cur_result["season"])+"x"+"%02i" % int(cur_result["episode"]) %> - $ cur_result ["name"] ( $ sbdatetime . sbdatetime . fromtimestamp ( $ time . mktime ( $ cur_result ["localtime"].timetuple())).sbfdate().decode( $ sickbeard . SYS_ENCODING ))</span>
<div class="clearfix">
<span class="title">Airs:</span> <span> $ sbdatetime . sbdatetime . fromtimestamp ( $ time . mktime ( $ cur_result ["localtime"].timetuple())).sbftime().decode( $ sickbeard . SYS_ENCODING ) on $ cur_result ["network"]</span>
</div>
<div class="clearfix">
<span class="title">Quality:</span>
#if int ( $ cur_result [ " quality " ] ) in $ qualityPresets :
<span class="quality $ qualityPresetStrings [int( $ cur_result ["quality"])]"> $ qualityPresetStrings [int( $ cur_result ["quality"])]</span>
#else :
<span class="quality Custom">Custom</span>
#end if
</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<div>
#if $ cur_result [ " description " ] == ' ' :
<span class="title">Plot:</span>
<img class="ep_summaryTrigger" src=" $ sbRoot /images/plus.png" height="16" width="16" alt="" title="Toggle Summary" /><div class="ep_summary">[There is no summary added for this episode]</div>
#else :
<span class="title">Plot:</span>
<img class="ep_summaryTrigger" src=" $ sbRoot /images/plus.png" height="16" width="16" alt="" title="Toggle Summary" /><div class="ep_summary"> $ cur_result ["description"]</div>
#end if
</div>
</td>
</tr>
</table>
</div>
</div>
<!-- end $ cur_result ["show_name"] //-->
#end for
<!-- end non list view //-->
#end if
<script type="text/javascript" charset="utf-8">
<!--
window.setInterval( "location.reload(true)", 600000); // Refresh every 10 minutes
//-->
</script>
#include $ os . path . join ( $ sickbeard . PROG_DIR , " gui/slick/interfaces/default/inc_bottom.tmpl " )