mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-12 19:12:26 -05:00
308 lines
10 KiB
Cheetah
308 lines
10 KiB
Cheetah
#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 $downloadedEps = $myDB.select("SELECT showid, COUNT(*) FROM tv_episodes WHERE (status IN ("+",".join([str(x) for x in $Quality.DOWNLOADED + [$ARCHIVED]])+") OR (status IN ("+",".join([str(x) for x in $Quality.SNATCHED + $Quality.SNATCHED_PROPER])+") AND location != '')) AND season != 0 and episode != 0 AND airdate <= "+$today+" GROUP BY showid")
|
|
#set $allEps = $myDB.select("SELECT showid, COUNT(*) FROM tv_episodes WHERE season != 0 and episode != 0 AND (airdate != 1 OR status IN ("+",".join([str(x) for x in ($Quality.DOWNLOADED + $Quality.SNATCHED + $Quality.SNATCHED_PROPER) + [$ARCHIVED]])+")) AND airdate <= "+$today+" AND status != "+str($IGNORED)+" GROUP BY showid")
|
|
#set $layout = $sickbeard.HOME_LAYOUT
|
|
|
|
<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'
|
|
});
|
|
|
|
\$.tablesorter.addParser({
|
|
id: 'eps',
|
|
is: function(s) {
|
|
return false;
|
|
},
|
|
format: function(s) {
|
|
match = s.match(/^(.*)/);
|
|
|
|
if (match == null || match[1] == "?")
|
|
return -10;
|
|
|
|
var nums = match[1].split(" / ");
|
|
|
|
if (parseInt(nums[0]) === 0)
|
|
return parseInt(nums[1]);
|
|
|
|
var finalNum = parseInt((nums[0]/nums[1])*1000)*100;
|
|
if (finalNum > 0)
|
|
finalNum += parseInt(nums[0]);
|
|
|
|
return finalNum;
|
|
},
|
|
type: 'numeric'
|
|
});
|
|
|
|
\$(document).ready(function(){
|
|
|
|
\$("img#network").on('error', function(){
|
|
\$(this).parent().text(\$(this).attr('alt'));
|
|
\$(this).remove();
|
|
});
|
|
|
|
\$("#showListTableShows: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' },
|
|
}
|
|
});
|
|
|
|
\$("#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' },
|
|
}
|
|
});
|
|
|
|
#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
|
|
|
|
});
|
|
|
|
//-->
|
|
</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>
|
|
|
|
#for $curShowlist in $showlists:
|
|
#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">
|
|
|
|
<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>
|
|
<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:
|
|
|
|
#set $curShowDownloads = [x[1] for x in $downloadedEps if int(x[0]) == $curShow.indexerid]
|
|
#set $curShowAll = [x[1] for x in $allEps if int(x[0]) == $curShow.indexerid]
|
|
#if len($curShowAll) != 0:
|
|
#if len($curShowDownloads) != 0:
|
|
#set $dlStat = str($curShowDownloads[0])+" / "+str($curShowAll[0])
|
|
#set $nom = $curShowDownloads[0]
|
|
#set $den = $curShowAll[0]
|
|
#else
|
|
#set $dlStat = "0 / "+str($curShowAll[0])
|
|
#set $nom = 0
|
|
#set $den = $curShowAll[0]
|
|
#end if
|
|
#else
|
|
#set $dlStat = "0 / 0"
|
|
#set $nom = 0
|
|
#set $den = 1
|
|
#end if
|
|
|
|
#set $which_thumb = $layout+"_thumb"
|
|
|
|
<tr>
|
|
#if $curShow.nextaired:
|
|
#set $ldatetime = $network_timezones.parse_date_time($curShow.nextaired,$curShow.airs,$curShow.network)
|
|
<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>
|
|
#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
|
|
<td align="center"><span style="display: none;">$dlStat</span><div id="progressbar$curShow.indexerid" style="position:relative;"></div>
|
|
<script type="text/javascript">
|
|
<!--
|
|
\$(function() {
|
|
\$("\#progressbar$curShow.indexerid").progressbar({
|
|
value: parseInt($nom) * 100 / parseInt($den) / 1000 });
|
|
\$("\#progressbar$curShow.indexerid").append( "<div class='progressbarText'>$dlStat</div>" )
|
|
var progressBarWidth = parseInt($nom) * 100 / parseInt($den) + "%"
|
|
\$("\#progressbar$curShow.indexerid > .ui-progressbar-value").animate({ width: progressBarWidth }, 1000);
|
|
});
|
|
//-->
|
|
</script>
|
|
</td>
|
|
<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>
|
|
<td align="center" style="color: #555555; font-weight: bold;">$curShow.status</td>
|
|
</tr>
|
|
|
|
|
|
#end for
|
|
</tbody>
|
|
</table>
|
|
#end for
|
|
|
|
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl") |