2014-03-10 05:18:05 +00:00
#import sickbeard
#import datetime
#from sickbeard . common import *
#from sickbeard import db , sbdatetime , network_timezones
#set global $ title = " Home "
#set global $ header = " Show List "
#set global $ sbPath = " .. "
#set global $ topmenu = " home " #
#import os . path
#include $ os . path . join ( $ sickbeard . PROG_DIR , " gui/slick/interfaces/default/inc_top.tmpl " )
#set $ myDB = $ db . DBConnection ( )
#set $ today = str ( $ datetime . date . today ( ) . toordinal ( ) )
#set $ layout = $ sickbeard . HOME_LAYOUT
2014-07-21 05:38:50 +00:00
#set status_quality = ' ( ' + ' , ' . join ( [ str ( x ) for x in $ Quality . SNATCHED + $ Quality . SNATCHED_PROPER ] ) + ' ) '
#set status_download = ' ( ' + ' , ' . join ( [ str ( x ) for x in $ Quality . DOWNLOADED + [ $ ARCHIVED ] ] ) + ' ) '
#set $ sql_statement = ' SELECT showid, '
#set $ sql_statement + = ' (SELECT COUNT(*) FROM tv_episodes WHERE showid=tv_eps.showid AND season > 0 AND episode > 0 AND airdate > 1 AND status IN ' + $ status_quality + ' ) AS ep_snatched, '
#set $ sql_statement + = ' (SELECT COUNT(*) FROM tv_episodes WHERE showid=tv_eps.showid AND season > 0 AND episode > 0 AND airdate > 1 AND status IN ' + $ status_download + ' ) AS ep_downloaded, '
#set $ sql_statement + = ' (SELECT COUNT(*) FROM tv_episodes WHERE showid=tv_eps.showid AND season > 0 AND episode > 0 AND airdate > 1 '
#set $ sql_statement + = ' AND ((airdate <= ' + $ today + ' AND (status = ' + str ( $ SKIPPED ) + ' OR status = ' + str ( $ WANTED ) + ' )) '
#set $ sql_statement + = ' OR (status IN ' + status_quality + ' ) OR (status IN ' + status_download + ' ))) AS ep_total, '
#set $ sql_statement + = ' (SELECT airdate FROM tv_episodes WHERE showid=tv_eps.showid AND airdate >= ' + $ today + ' AND (status = ' + str ( $ UNAIRED ) + ' OR status = ' + str ( $ WANTED ) + ' ) ORDER BY airdate ASC LIMIT 1) AS ep_airs_next '
#set $ sql_statement + = ' FROM tv_episodes tv_eps GROUP BY showid '
#set $ sql_result = $ myDB . select ( $ sql_statement )
#set $ show_stat = { }
#set $ max_download_count = 1000
#for $ cur_result in $ sql_result :
#set $ show_stat [ $ cur_result [ ' showid ' ] ] = $ cur_result
#if $ cur_result [ ' ep_total ' ] > $ max_download_count :
#set $ max_download_count = $ cur_result [ ' ep_total ' ]
#end if
#end for
#set $ max_download_count = $ max_download_count * 100
2014-03-10 05:18:05 +00:00
<style type="text/css">
.sort_data {display:none}
</style>
<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');
else
#if not $ sickbeard . SORT_ARTICLE :
return (s || '').replace(/^(The|A|An)\s/i,'');
#else :
return (s || '');
#end if
},
type: 'text'
});
\$.tablesorter.addParser({
id: 'cDate',
is: function(s) {
return false;
},
format: function(s) {
return s;
},
type: 'numeric'
});
\$.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'
});
2014-06-08 04:13:40 +00:00
\$.tablesorter.addParser({
2014-03-10 05:18:05 +00:00
id: 'eps',
is: function(s) {
2014-06-08 04:13:40 +00:00
return false;
2014-03-10 05:18:05 +00:00
},
format: function(s) {
match = s.match(/^(.*)/);
if (match == null || match[1] == "?")
2014-07-21 05:38:50 +00:00
return -10;
2014-03-10 05:18:05 +00:00
var nums = match[1].split(" / ");
2014-07-21 05:38:50 +00:00
if (nums[0].indexOf("+") != -1) {
var num_parts = nums[0].split("+");
nums[0] = num_parts[0];
}
nums[0] = parseInt(nums[0])
nums[1] = parseInt(nums[1])
2014-06-08 04:13:40 +00:00
2014-07-21 05:38:50 +00:00
if (nums[0] === 0)
return nums[1];
2014-03-10 05:18:05 +00:00
2014-07-21 05:38:50 +00:00
var finalNum = parseInt( $ max_download_count *nums[0]/nums[1]);
2014-03-10 05:18:05 +00:00
if (finalNum > 0)
2014-07-21 05:38:50 +00:00
finalNum += nums[0];
2014-03-10 05:18:05 +00:00
return finalNum;
},
type: 'numeric'
});
\$(document).ready(function(){
\$("img #network " ).on( ' error ' , function() {
\$(this).parent().text(\$(this).attr('alt'));
\$(this).remove();
});
2014-05-27 07:44:23 +00:00
\$(" #showListTableShows : has ( tbody tr ) " ).tablesorter( {
2014-03-10 05:18:05 +00:00
2014-04-26 12:26:31 +00:00
sortList: [[6,1],[2,0]],
2014-03-10 05:18:05 +00:00
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
#if ( $ layout != ' simple ' ) :
3: function(node) { return \$(node).find("img").attr("alt"); },
#end if
4: function(node) { return \$(node).find("span").text(); },
6: function(node) { return \$(node).find("img").attr("alt"); }
},
widgets: ['saveSort', 'zebra'],
headers: {
0: { sorter: 'cDate' },
2: { sorter: 'loadingNames' },
3: { sorter: 'network' },
4: { sorter: 'quality' },
5: { sorter: 'eps' },
}
});
2014-05-27 07:44:23 +00:00
\$(" #showListTableAnime : has ( tbody tr ) " ).tablesorter( {
sortList: [[6,1],[2,0]],
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
#if ( $ layout != ' simple ' ) :
3: function(node) { return \$(node).find("img").attr("alt"); },
#end if
4: function(node) { return \$(node).find("span").text(); },
6: function(node) { return \$(node).find("img").attr("alt"); }
},
widgets: ['saveSort', 'zebra'],
headers: {
0: { sorter: 'cDate' },
2: { sorter: 'loadingNames' },
3: { sorter: 'network' },
4: { sorter: 'quality' },
5: { sorter: 'eps' },
}
});
2014-05-27 22:17:24 +00:00
2014-05-23 15:20:44 +00:00
#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
2014-03-10 05:18:05 +00:00
});
//-->
</script>
#if $ varExists ( ' header ' )
<h1 class="header"> $ header </h1>
#else
<h1 class="title"> $ title </h1>
#end if
<div id="HomeLayout" style="float: right; margin-top: -25px;">
<span><b>Layout:</b>
<a class="inner" href=" $ sbRoot /setHomeLayout/?layout=poster" style="font-size: 12px;">Poster</a> ·
<a class="inner" href=" $ sbRoot /setHomeLayout/?layout=banner" style="font-size: 12px;">Banner</a> ·
<a class="inner" href=" $ sbRoot /setHomeLayout/?layout=simple" style="font-size: 12px;">Simple</a>
</span>
</div>
2014-06-12 18:30:59 +00:00
#for $ curShowlist in $ showlists :
2014-05-27 07:44:23 +00:00
#set $ curListType = $ curShowlist [ 0 ]
#set $ myShowList = $ list ( $ curShowlist [ 1 ] )
#if $ curListType == " Anime " :
<h2>Anime List</h2>
#end if
<table id="showListTable $ curListType " class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
2014-03-10 05:18:05 +00:00
2014-06-12 18:30:59 +00:00
<thead><tr><th class="nowrap">Next Ep</th> #if $ layout == " poster " then " <th>Poster</th> " else " <th style= ' display: none; ' ></th> " # <th> $ curListType </th><th>Network</th><th>Quality</th><th>Downloads</th><th>Active</th><th>Status</th></tr></thead>
2014-03-10 05:18:05 +00:00
<tfoot>
<tr>
<th rowspan="1" colspan="1" align="center"><a href=" $ sbRoot /home/addShows/">  Add Show</a></th>
<th rowspan="1" colspan="7"></th>
</tr>
</tfoot>
<tbody>
#for $ curLoadingShow in $ sickbeard . showQueueScheduler . action . loadingShowList :
#if $ curLoadingShow . show != None and $ curLoadingShow . show in $ sickbeard . showList :
#continue
#end if
<tr>
<td align="center">(loading)</td>
<td></td>
<td>
#if $ curLoadingShow . show == None :
Loading... ( $ curLoadingShow . show_name )
#else :
<a href="displayShow?show= $ curLoadingShow . show . indexerid "> $ curLoadingShow . show . name </a>
#end if
</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
#end for
$ myShowList . sort (lambda x, y: cmp(x.name, y.name))
#for $ curShow in $ myShowList :
2014-07-21 05:38:50 +00:00
#set $ cur_airs_next = ' '
#set $ cur_snatched = 0
#set $ cur_downloaded = 0
#set $ cur_total = 0
#set $ download_stat_tip = ' '
#if $ curShow . indexerid in $ show_stat :
#set $ cur_airs_next = $ show_stat [ $ curShow . indexerid ] [ ' ep_airs_next ' ]
#set $ cur_snatched = $ show_stat [ $ curShow . indexerid ] [ ' ep_snatched ' ]
#if not $ cur_snatched :
#set $ cur_snatched = 0
#end if
#set $ cur_downloaded = $ show_stat [ $ curShow . indexerid ] [ ' ep_downloaded ' ]
#if not $ cur_downloaded :
#set $ cur_downloaded = 0
#end if
#set $ cur_total = $ show_stat [ $ curShow . indexerid ] [ ' ep_total ' ]
#if not $ cur_total :
#set $ cur_total = 0
#end if
#end if
#if $ cur_total != 0 :
#set $ download_stat = str ( $ cur_downloaded )
#set $ download_stat_tip = " Downloaded: " + str ( $ cur_downloaded )
#if $ cur_snatched > 0 :
#set $ download_stat = download_stat + " + " + str ( $ cur_snatched )
#set $ download_stat_tip = download_stat_tip + " & # 013;" + "Snatched: " + str( $ cur_snatched )
#end if
#set $ download_stat = download_stat + " / " + str ( $ cur_total )
#set $ download_stat_tip = download_stat_tip + " & # 013;" + "Total: " + str( $ cur_total )
#else
#set $ download_stat = ' ? '
#set $ download_stat_tip = " no data "
#end if
#set $ nom = $ cur_downloaded
#set $ den = $ cur_total
#if $ den == 0 :
#set $ den = 1
#end if
#set $ progressbar_percent = $ nom * 100 / $ den
2014-03-10 05:18:05 +00:00
2014-06-08 04:13:40 +00:00
#set $ which_thumb = $ layout + " _thumb "
2014-03-10 05:18:05 +00:00
<tr>
2014-07-21 05:38:50 +00:00
#if $ cur_airs_next :
#set $ ldatetime = $ network_timezones . parse_date_time ( $ cur_airs_next , $ curShow . airs , $ curShow . network )
2014-05-23 15:20:44 +00:00
<td align="center" class="nowrap" style="color: #555555;font-weight:bold;"><div class=" ${ fuzzydate } "> $ sbdatetime . sbdatetime . sbfdate ( $ ldatetime )</div><span class="sort_data"> $ time . mktime ( $ ldatetime . timetuple ())</span> </td>
2014-03-10 05:18:05 +00:00
#else :
<td align="center" class="nowrap" style="color: #555555;font-weight:bold;"></td>
#end if
#if $ layout == ' poster ' :
<td>
<div class="imgHomeWrapper $ layout ">
<a href=" $ sbRoot /showPoster/?show= $ curShow . indexerid &which= $ layout " rel="dialog" title=" $ curShow . name ">
<img src=" $ sbRoot /showPoster/?show= $ curShow . indexerid &which= $ which_thumb " class=" $ layout " alt=" $ curShow . indexerid "/>
</a>
</div>
</td>
<td class="tvShow"><a href=" $ sbRoot /home/displayShow?show= $ curShow . indexerid "> $ curShow . name </a></td>
#else if $ layout == ' banner ' :
<td style="display: none;"/>
<td>
<span style="display: none;"> $ curShow . name </span>
<div class="imgHomeWrapper imgHomeWrapperRounded $ layout ">
<a href=" $ sbRoot /home/displayShow?show= $ curShow . indexerid ">
<img src=" $ sbRoot /showPoster/?show= $ curShow . indexerid &which= $ which_thumb " class=" $ layout " alt=" $ curShow . indexerid " title=" $ curShow . name "/>
</div>
</td>
#else if $ layout == ' simple ' :
<td style="display: none;"/>
<td class="tvShow"><a href=" $ sbRoot /home/displayShow?show= $ curShow . indexerid "> $ curShow . name </a></td>
#end if
<!--<td align="center"> $ curShow . network </td>//-->
<td align="center" style="color: #555555;font-weight:bold;">
#if $ layout != ' simple ' :
#if $ curShow . network :
<img id="network" width="44.8" height="22.4" src=" $ sbRoot /images/network/ ${ curShow . network . lower ( ) } .png" alt=" $ curShow . network " title=" $ curShow . network " />
#else :
<img id="network" width="44.8" height="22.4" src=" $ sbRoot /images/network/nonetwork.png" alt="No Network" title="No Network" />
#end if
#else :
$ curShow . network
#end if
</td>
#if $ curShow . quality in $ qualityPresets :
<td align="center"><span class="quality $ qualityPresetStrings [ $ curShow . quality ]"> $ qualityPresetStrings [ $ curShow . quality ]</span></td>
#else :
<td align="center"><span class="quality Custom">Custom</span></td>
#end if
2014-07-21 05:38:50 +00:00
<td align="center"><span style="display: none;"> $ download_stat </span><div id="progressbar $ curShow . indexerid " style="position:relative;"></div>
2014-03-10 05:18:05 +00:00
<script type="text/javascript">
2014-07-21 05:38:50 +00:00
<!--
\$(function() {
\$("\ #progressbar $ curShow . indexerid " ).progressbar( {
value: $ progressbar_percent
});
\$("\ #progressbar $ curShow . indexerid " ).append( " < div class = ' progressbarText ' title = ' $download_stat_tip ' > $ download_stat < / div > " )
});
//-->
2014-03-10 05:18:05 +00:00
</script>
</td>
2014-07-07 12:55:42 +00:00
<td align="center"><img src=" $ sbRoot /images/ #if int ( $ curShow . paused ) == 0 and $ curShow . status != " Ended " then " yes16.png \" alt= \" Y \" " else " no16.png \" alt= \" N \" " # width="16" height="16" /></td>
2014-03-10 05:18:05 +00:00
<td align="center" style="color: #555555; font-weight: bold;"> $ curShow . status </td>
</tr>
#end for
</tbody>
</table>
2014-05-27 07:44:23 +00:00
#end for
2014-06-08 04:13:40 +00:00
#include $ os . path . join ( $ sickbeard . PROG_DIR , " gui/slick/interfaces/default/inc_bottom.tmpl " )