mirror of
https://github.com/SickGear/SickGear.git
synced 2025-01-05 17:43:37 +00:00
Change overhaul UI of editShow and anime release groups, refactor and simplify code.
Change list order of option on the right of the displayShow page to be mostly inline with the order of options on editShow. Change legend wording and text colour on the displayShow page. Add output message if no release group results are available. Add cleansing of text used in the processes to a add a show. Add sorting of AniDB available group results. Add error handling and related UI feedback to reflect result of AniDB communications. Change description of config/search ignore and require words.
This commit is contained in:
parent
cd1d7b7f1e
commit
97429c084f
16 changed files with 593 additions and 420 deletions
|
@ -61,6 +61,13 @@
|
|||
* Add setting "Update shows during hour" to General Config/Misc
|
||||
* Add max-width to prevent ui glitch on Pull request and Branch Version selectors on config/General/Advanced and change <input> tags to html5
|
||||
* Change order of some settings on Config/General/Interface/Web Interface and tweak texts
|
||||
* Change overhaul UI of editShow and anime release groups, refactor and simplify code
|
||||
* Change list order of option on the right of the displayShow page to be mostly inline with the order of options on editShow
|
||||
* Change legend wording and text colour on the displayShow page
|
||||
* Add output message if no release group results are available
|
||||
* Add cleansing of text used in the processes to a add a show
|
||||
* Add sorting of AniDB available group results
|
||||
* Add error handling and related UI feedback to reflect result of AniDB communications
|
||||
|
||||
[develop changelog]
|
||||
* Change uT params from unicode to str.format as magnet URLs worked but sending files in POST bodies failed
|
||||
|
@ -68,6 +75,7 @@
|
|||
* Fix validation of release groups when no group is detected
|
||||
* Fix missed html tag replacing in notifications
|
||||
* Add history module to pnotify lib
|
||||
* Change the remove show notification to properly send the title and message parameters to PNotify
|
||||
|
||||
|
||||
### 0.6.4 (2015-02-10 20:20:00 UTC)
|
||||
|
|
|
@ -950,7 +950,8 @@ div.formpaginate {
|
|||
}
|
||||
|
||||
#addShowForm #blackwhitelist,
|
||||
#addShowForm #blackwhitelist h4 {
|
||||
#addShowForm #blackwhitelist h4,
|
||||
#addShowForm #blackwhitelist p {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
@ -1372,6 +1373,17 @@ td.col-search {
|
|||
padding-right: 6px;
|
||||
padding-bottom: 1px;
|
||||
width: 150px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.options-on-right {
|
||||
width:180px;
|
||||
float: right;
|
||||
vertical-align: middle;
|
||||
height: 100%;
|
||||
}
|
||||
.options-on-right .showLegendRight {
|
||||
padding-right: 6px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.input-scene {
|
||||
|
@ -1381,10 +1393,11 @@ td.col-search {
|
|||
}
|
||||
|
||||
#editShow {
|
||||
width: 700px;
|
||||
padding-top: 10px;
|
||||
/*width: 700px;
|
||||
padding-top: 10px;*/
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding: 15px 0 0
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
|
@ -1867,6 +1880,15 @@ select .selected {
|
|||
line-height: 24px;
|
||||
}
|
||||
|
||||
#editShow .field-pair #SceneException h4,
|
||||
#editShow .field-pair #customQuality h4 {
|
||||
font-size: 13px !important;
|
||||
margin-bottom: 10px
|
||||
}
|
||||
#editShow .field-pair #customQuality h4 {
|
||||
margin-bottom:1px;
|
||||
}
|
||||
|
||||
.testNotification {
|
||||
padding: 5px;
|
||||
margin-bottom: 10px;
|
||||
|
@ -2293,44 +2315,59 @@ option.flag {
|
|||
}
|
||||
|
||||
#Anime div.component-group-desc p {
|
||||
margin-bottom: 0.4em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-top: 0.4em;
|
||||
margin: 0.4em 0;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
div.blackwhitelist h4 {
|
||||
margin-top:0
|
||||
}
|
||||
div.blackwhitelist{
|
||||
float:left;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.blackwhitelist input {
|
||||
margin: 5px 5px;
|
||||
}
|
||||
|
||||
div.blackwhitelist.pool select{
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
div.blackwhitelist.pool {
|
||||
margin:5px;
|
||||
}
|
||||
|
||||
div.blackwhitelist.white select, div.blackwhitelist.black select {
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
div.blackwhitelist.white, div.blackwhitelist.black {
|
||||
margin:5px;
|
||||
}
|
||||
|
||||
div.blackwhitelist span {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.blackwhitelist.anidb, div.blackwhitelist.manual {
|
||||
div.blackwhitelist.white input,
|
||||
div.blackwhitelist.black input,
|
||||
div.blackwhitelist.pool input {
|
||||
margin: 5px 0 !important;
|
||||
}
|
||||
div.blackwhitelist select {
|
||||
margin : 0 !important
|
||||
}
|
||||
|
||||
div.blackwhitelist .inuse {
|
||||
margin-right: 5px;
|
||||
width: 243px;
|
||||
float: left
|
||||
}
|
||||
|
||||
div.blackwhitelist.white,
|
||||
div.blackwhitelist.black {
|
||||
width: 243px;
|
||||
}
|
||||
div.blackwhitelist.white select,
|
||||
div.blackwhitelist.black select{
|
||||
margin:0;
|
||||
width: 215px;
|
||||
/* clear:both*/
|
||||
}
|
||||
div.blackwhitelist.white select,
|
||||
div.blackwhitelist.black select {
|
||||
height: 110px;
|
||||
}
|
||||
div.blackwhitelist.pool,
|
||||
div.blackwhitelist.pool select{
|
||||
width: 330px;
|
||||
height: 265px;
|
||||
float:right
|
||||
}
|
||||
|
||||
div.blackwhitelist span {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div#blackwhitelist,
|
||||
div.blackwhitelist.manual {
|
||||
margin: 7px 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -110,20 +110,20 @@
|
|||
|
||||
<div class="field-pair">
|
||||
<label>
|
||||
<span class="component-title">Ignore words</span>
|
||||
<span class="component-title">Ignore result with any word</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" name="ignore_words" value="$sickbeard.IGNORE_WORDS" class="form-control input-sm input350" />
|
||||
<div class="clear-left">results containing any word in the comma separated word list will be ignored</div>
|
||||
<div class="clear-left">ignore search result <em class="grey-text">if its title contains any</em> of these comma seperated words</div>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
<label>
|
||||
<span class="component-title">Require words</span>
|
||||
<span class="component-title">Require at least one word</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" name="require_words" value="$sickbeard.REQUIRE_WORDS" class="form-control input-sm input350" />
|
||||
<div class="clear-left">results not containing all words in the comma separated word list will be ignored</div>
|
||||
<div class="clear-left">ignore search result <em class="grey-text">unless its title contains one</em> of these comma seperated words</div>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
|
|
@ -196,70 +196,69 @@
|
|||
<div id="summary">
|
||||
<table class="summaryTable pull-left">
|
||||
#if $show.network and $show.airs:
|
||||
<tr><td class="showLegend">Originally Airs: </td><td>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""# on $show.network</td></tr>
|
||||
<tr><td class="showLegend grey-text">Originally airs</td><td>$show.airs #if not $network_timezones.test_timeformat($show.airs) then ' <font color="#FF0000"><b>(invalid Timeformat)</b></font> ' else ''# on $show.network</td></tr>
|
||||
#else if $show.network:
|
||||
<tr><td class="showLegend">Originally Airs: </td><td>$show.network</td></tr>
|
||||
<tr><td class="showLegend grey-text">Originally airs</td><td>$show.network</td></tr>
|
||||
#else if $show.airs:
|
||||
<tr><td class="showLegend">Originally Airs: </td><td>>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""#</td></tr>
|
||||
<tr><td class="showLegend grey-text">Originally airs</td><td>$show.airs #if not $network_timezones.test_timeformat($show.airs) then ' <font color="#FF0000"><b>(invalid Timeformat)</b></font> ' else ''#</td></tr>
|
||||
#end if
|
||||
<tr><td class="showLegend">Status: </td><td>$show.status</td></tr>
|
||||
<tr><td class="showLegend grey-text">Status</td><td>$show.status</td></tr>
|
||||
#if $showLoc[1]:
|
||||
<tr><td class="showLegend">Location: </td><td>$showLoc[0]</td></tr>
|
||||
<tr><td class="showLegend grey-text">Location</td><td>$showLoc[0]</td></tr>
|
||||
#else:
|
||||
<tr><td class="showLegend"><span style="color: red;">Location: </span></td><td><span style="color: red;">$showLoc[0]</span> (dir is missing)</td></tr>
|
||||
<tr><td class="showLegend grey-text"><span style="color: red;">Location</span></td><td><span style="color: red;">$showLoc[0]</span> (dir is missing)</td></tr>
|
||||
#end if
|
||||
#set $anyQualities, $bestQualities = $Quality.splitQuality(int($show.quality))
|
||||
<tr><td class="showLegend">Quality: </td><td>
|
||||
<tr><td class="showLegend grey-text">Quality</td><td>
|
||||
#if $show.quality in $qualityPresets:
|
||||
<span class="quality $qualityPresetStrings[$show.quality]">$qualityPresetStrings[$show.quality]</span>
|
||||
#else:
|
||||
#if $anyQualities:
|
||||
<i>Initial:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then " </br> " else ""#
|
||||
<i class="grey-text">Initial ...</i> <%= ', '.join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then " </br> " else ""#
|
||||
#end if
|
||||
#if $bestQualities:
|
||||
<i>Replace with:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%>
|
||||
<i class="grey-text">Replace with ...</i> <%= ', '.join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%>
|
||||
#end if
|
||||
#end if
|
||||
<tr><td class="showLegend">Scene Name:</td><td>#if $show.exceptions then $exceptions_string else $show.name#</td></tr>
|
||||
<tr><td class="showLegend grey-text">Scene name</td><td>#if $show.exceptions then $exceptions_string else $show.name#</td></tr>
|
||||
|
||||
#if $show.rls_require_words:
|
||||
<tr><td class="showLegend">Required Words: </td><td>#echo $show.rls_require_words#</td></tr>
|
||||
#end if
|
||||
#if $show.rls_ignore_words:
|
||||
<tr><td class="showLegend">Ignored Words: </td><td>#echo $show.rls_ignore_words#</td></tr>
|
||||
<tr><td class="showLegend grey-text">Ignore with any of</td><td>#echo $show.rls_ignore_words#</td></tr>
|
||||
#end if
|
||||
#if $show.rls_require_words:
|
||||
<tr><td class="showLegend grey-text">Require one of</td><td>#echo $show.rls_require_words#</td></tr>
|
||||
#end if
|
||||
|
||||
#if $bwl and $bwl.whitelist:
|
||||
<tr><td class="showLegend">Wanted Group#if len($bwl.whitelist)>1 then "s" else ""#:</td>
|
||||
<tr><td class="showLegend grey-text">Whitelist group#if len($bwl.whitelist)>1 then 's' else ''#</td>
|
||||
<td>#echo ', '.join($bwl.whitelist)#</td>
|
||||
</tr>
|
||||
#end if
|
||||
#if $bwl and $bwl.blacklist:
|
||||
<tr><td class="showLegend">Unwanted Group#if len($bwl.blacklist)>1 then "s" else ""#:</td>
|
||||
<tr><td class="showLegend grey-text">Blacklist group#if len($bwl.blacklist)>1 then 's' else ''#</td>
|
||||
<td>#echo ', '.join($bwl.blacklist)#</td>
|
||||
</tr>
|
||||
#end if
|
||||
|
||||
|
||||
<tr><td class="showLegend">Size:</td><td>$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))</td></tr>
|
||||
<tr><td class="showLegend grey-text">Size</td><td>$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))</td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
<table style="width:180px; float: right; vertical-align: middle; height: 100%;">
|
||||
<tr><td class="showLegend">Info Language:</td><td><img src="$sbRoot/images/flags/${show.lang}.png" width="16" height="11" alt="$show.lang" title="$show.lang" /></td></tr>
|
||||
#if $sickbeard.USE_SUBTITLES
|
||||
<tr><td class="showLegend">Subtitles: </td><td><img src="$sbRoot/images/#if int($show.subtitles) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
#end if
|
||||
<tr><td class="showLegend">Flat Folders: </td><td><img src="$sbRoot/images/#if $show.flatten_folders == 1 or $sickbeard.NAMING_FORCE_FOLDERS then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">Paused: </td><td><img src="$sbRoot/images/#if int($show.paused) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">Air-by-Date: </td><td><img src="$sbRoot/images/#if int($show.air_by_date) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">Sports: </td><td><img src="$sbRoot/images/#if int($show.is_sports) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">Anime: </td><td><img src="$sbRoot/images/#if int($show.is_anime) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">DVD Order: </td><td><img src="$sbRoot/images/#if int($show.dvdorder) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegend">Scene Numbering: </td><td><img src="$sbRoot/images/#if int($show.scene) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<table class="options-on-right">
|
||||
<tr><td class="showLegendRight grey-text">Paused</td><td><img src="$sbRoot/images/#if int($show.paused) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
#if $anyQualities + $bestQualities
|
||||
<tr><td class="showLegend">Archive First Match: </td><td><img src="$sbRoot/images/#if int($show.archive_firstmatch) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Archive on first match</td><td><img src="$sbRoot/images/#if int($show.archive_firstmatch) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
#end if
|
||||
<tr><td class="showLegendRight grey-text">Flat folder structure</td><td><img src="$sbRoot/images/#if $show.flatten_folders == 1 or $sickbeard.NAMING_FORCE_FOLDERS then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Air by date naming</td><td><img src="$sbRoot/images/#if int($show.air_by_date) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Use DVD order</td><td><img src="$sbRoot/images/#if int($show.dvdorder) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Scene numbering</td><td><img src="$sbRoot/images/#if int($show.scene) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
#if $sickbeard.USE_SUBTITLES
|
||||
<tr><td class="showLegendRight grey-text">Subtitles</td><td><img src="$sbRoot/images/#if int($show.subtitles) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
#end if
|
||||
<tr><td class="showLegendRight grey-text">Show is sports</td><td><img src="$sbRoot/images/#if int($show.is_sports) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Show is anime</td><td><img src="$sbRoot/images/#if int($show.is_anime) == 1 then 'yes16.png" title="Yes" alt="Yes' else 'no16.png" title="No" alt="No'#" width="16" height="16" /></td></tr>
|
||||
<tr><td class="showLegendRight grey-text">Info language</td><td><img src="$sbRoot/images/flags/${show.lang}.png" width="16" height="11" alt="$show.lang" title="$show.lang" /></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3,221 +3,303 @@
|
|||
#from sickbeard import common
|
||||
#from sickbeard import exceptions
|
||||
#from sickbeard import scene_exceptions
|
||||
#from sickbeard.blackandwhitelist import *
|
||||
#set global $title="Edit " + $show.name
|
||||
#set global $header="Edit " + $show.name
|
||||
#import sickbeard.blackandwhitelist
|
||||
|
||||
#set global $sbPath=".."
|
||||
#set global $title = 'Edit ' + $show.name
|
||||
#set global $header = 'Edit ' + $show.name
|
||||
|
||||
#set global $topmenu="home"
|
||||
#set global $sbPath = '..'
|
||||
#set html_checked = ' checked="checked"'
|
||||
#set html_disabled = ' disabled="disabled"'
|
||||
|
||||
#set global $topmenu = 'home'
|
||||
#import os.path
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
|
||||
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
|
||||
|
||||
#if $varExists('header')
|
||||
<h1 class="header">$header</h1>
|
||||
#else
|
||||
<h1 class="title">$title</h1>
|
||||
#end if
|
||||
|
||||
<div id="editShow">
|
||||
<script type="text/javascript" src="$sbRoot/js/qualityChooser.js?$sbPID"></script>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
<!--
|
||||
\$(document).ready(function(){
|
||||
|
||||
\$.getJSON('$sbRoot/home/addShows/getIndexerLanguages', {}, function(data) {
|
||||
var resultStr = '';
|
||||
\$.getJSON('$sbRoot/home/addShows/getIndexerLanguages', {}, function(data) {
|
||||
var resultStr = '';
|
||||
|
||||
if (data.results.length == 0) {
|
||||
flag = ' class="flag" style="background-image:url($sbRoot/images/flags/${show.lang}.png)"';
|
||||
resultStr = '<option value="$show.lang" selected="selected" + flag>$show.lang</option>';
|
||||
} else {
|
||||
var current_lang_added = false;
|
||||
\$.each(data.results, function(index, obj) {
|
||||
if (data.results.length == 0) {
|
||||
flag = ' class="flag" style="background-image:url($sbRoot/images/flags/${show.lang}.png)"';
|
||||
resultStr = '<option value="$show.lang" selected="selected" + flag>$show.lang</option>';
|
||||
} else {
|
||||
var current_lang_added = false;
|
||||
\$.each(data.results, function(index, obj) {
|
||||
|
||||
if (obj == "$show.lang") {
|
||||
selected = ' selected="selected"';
|
||||
current_lang_added = true;
|
||||
}
|
||||
else {
|
||||
selected = '';
|
||||
}
|
||||
if (obj == '$show.lang') {
|
||||
selected = ' selected="selected"';
|
||||
current_lang_added = true;
|
||||
}
|
||||
else {
|
||||
selected = '';
|
||||
}
|
||||
|
||||
flag = ' class="flag" style="background-image:url($sbRoot/images/flags/' + obj + '.png);"';
|
||||
resultStr += '<option value="' + obj + '"' + selected + flag + '>' + obj + '</option>';
|
||||
});
|
||||
if (!current_lang_added)
|
||||
resultStr += '<option value="$show.lang" selected="selected">$show.lang</option>';
|
||||
flag = ' class="flag" style="background-image:url($sbRoot/images/flags/' + obj + '.png);"';
|
||||
resultStr += '<option value="' + obj + '"' + selected + flag + '>' + obj + '</option>';
|
||||
});
|
||||
|
||||
}
|
||||
\$('#indexerLangSelect').html(resultStr)
|
||||
|
||||
});
|
||||
if (!current_lang_added)
|
||||
resultStr += '<option value="$show.lang" selected="selected">$show.lang</option>';
|
||||
|
||||
}
|
||||
\$('#indexerLangSelectEdit').html(resultStr)
|
||||
});
|
||||
});
|
||||
//-->
|
||||
</script>
|
||||
|
||||
<br>
|
||||
#if $varExists('header')
|
||||
<h1 class="header">$header</h1>
|
||||
#else
|
||||
<h1 class="title">$title</h1>
|
||||
#end if
|
||||
|
||||
<form action="editShow" method="post">
|
||||
<input type="hidden" name="show" value="$show.indexerid" />
|
||||
<b>Location:</b> <input type="text" name="location" id="location" value="$show._location" class="form-control form-control-inline input-sm input350" /><br />
|
||||
<br />
|
||||
<form action="editShow" method="post" id="addShowForm">
|
||||
<input type="hidden" name="show" value="$show.indexerid">
|
||||
|
||||
<div id="editShow" class="stepDiv">
|
||||
|
||||
<div class="field-pair">
|
||||
<label for="paused">
|
||||
<span class="component-title">Paused</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="paused" id="paused"#if 1 == $show.paused then $html_checked else ''#>
|
||||
<p>enable to pause searching providers for show episodes</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
#set $qualities = $common.Quality.splitQuality(int($show.quality))
|
||||
#set global $anyQualities = $qualities[0]
|
||||
#set global $bestQualities = $qualities[1]
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_qualityChooser.tmpl")
|
||||
<br />
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_qualityChooser.tmpl')
|
||||
|
||||
#if $anyQualities + $bestQualities
|
||||
<b>Archive on first match: </b>
|
||||
<input type="checkbox" name="archive_firstmatch" #if $show.archive_firstmatch == 1 then "checked=\"checked\"" else ""# /><br>
|
||||
(check this to have the episode archived after the first best match is found from your archive quality list)
|
||||
<br />
|
||||
<br />
|
||||
<div class="field-pair">
|
||||
<label for="archive_firstmatch">
|
||||
<span class="component-title">Archive on first match</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="archive_firstmatch" id="archive_firstmatch"#if $show.archive_firstmatch == 1 then $html_checked else ''#>
|
||||
<p>enable to have the episode archived after the first best match is found from your archive quality list</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
#end if
|
||||
</div>
|
||||
|
||||
<b>Scene Exception:</b>
|
||||
<input type="text" id="SceneName" class="form-control form-control-inline input-sm input200">
|
||||
<input class="btn btn-inline" type="button" value="Add" id="addSceneName"><br />
|
||||
<div class="field-pair">
|
||||
<label for="SceneName">
|
||||
<span class="component-title input">Scene exception</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" id="SceneName" class="form-control form-control-inline input-sm input200">
|
||||
<input class="btn btn-inline" type="button" value="Add" id="addSceneName">
|
||||
<p class="clear-left">add alternative release names found on search providers for <b class="boldest grey-text">$show.name</b></p>
|
||||
</span>
|
||||
<span class="component-desc">
|
||||
<div id="SceneException">
|
||||
<h4>Exceptions list (multi-selectable)</h4>
|
||||
<select id="exceptions_list" name="exceptions_list" multiple="multiple" class="input200" style="min-height:90px; float:left" >
|
||||
#for $cur_exception in $show.exceptions:
|
||||
<option value="$cur_exception">$cur_exception</option>
|
||||
#end for
|
||||
</select>
|
||||
<span><p>this list overrides the original name<br />to search, it doesn't append to it</p></span>
|
||||
<div>
|
||||
<input id="removeSceneName" value="Remove" class="btn pull-left" type="button" style="margin-top: 10px;"/>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</label>
|
||||
<div style="clear:right"> </div>
|
||||
</div>
|
||||
|
||||
<div id="SceneException" >
|
||||
<div class="field-pair">
|
||||
<label for="rls_ignore_words">
|
||||
<span class="component-title input">Ignore result with any word</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" name="rls_ignore_words" id="rls_ignore_words" value="$show.rls_ignore_words" class="form-control form-control-inline input-sm input350">
|
||||
<p>e.g. [word1,word2, ... ,word_n]</p>
|
||||
<span><p>ignore search result <em class="grey-text">if its title contains any</em> of these comma seperated words</p></span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>This will <b>affect the episode show search</b> on nzb and torrent provider.<br />
|
||||
This list overrides the original name, it doesn't append to it.<br />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="pull-left" style="text-align:center;">
|
||||
<h4>Exceptions List</h4>
|
||||
<select id="exceptions_list" name="exceptions_list" multiple="multiple" style="min-width:10em;" >
|
||||
#for $cur_exception in $show.exceptions:
|
||||
<option value="$cur_exception">$cur_exception</option>
|
||||
#end for
|
||||
</select>
|
||||
<div>
|
||||
<input id="removeSceneName" value="Remove" class="btn pull-left" type="button" style="margin-top: 10px;"/>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<br />
|
||||
<div class="field-pair">
|
||||
<label for="rls_require_words">
|
||||
<span class="component-title input">Require at least one word</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" name="rls_require_words" id="rls_require_words" value="$show.rls_require_words" class="form-control form-control-inline input-sm input350">
|
||||
<p>e.g. [word1,word2, ... ,word_n]</p>
|
||||
<span><p>ignore search result <em class="grey-text">unless its title contains one</em> of these comma seperated words</p></span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<b>Info Language:</b> <select name="indexerLang" id="indexerLangSelect" class="form-control form-control-inline input-sm"></select><br />
|
||||
Note: This will only affect the language of the retrieved metadata file contents and episode filenames.<br />
|
||||
This <b>DOES NOT</b> allow SickGear to download non-english TV episodes!<br />
|
||||
<br />
|
||||
<div class="field-pair">
|
||||
<label for="location">
|
||||
<span class="component-title input">Location for files</span>
|
||||
<span class="component-desc">
|
||||
<input type="text" name="location" id="location" value="$show._location" class="form-control form-control-inline input-sm input350">
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<b>Flatten files (no folders):</b> <input type="checkbox" name="flatten_folders" #if $show.flatten_folders == 1 and not $sickbeard.NAMING_FORCE_FOLDERS then "checked=\"checked\"" else ""# #if $sickbeard.NAMING_FORCE_FOLDERS then "disabled=\"disabled\"" else ""#/><br /><br />
|
||||
<b>Paused:</b> <input type="checkbox" name="paused" #if $show.paused == 1 then "checked=\"checked\"" else ""# /><br /><br />
|
||||
<b>Subtitles:</b> <input type="checkbox" name="subtitles"#if $show.subtitles == 1 and $sickbeard.USE_SUBTITLES then " checked=\"checked\"" else ""##if not $sickbeard.USE_SUBTITLES then " disabled=\"disabled\"" else ""#/><br /><br />
|
||||
<div class="field-pair">
|
||||
<label for="flatten_folders">
|
||||
<span class="component-title">Flat folder structure</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="flatten_folders" id="flatten_folders"#if 1 == $show.flatten_folders and not $sickbeard.NAMING_FORCE_FOLDERS then $html_checked else ''##if $sickbeard.NAMING_FORCE_FOLDERS then $html_disabled else ''#>
|
||||
<p>enable to prevent creating the folders normally used to group seasons</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<b>Scene Numbering: </b>
|
||||
<input type="checkbox" name="scene" #if $show.scene == 1 then "checked=\"checked\"" else ""# /><br/>
|
||||
(check this if you wish to search by scene numbering, uncheck to search by indexer numbering)
|
||||
<br/><br/>
|
||||
<b>Air by date: </b>
|
||||
<input type="checkbox" name="air_by_date" #if $show.air_by_date == 1 then "checked=\"checked\"" else ""# /><br />
|
||||
(check this if the show is released as Show.03.02.2010 rather than Show.S02E03)
|
||||
<br /><br />
|
||||
<b>Sports: </b>
|
||||
<input type="checkbox" name="sports" #if $show.sports == 1 then "checked=\"checked\"" else ""# /><br />
|
||||
(check this if the show is a sporting or MMA event)
|
||||
<br /><br />
|
||||
<b>Anime: </b>
|
||||
<input type="checkbox" name="anime" #if $show.is_anime then "CHECKED" else ""#><br />
|
||||
(check this if the show is released as Show.265 rather than Show.S02E03, this show is an anime)
|
||||
<br /><br />
|
||||
<b>DVD Order: </b>
|
||||
<input type="checkbox" name="dvdorder" #if $show.dvdorder == 1 then "checked=\"checked\"" else ""# /><br/>
|
||||
(check this if you wish to use the DVD order instead of the Airing order)
|
||||
<br/><br/>
|
||||
<div class="field-pair">
|
||||
<label for="air_by_date">
|
||||
<span class="component-title">Air by date episode names</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="air_by_date" id="air_by_date"#if 1 == $show.air_by_date then $html_checked else ''#>
|
||||
<p>enable if episode releases are named ... <em class="grey-text">Show.03.02.2010</em> instead of <em class="grey-text">Show.S02E03</em></p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<b>Ignored Words:</b> <input type="text" name="rls_ignore_words" id="rls_ignore_words" value="$show.rls_ignore_words" class="form-control form-control-inline input-sm input350" /><br />
|
||||
Results with any of these words in the title will be filtered out <br />
|
||||
Separate words with a comma, e.g. "word1,word2,word3"
|
||||
<br /><br />
|
||||
<div class="field-pair">
|
||||
<label for="dvdorder">
|
||||
<span class="component-title">Use DVD order</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="dvdorder" id="dvdorder"#if 1 == $show.dvdorder then $html_checked else ''#>
|
||||
<p>for episode titles, numbering etc. instead of the order the show aired on the network</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<b>Required Words:</b> <input type="text" name="rls_require_words" id="rls_require_words" value="$show.rls_require_words" class="form-control form-control-inline input-sm input350" /><br />
|
||||
Results without one of these words in the title will be filtered out <br />
|
||||
Separate words with a comma, e.g. "word1,word2,word3"
|
||||
<br /><br />
|
||||
<div class="field-pair">
|
||||
<label for="scene">
|
||||
<span class="component-title">Scene numbering</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="scene" id="scene"#if $show.scene == 1 then $html_checked else ''#>
|
||||
<p>search for episodes that are numbered by scene groups instead of by the TV network</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair" style="margin-bottom:10px">
|
||||
<label for="indexerLangSelectEdit">
|
||||
<span class="component-title input">Info language</span>
|
||||
<span class="component-desc">
|
||||
<select name="indexerLang" id="indexerLangSelectEdit" class="form-control form-control-inline input-sm"></select>
|
||||
<span>attempt to fetch show data and episode filenames in this language</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
<label for="subtitles">
|
||||
<span class="component-title">Subtitles</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="subtitles" id="subtitles"#if 1 == $show.subtitles and $sickbeard.USE_SUBTITLES then $html_checked else ''##if not $sickbeard.USE_SUBTITLES then $html_disabled else ''#>
|
||||
<p#if not $sickbeard.USE_SUBTITLES then ' class="grey-text"><del' else ''#>attempt to download episode subtitles for this show#if not $sickbeard.USE_SUBTITLES then '</del> ... (<span class="red-text">note: first <a href="%s/config/subtitles/">enable the subtitle system here</a></span>)' % $sbRoot else ''#</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
<label for="sports">
|
||||
<span class="component-title">Show is sports</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="sports" id="sports"#if 1 == $show.sports then $html_checked else ''#>
|
||||
<p>enable to treat this show as a sporting or MMA event</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
<label for="anime">
|
||||
<span class="component-title">Show is anime</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="anime" id="anime"#if $show.is_anime then $html_checked else ''#>
|
||||
<p>enable if this show is anime and episode releases are named ... <em class="grey-text">Show.265</em> instead of <em class="grey-text">Show.S02E03</em></p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
#if $show.is_anime:
|
||||
#from sickbeard.blackandwhitelist import *
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_blackwhitelist.tmpl")
|
||||
<script type="text/javascript" src="$sbRoot/js/blackwhite.js?$sbPID"></script>
|
||||
#import sickbeard.blackandwhitelist
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_blackwhitelist.tmpl')
|
||||
<script type="text/javascript" src="$sbRoot/js/blackwhite.js?$sbPID"></script>
|
||||
#end if
|
||||
|
||||
<input type="submit" id="submit" value="Submit" class="btn btn-primary" />
|
||||
</form>
|
||||
<input type="submit" id="submit" value="Submit" class="btn btn-primary" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
<!--
|
||||
var all_exceptions = new Array;
|
||||
var all_exceptions = new Array;
|
||||
|
||||
jQuery('#location').fileBrowser({ title: 'Select Show Location' });
|
||||
|
||||
\$('#submit').click(function(){
|
||||
jQuery('#location').fileBrowser({ title: 'Select Show Location' });
|
||||
|
||||
\$('#submit').click(function(){
|
||||
all_exceptions = []
|
||||
|
||||
\$("#exceptions_list option").each ( function() {
|
||||
\$('#exceptions_list option').each ( function() {
|
||||
all_exceptions.push( \$(this).val() );
|
||||
});
|
||||
|
||||
\$("#exceptions_list").val(all_exceptions);
|
||||
#if $show.is_anime:
|
||||
});
|
||||
|
||||
\$('#exceptions_list').val(all_exceptions);
|
||||
#if $show.is_anime:
|
||||
generate_bwlist()
|
||||
#end if
|
||||
#end if
|
||||
});
|
||||
|
||||
\$('#addSceneName').click(function() {
|
||||
var scene_ex = \$('#SceneName').val()
|
||||
var option = \$("<option>")
|
||||
|
||||
\$('#addSceneName').click(function() {
|
||||
var scene_ex = \$('#SceneName').val()
|
||||
var option = \$('<option>')
|
||||
all_exceptions = []
|
||||
|
||||
\$("#exceptions_list option").each ( function() {
|
||||
all_exceptions.push( \$(this).val() )
|
||||
});
|
||||
|
||||
\$('#SceneName').val('')
|
||||
|
||||
if (jQuery.inArray(scene_ex, all_exceptions) > -1 || (scene_ex == ''))
|
||||
return
|
||||
\$('#exceptions_list option').each ( function() {
|
||||
all_exceptions.push( \$(this).val() )
|
||||
});
|
||||
|
||||
\$("#SceneException").show()
|
||||
\$('#SceneName').val('')
|
||||
|
||||
option.attr("value",scene_ex)
|
||||
option.html(scene_ex)
|
||||
return option.appendTo('#exceptions_list');
|
||||
});
|
||||
|
||||
\$('#removeSceneName').click(function() {
|
||||
if (jQuery.inArray(scene_ex, all_exceptions) > -1 || (scene_ex == ''))
|
||||
return
|
||||
|
||||
\$('#SceneException').show()
|
||||
|
||||
option.attr('value',scene_ex)
|
||||
option.html(scene_ex)
|
||||
return option.appendTo('#exceptions_list');
|
||||
});
|
||||
|
||||
\$('#removeSceneName').click(function() {
|
||||
\$('#exceptions_list option:selected').remove();
|
||||
|
||||
\$(this).toggle_SceneException()
|
||||
});
|
||||
|
||||
$.fn.toggle_SceneException = function() {
|
||||
all_exceptions = []
|
||||
|
||||
\$("#exceptions_list option").each ( function() {
|
||||
});
|
||||
|
||||
$.fn.toggle_SceneException = function() {
|
||||
all_exceptions = []
|
||||
|
||||
\$('#exceptions_list option').each ( function() {
|
||||
all_exceptions.push( \$(this).val() );
|
||||
});
|
||||
|
||||
if (all_exceptions == '')
|
||||
\$("#SceneException").hide();
|
||||
});
|
||||
|
||||
if ('' == all_exceptions)
|
||||
\$('#SceneException').hide();
|
||||
else
|
||||
\$("#SceneException").show();
|
||||
\$('#SceneException').show();
|
||||
}
|
||||
|
||||
\$(this).toggle_SceneException();
|
||||
|
||||
//-->
|
||||
</script>
|
||||
</div>
|
||||
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
<input class="btn btn-inline" type="button" id="searchName" value="Search" />
|
||||
</span>
|
||||
<br />
|
||||
<p style="margin:5px 0 15px"><b>*</b> SickGear supports english episodes. The language choice is used for fetching metadata and episode filenames</p>
|
||||
<p style="margin:5px 0 15px"><b>*</b> SickGear supports english episodes. The language choice is used for fetching show data and episode filenames</p>
|
||||
|
||||
<div id="searchResults" style="height: 100%"></div>
|
||||
#end if
|
||||
|
|
|
@ -20,6 +20,33 @@
|
|||
<p class="grey-text">Tip: The following options are <span style="font-weight:800">edit</span>able later in the detail view of the show</p>
|
||||
</div>
|
||||
|
||||
<div class="field-pair">
|
||||
#set $qualities = $Quality.splitQuality($sickbeard.QUALITY_DEFAULT)
|
||||
#set global $anyQualities = $qualities[0]
|
||||
#set global $bestQualities = $qualities[1]
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_qualityChooser.tmpl')
|
||||
</div>
|
||||
|
||||
<div class="field-pair alt">
|
||||
<label for="flatten_folders">
|
||||
<span class="component-title">Flat folder structure</span>
|
||||
<span class="component-desc">
|
||||
<input class="cb" type="checkbox" name="flatten_folders" id="flatten_folders" #if $sickbeard.FLATTEN_FOLDERS_DEFAULT then "checked=\"checked\"" else ""# />
|
||||
<p>do not create sub folders</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair alt">
|
||||
<label for="scene">
|
||||
<span class="component-title">Scene numbering</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="scene" id="scene" #if $sickbeard.SCENE_DEFAULT then "checked=\"checked\"" else ""# />
|
||||
<p>search for episodes that are numbered by scene groups instead of by the TV network</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
#if $sickbeard.USE_SUBTITLES:
|
||||
<div class="field-pair alt">
|
||||
<label for="subtitles">
|
||||
|
@ -32,42 +59,17 @@
|
|||
</div>
|
||||
#end if
|
||||
|
||||
<div class="field-pair alt">
|
||||
<label for="flatten_folders">
|
||||
<span class="component-title">Flatten folders</span>
|
||||
<span class="component-desc">
|
||||
<input class="cb" type="checkbox" name="flatten_folders" id="flatten_folders" #if $sickbeard.FLATTEN_FOLDERS_DEFAULT then "checked=\"checked\"" else ""# />
|
||||
<p>do not create sub folders</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair alt">
|
||||
<label for="anime">
|
||||
<span class="component-title">Anime</span>
|
||||
<span class="component-title">Show is anime</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="anime" id="anime" #if $sickbeard.ANIME_DEFAULT then "checked=\"checked\"" else ""# />
|
||||
<p>use anime processing for this show</p>
|
||||
<p>enable if this show is anime and episode releases are named ... <em class="grey-text">Show.265</em> instead of <em class="grey-text">Show.S02E03</em></p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="field-pair alt">
|
||||
<label for="scene">
|
||||
<span class="component-title">Scene numbering</span>
|
||||
<span class="component-desc">
|
||||
<input type="checkbox" name="scene" id="scene" #if $sickbeard.SCENE_DEFAULT then "checked=\"checked\"" else ""# />
|
||||
<p>enable if episodes are numbered by scene releases and not by the TV network</p>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
#set $qualities = $Quality.splitQuality($sickbeard.QUALITY_DEFAULT)
|
||||
#set global $anyQualities = $qualities[0]
|
||||
#set global $bestQualities = $qualities[1]
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_qualityChooser.tmpl")
|
||||
|
||||
<div class="field-pair alt" style="margin-top:30px">
|
||||
<div class="field-pair alt" style="margin-top:20px">
|
||||
<label for="saveDefaultsButton">
|
||||
<span class="component-title">Save options as defaults</span>
|
||||
<span class="component-desc">
|
||||
|
@ -77,5 +79,5 @@
|
|||
</label>
|
||||
</div>
|
||||
|
||||
#from sickbeard.blackandwhitelist import *
|
||||
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_blackwhitelist.tmpl")
|
||||
#import sickbeard.blackandwhitelist
|
||||
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_blackwhitelist.tmpl')
|
|
@ -1,58 +1,68 @@
|
|||
<div id="blackwhitelist">
|
||||
<input type="hidden" name="whitelist" id="whitelist"/>
|
||||
<input type="hidden" name="blacklist" id="blacklist"/>
|
||||
<div class="field-pair alt" id="blackwhitelist">
|
||||
<input type="hidden" name="whitelist" id="whitelist">
|
||||
<input type="hidden" name="blacklist" id="blacklist">
|
||||
|
||||
<b>Fansub Groups:</b>
|
||||
<div >
|
||||
<p>Select your preferred fansub groups from the <b>Available Groups</b> and add them to the <b>Whitelist</b>. Add groups to the <b>Blacklist</b> to ignore them.</p>
|
||||
<p>The <b>Whitelist</b> is checked <i>before</i> the <b>Blacklist</b>.</p>
|
||||
<p>Groups are shown as <b>Name</b> | <b>Rating</b> | <b>Number of subbed episodes</b>.</p>
|
||||
<p>You may also add any fansub group not listed to either list manually.</p>
|
||||
</div>
|
||||
<div class="bwlWrapper" id="Anime">
|
||||
<div class="blackwhitelist all">
|
||||
<div class="blackwhitelist anidb">
|
||||
<div class="blackwhitelist white">
|
||||
<span><h4>Whitelist</h4></span>
|
||||
<select id="white" multiple="multiple" size="12">
|
||||
#for $keyword in $whitelist:
|
||||
<option value="$keyword">$keyword</option>
|
||||
#end for
|
||||
</select>
|
||||
<br/>
|
||||
<input class="btn" id="removeW" value="Remove" type="button"/>
|
||||
</div>
|
||||
<div class="blackwhitelist pool">
|
||||
<span><h4>Available Groups</h4></span>
|
||||
<select id="pool" multiple="multiple" size="12">
|
||||
#for $group in $groups
|
||||
#if $group not in $whitelist and $group['name'] not in $blacklist:
|
||||
<option value="$group['name']">$group['name'] | $group['rating'] | $group['range']</option>
|
||||
#end if
|
||||
#end for
|
||||
</select>
|
||||
<br/>
|
||||
<input class="btn" id="addW" value="Add to Whitelist" type="button"/>
|
||||
<input class="btn" id="addB" value="Add to Blacklist" type="button"/>
|
||||
</div>
|
||||
<div class="blackwhitelist black">
|
||||
<span><h4>Blacklist</h4></span>
|
||||
<select id="black" multiple="multiple" size="12">
|
||||
#for $keyword in $blacklist:
|
||||
<option value="$keyword">$keyword</option>
|
||||
#end for
|
||||
</select>
|
||||
<br/>
|
||||
<input class="btn" id="removeB" value="Remove" type="button"/>
|
||||
<span class="component-title">Fansub groups</span>
|
||||
<span class="component-desc">
|
||||
|
||||
<div class="bwlWrapper">
|
||||
<div class="blackwhitelist all">
|
||||
|
||||
<div class="blackwhitelist anidb">
|
||||
<div class="inuse" style="padding:0">
|
||||
<div class="blackwhitelist white" style="margin-bottom:10px">
|
||||
<h4 style="margin:0 41px 6px 0">Whitelist<br /><span class="grey-text">Only snatch releases by group(s)</span></h4>
|
||||
<div style="width:243px; height:110px">
|
||||
<select style="width:202px" class="pull-left" id="white" multiple="multiple" size="12">
|
||||
#for $keyword in sorted($whitelist):
|
||||
<option value="$keyword">$keyword</option>
|
||||
#end for
|
||||
</select>
|
||||
<div style="position:relative; width:36px; height:64px; margin: -32px 0 0; top: 50%;" class="pull-right">
|
||||
<input style="margin:0 0 10px !important" class="btn" id="add-white" value="<<" type="button">
|
||||
<input style="margin:0 !important" class="btn clear:right" id="remove-white" value=">>" type="button">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="blackwhitelist black" style="position:relative; bottom: -1px">
|
||||
<h4 style="margin:0 41px 6px 0">Blacklist<br /><span class="grey-text">Ignore releases by group(s)</span></h4>
|
||||
<div style="width:243px; height:110px">
|
||||
<select style="width:202px" class="pull-left" id="black" multiple="multiple" size="12">
|
||||
#for $keyword in sorted($blacklist):
|
||||
<option value="$keyword">$keyword</option>
|
||||
#end for
|
||||
</select>
|
||||
<div style="position:relative; width:36px; height:64px; margin: -32px 0 0; top: 50%;" class="pull-right">
|
||||
<input style="margin:0 0 10px !important" class="btn" id="add-black" value="<<" type="button">
|
||||
<input style="margin:0 !important" class="btn clear:right" id="remove-black" value=">>" type="button">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blackwhitelist pool">
|
||||
<h4 style="margin:0 0 6px 0">Available groups<br /><span class="grey-text">Name (Rating) Number of subbed episodes</span></h4>
|
||||
<select id="pool" multiple="multiple" size="12">
|
||||
#for $group in sorted($groups)
|
||||
#if $group not in $whitelist and $group['name'] not in $blacklist:
|
||||
<option value="$group['name']">$group['name'] ($group['rating']) $group['range']</option>
|
||||
#end if
|
||||
#end for
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both"> </div>
|
||||
<div class="blackwhitelist manual">
|
||||
<div class="pull-left">
|
||||
<input type="text" id="addToPoolText" class="form-control form-control-inline input-sm input200" style="width:202px">
|
||||
<input class="btn btn-inline" type="button" value="Add to Whitelist" id="new-white">
|
||||
<input style="margin-right:0" class="btn btn-inline" type="button" value="Add to Blacklist" id="new-black">
|
||||
</div>
|
||||
<span class="pull-left">add a custom item to either the whitelist or blacklist</span>
|
||||
<div style="clear:both"> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br style="clear:both" />
|
||||
<div class="blackwhitelist manual">
|
||||
<input type="text" id="addToPoolText" class="form-control form-control-inline input-sm input250" />
|
||||
<input class="btn btn-inline" type="button" value="Add to Whitelist" id="addToWhite">
|
||||
<input class="btn btn-inline" type="button" value="Add to Blacklist" id="addToBlack">
|
||||
</div>
|
||||
</div>
|
||||
<br style="clear:both" />
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div><!-- /blackwhitelist -->
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<span class="component-desc">
|
||||
<div style="float:left; padding-right: 40px">
|
||||
<h4>Initial</h4>
|
||||
<h4 class="jumbo">Initial</h4>
|
||||
#set $anyQualityList = filter(lambda x: x > $Quality.NONE, $Quality.qualityStrings)
|
||||
<select id="anyQualities" name="anyQualities" multiple="multiple" size="$len($anyQualityList)" class="form-control form-control-inline input-sm">
|
||||
#for $curQuality in sorted($anyQualityList):
|
||||
|
@ -36,7 +36,7 @@
|
|||
</div>
|
||||
|
||||
<div style="float:left">
|
||||
<h4>Archive</h4>
|
||||
<h4 class="jumbo">Archive</h4>
|
||||
#set $bestQualityList = filter(lambda x: x > $Quality.SDTV and x < $Quality.UNKNOWN, $Quality.qualityStrings)
|
||||
<select id="bestQualities" name="bestQualities" multiple="multiple" size="$len($bestQualityList)" class="form-control form-control-inline input-sm">
|
||||
#for $curQuality in sorted($bestQualityList):
|
||||
|
|
|
@ -1,54 +1,30 @@
|
|||
function generate_bwlist() {
|
||||
var realvalues = [];
|
||||
$.each(['white', 'black'], function(i, list) {
|
||||
var group_list = [];
|
||||
|
||||
$('#white option').each(function(i, selected) {
|
||||
realvalues[i] = $(selected).val();
|
||||
$('#' + list + ' option').each(function(i, option) {
|
||||
group_list.push($(option).val());
|
||||
});
|
||||
$("#whitelist").val(realvalues.join(","));
|
||||
|
||||
realvalues = [];
|
||||
$('#black option').each(function(i, selected) {
|
||||
realvalues[i] = $(selected).val();
|
||||
});
|
||||
$("#blacklist").val(realvalues.join(","));
|
||||
};
|
||||
$('#' + list + 'list').val(group_list.join(','));
|
||||
});
|
||||
}
|
||||
|
||||
$('#removeW').click(function() {
|
||||
!$('#white option:selected').remove().appendTo('#pool');
|
||||
$('#add-white, #add-black').click(function() {
|
||||
!$('#pool option:selected').remove().appendTo('#' + $(this).attr('id').replace(/add[-]/i, ''));
|
||||
});
|
||||
|
||||
$('#addW').click(function() {
|
||||
!$('#pool option:selected').remove().appendTo('#white');
|
||||
$('#remove-white, #remove-black').click(function() {
|
||||
!$('#' + $(this).attr('id').replace(/remove[-]/i, '') + ' option:selected').remove().appendTo('#pool');
|
||||
});
|
||||
|
||||
$('#addB').click(function() {
|
||||
!$('#pool option:selected').remove().appendTo('#black');
|
||||
$('#new-white, #new-black').click(function() {
|
||||
var group = $('#addToPoolText').attr('value');
|
||||
if ('' != group) {
|
||||
var option = $('<option>');
|
||||
option.attr('value', group);
|
||||
option.html(group);
|
||||
option.appendTo('#' + $(this).attr('id').replace(/new[-]/i, ''));
|
||||
$('#addToPoolText').attr('value', '');
|
||||
}
|
||||
});
|
||||
|
||||
$('#removeP').click(function() {
|
||||
!$('#pool option:selected').remove();
|
||||
});
|
||||
|
||||
$('#removeB').click(function() {
|
||||
!$('#black option:selected').remove().appendTo('#pool');
|
||||
});
|
||||
|
||||
$('#addToWhite').click(function() {
|
||||
var group = $('#addToPoolText').attr("value");
|
||||
if(group == "") { return; }
|
||||
$('#addToPoolText').attr("value", "");
|
||||
var option = $("<option>");
|
||||
option.attr("value",group);
|
||||
option.html(group);
|
||||
option.appendTo('#white');
|
||||
});
|
||||
|
||||
$('#addToBlack').click(function() {
|
||||
var group = $('#addToPoolText').attr("value");
|
||||
if(group == "") { return; }
|
||||
$('#addToPoolText').attr("value", "");
|
||||
var option = $("<option>");
|
||||
option.attr("value",group);
|
||||
option.html(group);
|
||||
option.appendTo('#black');
|
||||
});
|
|
@ -1,6 +1,6 @@
|
|||
$(document).ready(function () {
|
||||
|
||||
function populateSelect() {
|
||||
function populateLangSelect() {
|
||||
if (!$('#nameToSearch').length)
|
||||
return;
|
||||
|
||||
|
@ -30,6 +30,16 @@ $(document).ready(function () {
|
|||
}
|
||||
}
|
||||
|
||||
function cleanseText(text, toDisplay) {
|
||||
return (!0 == toDisplay
|
||||
? text
|
||||
.replace(/["]/g, '"')
|
||||
: text
|
||||
.replace(/Pokémon/, 'Pokemon')
|
||||
.replace(/(?:["]|")/g, '')
|
||||
);
|
||||
}
|
||||
|
||||
var searchRequestXhr = null;
|
||||
|
||||
function searchIndexers() {
|
||||
|
@ -42,15 +52,17 @@ $(document).ready(function () {
|
|||
searchRequestXhr.abort();
|
||||
|
||||
var elTvDatabase = $('#providedIndexer'),
|
||||
elIndexerLang = $('#indexerLangSelect'),
|
||||
searchingFor = elNameToSearch.val() + ' on ' + elTvDatabase.find('option:selected').text() + ' in ' + elIndexerLang.val();
|
||||
elIndexerLang = $('#indexerLangSelect');
|
||||
|
||||
$('#searchResults').empty().html('<img id="searchingAnim" src="' + sbRoot + '/images/loading32' + themeSpinner + '.gif" height="32" width="32" /> searching ' + searchingFor + '...');
|
||||
$('#searchResults').empty().html('<img id="searchingAnim" src="' + sbRoot + '/images/loading32' + themeSpinner + '.gif" height="32" width="32" />'
|
||||
+ ' searching <span class="boldest">' + cleanseText(elNameToSearch.val(), !0) + '</span>'
|
||||
+ ' on ' + elTvDatabase.find('option:selected').text() + ' in ' + elIndexerLang.val()
|
||||
+ '...');
|
||||
|
||||
searchRequestXhr = $.ajax({
|
||||
url: sbRoot + '/home/addShows/searchIndexersForShowName',
|
||||
data: {
|
||||
'search_term': elNameToSearch.val(),
|
||||
'search_term': cleanseText(elNameToSearch.val(), !1),
|
||||
'lang': elIndexerLang.val(),
|
||||
'indexer': elTvDatabase.val()
|
||||
},
|
||||
|
@ -70,7 +82,8 @@ $(document).ready(function () {
|
|||
rowType = (0 == row % 2 ? '' : ' class="alt"');
|
||||
row++;
|
||||
|
||||
var whichSeries = obj.join('|'),
|
||||
var whichSeries = cleanseText(obj.join('|'), !0),
|
||||
display_show_name = cleanseText(obj[4], !0),
|
||||
showstartdate = '';
|
||||
|
||||
if (null !== obj[5]) {
|
||||
|
@ -84,17 +97,17 @@ $(document).ready(function () {
|
|||
resultStr += '<div' + rowType + '>'
|
||||
+ '<input id="whichSeries" type="radio"'
|
||||
+ ' class="stepone-result-radio"'
|
||||
+ ' title="Add show <span style=\'color: rgb(66, 139, 202)\'>' + obj[4] + '</span>"'
|
||||
+ ' title="Add show <span style=\'color: rgb(66, 139, 202)\'>' + display_show_name + '</span>"'
|
||||
+ ' name="whichSeries"'
|
||||
+ ' value="' + whichSeries + '"'
|
||||
+ checked
|
||||
+ ' />'
|
||||
+ '<a'
|
||||
+ ' class="stepone-result-title"'
|
||||
+ ' title="View detail for <span style=\'color: rgb(66, 139, 202)\'>' + obj[4] + '</span>"'
|
||||
+ ' title="View detail for <span style=\'color: rgb(66, 139, 202)\'>' + display_show_name + '</span>"'
|
||||
+ ' href="' + anonURL + obj[2] + obj[3] + ((data.langid && '' != data.langid) ? '&lid=' + data.langid : '') + '"'
|
||||
+ ' onclick="window.open(this.href, \'_blank\'); return false;"'
|
||||
+ '>' + obj[4] + '</a>'
|
||||
+ '>' + display_show_name + '</a>'
|
||||
+ showstartdate
|
||||
+ (null == obj[0] ? ''
|
||||
: ' <span class="stepone-result-db grey-text">' + '[' + obj[0] + ']' + '</span>')
|
||||
|
@ -131,7 +144,7 @@ $(document).ready(function () {
|
|||
alert('You must choose a show to continue');
|
||||
return false;
|
||||
}
|
||||
generate_bwlist()
|
||||
generate_bwlist();
|
||||
$('#addShowForm').submit();
|
||||
});
|
||||
|
||||
|
@ -155,7 +168,7 @@ $(document).ready(function () {
|
|||
formid: 'addShowForm',
|
||||
revealfx: ['slide', 500],
|
||||
oninit: function () {
|
||||
populateSelect();
|
||||
populateLangSelect();
|
||||
updateSampleText();
|
||||
if ($('input:hidden[name="whichSeries"]').length && $('#fullShowPath').length) {
|
||||
goToStep(3);
|
||||
|
@ -193,8 +206,8 @@ $(document).ready(function () {
|
|||
} else {
|
||||
show_name = '';
|
||||
}
|
||||
update_bwlist(show_name);
|
||||
var sample_text = '<p>Adding show <span class="show-name">' + show_name + '</span>'
|
||||
update_bwlist(show_name);
|
||||
var sample_text = '<p>Adding show <span class="show-name">' + cleanseText(show_name, !0) + '</span>'
|
||||
+ ('' == show_name ? 'into<br />' : '<br />into')
|
||||
+ ' <span class="show-dest">';
|
||||
|
||||
|
@ -225,7 +238,7 @@ $(document).ready(function () {
|
|||
|
||||
// if we have a show name then sanitize and use it for the dir name
|
||||
if (show_name.length) {
|
||||
$.get(sbRoot + '/home/addShows/sanitizeFileName', {name: show_name}, function (data) {
|
||||
$.get(sbRoot + '/home/addShows/sanitizeFileName', {name: cleanseText(show_name, !1)}, function (data) {
|
||||
$('#displayText').html(sample_text.replace('||', data));
|
||||
});
|
||||
// if not then it's unknown
|
||||
|
@ -281,29 +294,54 @@ $(document).ready(function () {
|
|||
myform.loadsection(2);
|
||||
});
|
||||
|
||||
function add_option_to_pool (text) {
|
||||
var groupvalue = '', groupview = text,
|
||||
option = $('<option>'),
|
||||
match = /^(.*?)#<3SG#(.*)$/m.exec(text);
|
||||
|
||||
if (match != null) {
|
||||
groupvalue = match[1];
|
||||
groupview = groupvalue + match[2];
|
||||
}
|
||||
option.attr('value', groupvalue);
|
||||
option.html(groupview);
|
||||
option.appendTo('#pool');
|
||||
}
|
||||
|
||||
function update_bwlist (show_name) {
|
||||
|
||||
$('#white').children().remove();
|
||||
$('#black').children().remove();
|
||||
$('#pool').children().remove();
|
||||
$('#black, #white, #pool').children().remove();
|
||||
|
||||
if ($('#anime').prop('checked')) {
|
||||
$('#blackwhitelist').show();
|
||||
if (show_name) {
|
||||
$.getJSON(sbRoot + '/home/fetch_releasegroups', {'show_name': show_name}, function (data) {
|
||||
if (data['result'] == 'success') {
|
||||
$.each(data.groups, function(i, group) {
|
||||
var option = $("<option>");
|
||||
option.attr("value", group.name);
|
||||
option.html(group.name + ' | ' + group.rating + ' | ' + group.range);
|
||||
option.appendTo('#pool');
|
||||
});
|
||||
}
|
||||
});
|
||||
$.getJSON(sbRoot + '/home/fetch_releasegroups', {'show_name': cleanseText(show_name, !1)}, function (data) {
|
||||
if ('success' == data['result']) {
|
||||
var groups = [];
|
||||
$.each(data.groups, function (i, group) {
|
||||
if ('' != group.name) {
|
||||
groups.push(group.name + '#<3SG#' + ' (' + group.rating + ') ' + group.range)
|
||||
}
|
||||
});
|
||||
if (0 < groups.length) {
|
||||
groups.sort();
|
||||
$.each(groups, function (i, text) {
|
||||
add_option_to_pool(text);
|
||||
});
|
||||
} else {
|
||||
add_option_to_pool('No groups returned from AniDB');
|
||||
}
|
||||
} else if ('fail' == data['result']) {
|
||||
if ('connect' == data['resp']) {
|
||||
add_option_to_pool('Fail:AniDB connect. Restart sg else check debug log');
|
||||
} else if ('init' == data['resp']) {
|
||||
add_option_to_pool('Did not initialise AniDB. Check debug log if reqd.');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
$('#blackwhitelist').hide();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
});
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
import sickbeard
|
||||
from sickbeard import db, logger, helpers
|
||||
|
||||
import urllib
|
||||
|
||||
class BlackAndWhiteList(object):
|
||||
blacklist = []
|
||||
|
@ -64,7 +64,7 @@ class BlackAndWhiteList(object):
|
|||
|
||||
groups = []
|
||||
for result in sqlResults:
|
||||
groups.append(result["keyword"])
|
||||
groups.append(result['keyword'])
|
||||
|
||||
logger.log('BWL: ' + str(self.show_id) + ' loaded keywords from ' + table + ': ' + str(groups), logger.DEBUG)
|
||||
|
||||
|
@ -76,7 +76,7 @@ class BlackAndWhiteList(object):
|
|||
logger.log('Failed to detect release group, invalid result', logger.DEBUG)
|
||||
return False
|
||||
|
||||
if result.release_group.lower() in [x.lower() for x in self.whitelist]:
|
||||
if result.release_group.lower() in [x.lower() for x in self.whitelist] or not self.whitelist:
|
||||
white_result = True
|
||||
else:
|
||||
white_result = False
|
||||
|
@ -95,21 +95,23 @@ class BlackAndWhiteList(object):
|
|||
|
||||
|
||||
class BlackWhitelistNoShowIDException(Exception):
|
||||
'No show_id was given'
|
||||
"""
|
||||
No show_id was given
|
||||
"""
|
||||
|
||||
|
||||
def short_group_names(groups):
|
||||
groups = groups.split(",")
|
||||
shortGroupList = []
|
||||
group_list = groups.split(',')
|
||||
short_group_list = []
|
||||
if helpers.set_up_anidb_connection():
|
||||
for groupName in groups:
|
||||
group = sickbeard.ADBA_CONNECTION.group(gname=groupName)
|
||||
for line in group.datalines:
|
||||
if line["shortname"]:
|
||||
shortGroupList.append(line["shortname"])
|
||||
for group_name in group_list:
|
||||
adba_result = sickbeard.ADBA_CONNECTION.group(gname=group_name) # no such group is returned for utf8 groups like interrobang
|
||||
for line in adba_result.datalines:
|
||||
if line['shortname']:
|
||||
short_group_list.append(line['shortname'])
|
||||
else:
|
||||
if not groupName in shortGroupList:
|
||||
shortGroupList.append(groupName)
|
||||
if group_name not in short_group_list:
|
||||
short_group_list.append(group_name)
|
||||
else:
|
||||
shortGroupList = groups
|
||||
return shortGroupList
|
||||
short_group_list = group_list
|
||||
return short_group_list
|
|
@ -1082,22 +1082,29 @@ def validateShow(show, season=None, episode=None):
|
|||
|
||||
def set_up_anidb_connection():
|
||||
if not sickbeard.USE_ANIDB:
|
||||
logger.log(u"Usage of anidb disabled. Skiping", logger.DEBUG)
|
||||
logger.log(u'Usage of anidb disabled. Skipping', logger.DEBUG)
|
||||
return False
|
||||
|
||||
if not sickbeard.ANIDB_USERNAME and not sickbeard.ANIDB_PASSWORD:
|
||||
logger.log(u"anidb username and/or password are not set. Aborting anidb lookup.", logger.DEBUG)
|
||||
logger.log(u'anidb username and/or password are not set. Aborting anidb lookup.', logger.DEBUG)
|
||||
return False
|
||||
|
||||
if not sickbeard.ADBA_CONNECTION:
|
||||
anidb_logger = lambda x: logger.log("ANIDB: " + str(x), logger.DEBUG)
|
||||
anidb_logger = lambda x: logger.log('ANIDB: ' + str(x), logger.DEBUG)
|
||||
sickbeard.ADBA_CONNECTION = adba.Connection(keepAlive=True, log=anidb_logger)
|
||||
|
||||
if not sickbeard.ADBA_CONNECTION.authed():
|
||||
auth = False
|
||||
try:
|
||||
auth = sickbeard.ADBA_CONNECTION.authed()
|
||||
except Exception, e:
|
||||
logger.log(u'exception msg: ' + str(e))
|
||||
pass
|
||||
|
||||
if not auth:
|
||||
try:
|
||||
sickbeard.ADBA_CONNECTION.auth(sickbeard.ANIDB_USERNAME, sickbeard.ANIDB_PASSWORD)
|
||||
except Exception, e:
|
||||
logger.log(u"exception msg: " + str(e))
|
||||
logger.log(u'exception msg: ' + str(e))
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
|
|
@ -32,9 +32,6 @@ from name_parser.parser import NameParser, InvalidNameException, InvalidShowExce
|
|||
from lib.unidecode import unidecode
|
||||
from sickbeard.blackandwhitelist import BlackAndWhiteList
|
||||
|
||||
resultFilters = ["sub(bed|ed|pack|s)", "(dk|fin|heb|kor|nor|nordic|pl|swe)sub(bed|ed|s)?",
|
||||
"(dir|sample|sub|nfo)fix", "sample", "(dvd)?extras",
|
||||
"dub(bed)?"]
|
||||
|
||||
def filterBadReleases(name, parse=True):
|
||||
"""
|
||||
|
@ -56,6 +53,10 @@ def filterBadReleases(name, parse=True):
|
|||
logger.log(u"Unable to parse the filename " + name + " into a valid show", logger.DEBUG)
|
||||
return False
|
||||
|
||||
resultFilters = ['sub(bed|ed|pack|s)', '(dk|fin|heb|kor|nor|nordic|pl|swe)sub(bed|ed|s)?',
|
||||
'(dir|sample|sub|nfo)fix', 'sample', '(dvd)?extras',
|
||||
'dub(bed)?']
|
||||
|
||||
# if any of the bad strings are in the name then say no
|
||||
if sickbeard.IGNORE_WORDS:
|
||||
resultFilters.extend(sickbeard.IGNORE_WORDS.split(','))
|
||||
|
|
|
@ -991,7 +991,9 @@ class TVShow(object):
|
|||
["DELETE FROM tv_shows WHERE indexer_id = ?", [self.indexerid]],
|
||||
["DELETE FROM imdb_info WHERE indexer_id = ?", [self.indexerid]],
|
||||
["DELETE FROM xem_refresh WHERE indexer_id = ?", [self.indexerid]],
|
||||
["DELETE FROM scene_numbering WHERE indexer_id = ?", [self.indexerid]]]
|
||||
["DELETE FROM scene_numbering WHERE indexer_id = ?", [self.indexerid]],
|
||||
["DELETE FROM whitelist WHERE show_id = ?", [self.indexerid]],
|
||||
["DELETE FROM blacklist WHERE show_id = ?", [self.indexerid]]]
|
||||
|
||||
myDB = db.DBConnection()
|
||||
myDB.mass_action(sql_l)
|
||||
|
|
|
@ -3817,8 +3817,13 @@ class Home(MainHandler):
|
|||
|
||||
t.groups = []
|
||||
if helpers.set_up_anidb_connection():
|
||||
anime = adba.Anime(sickbeard.ADBA_CONNECTION, name=showObj.name)
|
||||
t.groups = anime.get_groups()
|
||||
try:
|
||||
anime = adba.Anime(sickbeard.ADBA_CONNECTION, name=showObj.name)
|
||||
t.groups = anime.get_groups()
|
||||
except Exception, e:
|
||||
t.groups.append(dict([('name', 'Fail:AniDB connect. Restart sg else check debug log'), ('rating', ''), ('range', '')]))
|
||||
else:
|
||||
t.groups.append(dict([('name', 'Did not initialise AniDB. Check debug log if reqd.'), ('rating', ''), ('range', '')]))
|
||||
|
||||
with showObj.lock:
|
||||
t.show = showObj
|
||||
|
@ -3990,10 +3995,9 @@ class Home(MainHandler):
|
|||
|
||||
showObj.deleteShow(bool(full))
|
||||
|
||||
ui.notifications.message('<b>%s</b> has been %s %s' %
|
||||
(showObj.name,
|
||||
('deleted', 'trashed')[sickbeard.TRASH_REMOVE_SHOW],
|
||||
('(media untouched)', '(with all related media)')[bool(full)]))
|
||||
ui.notifications.message('%s with %s' % (('Deleting', 'Trashing')[sickbeard.TRASH_REMOVE_SHOW],
|
||||
('media left untouched', 'all related media')[bool(full)]),
|
||||
'<b>%s</b>' % showObj.name)
|
||||
redirect("/home/")
|
||||
|
||||
|
||||
|
@ -4536,11 +4540,16 @@ class Home(MainHandler):
|
|||
def fetch_releasegroups(show_name):
|
||||
|
||||
if helpers.set_up_anidb_connection():
|
||||
anime = adba.Anime(sickbeard.ADBA_CONNECTION, name=show_name)
|
||||
groups = anime.get_groups()
|
||||
try:
|
||||
anime = adba.Anime(sickbeard.ADBA_CONNECTION, name=show_name)
|
||||
groups = anime.get_groups()
|
||||
except Exception, e:
|
||||
logger.log(u'exception msg: ' + str(e), logger.DEBUG)
|
||||
return json.dumps({'result': 'fail', 'resp': 'connect'})
|
||||
|
||||
return json.dumps({'result': 'success', 'groups': groups})
|
||||
|
||||
return json.dumps({'result': 'failure'})
|
||||
return json.dumps({'result': 'fail', 'resp': 'init'})
|
||||
|
||||
|
||||
class UI(MainHandler):
|
||||
|
|
Loading…
Reference in a new issue