Skip to content

Commit 5ca7cab

Browse files
committed
Merge branch 'master' of github.com:midgetspy/Sick-Beard into windows_binaries
2 parents 0bc51b9 + 6a8577c commit 5ca7cab

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2336
-1833
lines changed

SickBeard.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
# We only need this for compiling an EXE and I will just always do that on 2.6+
3535
if sys.hexversion >= 0x020600F0:
36-
from multiprocessing import freeze_support
36+
from multiprocessing import freeze_support # @UnresolvedImport
3737

3838
import locale
3939
import os
@@ -114,9 +114,7 @@ def daemonize():
114114
try:
115115
file(sickbeard.PIDFILE, 'w').write("%s\n" % pid)
116116
except IOError, e:
117-
error_msg = "Unable to write PID file: " + sickbeard.PIDFILE + " Error: " + str(e.strerror) + " [" + str(e.errno) + "]"
118-
logger.log(u"" + error_msg, logger.ERROR)
119-
sys.exit(error_msg)
117+
logger.log_error_and_exit(u"Unable to write PID file: " + sickbeard.PIDFILE + " Error: " + str(e.strerror) + " [" + str(e.errno) + "]")
120118

121119
# Redirect all output
122120
sys.stdout.flush()

data/css/lib/jquery.pnotify.default.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ z-index: 10000;
7171
}
7272
.ui-pnotify-history-container .ui-pnotify-history-header {
7373
padding: 2px;
74+
text-align: center;
7475
}
7576
.ui-pnotify-history-container button {
7677
cursor: pointer;

data/css/style.css

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -908,14 +908,16 @@ div.metadata-options label {
908908
div.metadata-options label:hover {
909909
color: #fff;
910910
background-color: #57442b;
911+
cursor: pointer;
911912
}
912913
div.metadata-example {
913-
padding: 7px;
914+
padding: 8px;
914915
}
915916
div.metadata-example label {
916917
display: block;
917-
line-height: 21px;
918+
line-height: 20px;
918919
color: #000;
920+
cursor: pointer;
919921
}
920922
div.metadataDiv .disabled {
921923
color: #ccc;

data/interfaces/default/config_postProcessing.tmpl

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@
455455
<span class="component-desc">
456456
#set $m_dict = $metadata.get_metadata_generator_dict()
457457
<select id="metadataType" class="input-medium" >
458-
#for ($cur_name, $cur_generator) in $m_dict.items():
459-
<option value="$GenericMetadata.makeID($cur_name)">$cur_name</option>
458+
#for ($cur_name, $cur_generator) in sorted($m_dict.items()):
459+
<option value="$cur_generator.get_id()">$cur_name</option>
460460
#end for
461461
</select>
462462
</span>
@@ -466,17 +466,21 @@
466466

467467
#for ($cur_name, $cur_generator) in $m_dict.items():
468468
#set $cur_metadata_inst = $sickbeard.metadata_provider_dict[$cur_generator.name]
469-
#set $cur_id = $GenericMetadata.makeID($cur_name)
469+
#set $cur_id = $cur_generator.get_id()
470470
<div class="metadataDiv clearfix" id="$cur_id">
471471
<div class="metadata-options-wrapper">
472472
<h4>Create:</h4>
473473
<div class="metadata-options">
474474
<label for="${cur_id}_show_metadata" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_show_metadata" #if $cur_metadata_inst.show_metadata then "checked=\"checked\"" else ""#/>&nbsp;Show Metadata</label>
475475
<label for="${cur_id}_episode_metadata" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_episode_metadata" #if $cur_metadata_inst.episode_metadata then "checked=\"checked\"" else ""#/>&nbsp;Episode Metadata</label>
476-
<label for="${cur_id}_fanart" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_fanart" #if $cur_metadata_inst.fanart then "checked=\"checked\"" else ""#/>&nbsp;Show Fanart Image</label>
477-
<label for="${cur_id}_poster" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_poster" #if $cur_metadata_inst.poster then "checked=\"checked\"" else ""#/>&nbsp;Show Folder Image</label>
478-
<label for="${cur_id}_episode_thumbnails" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_episode_thumbnails" #if $cur_metadata_inst.episode_thumbnails then "checked=\"checked\"" else ""#/>&nbsp;Episode Thumbnail</label>
479-
<label for="${cur_id}_season_thumbnails" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_thumbnails" #if $cur_metadata_inst.season_thumbnails then "checked=\"checked\"" else ""#/>&nbsp;Season Thumbnail</label>
476+
<label for="${cur_id}_fanart" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_fanart" #if $cur_metadata_inst.fanart then "checked=\"checked\"" else ""#/>&nbsp;Show Fanart</label>
477+
<label for="${cur_id}_poster" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_poster" #if $cur_metadata_inst.poster then "checked=\"checked\"" else ""#/>&nbsp;Show Poster</label>
478+
<label for="${cur_id}_banner" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_banner" #if $cur_metadata_inst.banner then "checked=\"checked\"" else ""#/>&nbsp;Show Banner</label>
479+
<label for="${cur_id}_episode_thumbnails" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_episode_thumbnails" #if $cur_metadata_inst.episode_thumbnails then "checked=\"checked\"" else ""#/>&nbsp;Episode Thumbnails</label>
480+
<label for="${cur_id}_season_posters" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_posters" #if $cur_metadata_inst.season_posters then "checked=\"checked\"" else ""#/>&nbsp;Season Posters</label>
481+
<label for="${cur_id}_season_banners" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_banners" #if $cur_metadata_inst.season_banners then "checked=\"checked\"" else ""#/>&nbsp;Season Banners</label>
482+
<label for="${cur_id}_season_all_poster" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_poster" #if $cur_metadata_inst.season_all_poster then "checked=\"checked\"" else ""#/>&nbsp;Season All Poster</label>
483+
<label for="${cur_id}_season_all_banner" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_banner" #if $cur_metadata_inst.season_all_banner then "checked=\"checked\"" else ""#/>&nbsp;Season All Banner</label>
480484
</div>
481485
</div>
482486
<div class="metadata-example-wrapper">
@@ -486,23 +490,20 @@
486490
<label for="${cur_id}_episode_metadata"><span id="${cur_id}_eg_episode_metadata">$cur_metadata_inst.eg_episode_metadata</span></label>
487491
<label for="${cur_id}_fanart"><span id="${cur_id}_eg_fanart">$cur_metadata_inst.eg_fanart</span></label>
488492
<label for="${cur_id}_poster"><span id="${cur_id}_eg_poster">$cur_metadata_inst.eg_poster</span></label>
493+
<label for="${cur_id}_banner"><span id="${cur_id}_eg_banner">$cur_metadata_inst.eg_banner</span></label>
489494
<label for="${cur_id}_episode_thumbnails"><span id="${cur_id}_eg_episode_thumbnails">$cur_metadata_inst.eg_episode_thumbnails</span></label>
490-
<label for="${cur_id}_season_thumbnails"><span id="${cur_id}_eg_season_thumbnails">$cur_metadata_inst.eg_season_thumbnails</span></label>
495+
<label for="${cur_id}_season_posters"><span id="${cur_id}_eg_season_posters">$cur_metadata_inst.eg_season_posters</span></label>
496+
<label for="${cur_id}_season_banners"><span id="${cur_id}_eg_season_banners">$cur_metadata_inst.eg_season_banners</span></label>
497+
<label for="${cur_id}_season_all_poster"><span id="${cur_id}_eg_season_all_poster">$cur_metadata_inst.eg_season_all_poster</span></label>
498+
<label for="${cur_id}_season_all_banner"><span id="${cur_id}_eg_season_all_banner">$cur_metadata_inst.eg_season_all_banner</span></label>
491499
</div>
492500
</div>
493501

494502
<input type="hidden" name="${cur_id}_data" id="${cur_id}_data" value="$cur_metadata_inst.get_config()" />
495503
</div>
496504
#end for
497505

498-
<div class="field-pair clearfix">
499-
<input type="checkbox" name="use_banner" id="use_banner" #if $sickbeard.USE_BANNER then "checked=checked" else ""#/>
500-
<label class="clearfix" for="use_banner">
501-
<span class="component-title">Use Banners</span>
502-
<span class="component-desc">Use banners instead of posters for 'Show Folder Image'</span>
503-
</label>
504-
</div>
505-
506+
<div class="clearfix"></div><br/>
506507
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
507508

508509
</fieldset>

data/interfaces/default/config_providers.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@
239239
</label>
240240
<label class="nocheck clearfix">
241241
<span class="component-title">&nbsp;</span>
242-
<span class="component-desc">(leave blank if not required)</span>
242+
<span class="component-desc">(if not required, type 0)</span>
243243
</label>
244244
</div>
245245
<div id="newznab_add_div">

data/interfaces/default/errorlogs.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<div class="align-left"><pre>
1313
#if $classes.ErrorViewer.errors:
14-
#for $curError in sorted($classes.ErrorViewer.errors[:30], key=lambda error: error.time, reverse=True):
14+
#for $curError in sorted($classes.ErrorViewer.errors, key=lambda error: error.time, reverse=True)[:500]:
1515
$curError.time $curError.message
1616
#end for
1717
#end if

data/interfaces/default/home_addShows.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
<div id="addShowPortal">
1515

16-
<a href="$sbRoot/home/addShows/newShow" id="btnNewShow" class="btn btn-large">
16+
<a href="$sbRoot/home/addShows/newShow/" id="btnNewShow" class="btn btn-large">
1717
<div class="button"><img src="$sbRoot/images/add-new32.png" height="32" width="32" alt="Add New Show"/></div>
1818
<div class="buttontext">
1919
<h2>Add New Show</h2>
@@ -23,7 +23,7 @@
2323

2424
<br/><br/>
2525

26-
<a href="$sbRoot/home/addShows/existingShows" id="btnExistingShow" class="btn btn-large">
26+
<a href="$sbRoot/home/addShows/existingShows/" id="btnExistingShow" class="btn btn-large">
2727
<div class="button"><img src="$sbRoot/images/add-existing32.png" height="32" width="32" alt="Add Existing Shows"/></div>
2828
<div class="buttontext">
2929
<h2>Add Existing Shows</h2>

data/js/ajaxNotifications.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,33 @@ $.pnotify.defaults.styling = "jqueryui";
44
$.pnotify.defaults.history = false;
55
$.pnotify.defaults.shadow = false;
66
$.pnotify.defaults.delay = 4000;
7+
$.pnotify.defaults.maxonscreen = 5;
78

89
function check_notifications() {
9-
$.getJSON(message_url, function (data) {
10-
$.each(data, function (name, data) {
11-
$.pnotify({
12-
type: data.type,
13-
hide: data.type == 'notice',
14-
title: data.title,
15-
text: data.message
10+
var poll_interval = 5000;
11+
$.ajax({
12+
url: message_url,
13+
success: function (data) {
14+
poll_interval = 5000;
15+
$.each(data, function (name, data) {
16+
$.pnotify({
17+
type: data.type,
18+
hide: data.type == 'notice',
19+
title: data.title,
20+
text: data.message
21+
});
1622
});
17-
});
23+
},
24+
error: function () {
25+
poll_interval = 15000;
26+
},
27+
type: "GET",
28+
dataType: "json",
29+
complete: function () {
30+
setTimeout(check_notifications, poll_interval);
31+
},
32+
timeout: 15000 // timeout every 15 secs
1833
});
19-
20-
setTimeout(check_notifications, 3000);
2134
}
2235

2336
$(document).ready(function () {

data/js/configPostProcessing.js

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ $(document).ready(function () {
6262
}
6363

6464
function fill_abd_examples() {
65-
if (!$('#naming_custom_abd').prop('checked')) {
66-
$('#naming_abd_pattern').qtip('hide');
67-
return;
68-
}
69-
65+
if (!$('#naming_custom_abd').prop('checked')) {
66+
$('#naming_abd_pattern').qtip('hide');
67+
return;
68+
}
69+
7070
var pattern = $('#naming_abd_pattern').val();
7171

7272
$.get(sbRoot + '/config/postProcessing/testNaming', {pattern: pattern, abd: 'True'},
@@ -171,7 +171,7 @@ $(document).ready(function () {
171171
setup_abd_naming();
172172

173173
// -- start of metadata options div toggle code --
174-
$('#metadataType').change(function () {
174+
$('#metadataType').on('change keyup', function () {
175175
$(this).showHideMetadata();
176176
});
177177

@@ -187,7 +187,7 @@ $(document).ready(function () {
187187
}
188188
});
189189
};
190-
//initalize to show the div
190+
//initialize to show the div
191191
$(this).showHideMetadata();
192192
// -- end of metadata options div toggle code --
193193

@@ -208,36 +208,49 @@ $(document).ready(function () {
208208
var episode_metadata = $("#" + generator_name + "_episode_metadata").prop('checked');
209209
var fanart = $("#" + generator_name + "_fanart").prop('checked');
210210
var poster = $("#" + generator_name + "_poster").prop('checked');
211+
var banner = $("#" + generator_name + "_banner").prop('checked');
211212
var episode_thumbnails = $("#" + generator_name + "_episode_thumbnails").prop('checked');
212-
var season_thumbnails = $("#" + generator_name + "_season_thumbnails").prop('checked');
213+
var season_posters = $("#" + generator_name + "_season_posters").prop('checked');
214+
var season_banners = $("#" + generator_name + "_season_banners").prop('checked');
215+
var season_all_poster = $("#" + generator_name + "_season_all_poster").prop('checked');
216+
var season_all_banner = $("#" + generator_name + "_season_all_banner").prop('checked');
213217

214218
config_arr.push(show_metadata ? '1' : '0');
215219
config_arr.push(episode_metadata ? '1' : '0');
216-
config_arr.push(poster ? '1' : '0');
217220
config_arr.push(fanart ? '1' : '0');
221+
config_arr.push(poster ? '1' : '0');
222+
config_arr.push(banner ? '1' : '0');
218223
config_arr.push(episode_thumbnails ? '1' : '0');
219-
config_arr.push(season_thumbnails ? '1' : '0');
224+
config_arr.push(season_posters ? '1' : '0');
225+
config_arr.push(season_banners ? '1' : '0');
226+
config_arr.push(season_all_poster ? '1' : '0');
227+
config_arr.push(season_all_banner ? '1' : '0');
220228

221229
var cur_num = 0;
222-
for (var i = 0; i < config_arr.length; i++)
230+
for (var i = 0; i < config_arr.length; i++) {
223231
cur_num += parseInt(config_arr[i]);
232+
}
224233
if (cur_num > cur_most) {
225234
cur_most = cur_num;
226235
cur_most_provider = generator_name;
227236
}
228237

229238
$("#" + generator_name + "_eg_show_metadata").attr('class', show_metadata ? 'enabled' : 'disabled');
230239
$("#" + generator_name + "_eg_episode_metadata").attr('class', episode_metadata ? 'enabled' : 'disabled');
231-
$("#" + generator_name + "_eg_poster").attr('class', poster ? 'enabled' : 'disabled');
232240
$("#" + generator_name + "_eg_fanart").attr('class', fanart ? 'enabled' : 'disabled');
241+
$("#" + generator_name + "_eg_poster").attr('class', poster ? 'enabled' : 'disabled');
242+
$("#" + generator_name + "_eg_banner").attr('class', banner ? 'enabled' : 'disabled');
233243
$("#" + generator_name + "_eg_episode_thumbnails").attr('class', episode_thumbnails ? 'enabled' : 'disabled');
234-
$("#" + generator_name + "_eg_season_thumbnails").attr('class', season_thumbnails ? 'enabled' : 'disabled');
235-
$("#" + generator_name + "_data").val(config_arr.join('|'))
244+
$("#" + generator_name + "_eg_season_posters").attr('class', season_posters ? 'enabled' : 'disabled');
245+
$("#" + generator_name + "_eg_season_banners").attr('class', season_banners ? 'enabled' : 'disabled');
246+
$("#" + generator_name + "_eg_season_all_poster").attr('class', season_all_poster ? 'enabled' : 'disabled');
247+
$("#" + generator_name + "_eg_season_all_banner").attr('class', season_all_banner ? 'enabled' : 'disabled');
248+
$("#" + generator_name + "_data").val(config_arr.join('|'));
236249

237250
});
238251

239252
if (cur_most_provider != '' && first) {
240-
$('#metadataType option[value=' + cur_most_provider + ']').attr('selected', 'selected')
253+
$('#metadataType option[value=' + cur_most_provider + ']').attr('selected', 'selected');
241254
$(this).showHideMetadata();
242255
}
243256

@@ -262,7 +275,7 @@ $(document).ready(function () {
262275
position: {
263276
viewport: $(window),
264277
at: 'top center',
265-
my: 'bottom center',
278+
my: 'bottom center'
266279
},
267280
style: {
268281
tip: {
@@ -282,7 +295,7 @@ $(document).ready(function () {
282295
position: {
283296
viewport: $(window),
284297
at: 'center left',
285-
my: 'center right',
298+
my: 'center right'
286299
},
287300
style: {
288301
tip: {

data/js/configProviders.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ $(document).ready(function(){
3434
}
3535

3636
if ($('#providerOrderList > #'+id).length == 0) {
37-
var toAdd = '<li class="ui-state-default" id="'+id+'"> <input type="checkbox" id="enable_'+id+'" class="provider_enabler" CHECKED> <a href="'+url+'" class="imgLink" target="_new"><img src="'+sbRoot+'/images/providers/newznab.png" alt="'+name+'" width="16" height="16"></a> '+name+'</li>';
37+
var toAdd = '<li class="ui-state-default" id="'+id+'"> <input type="checkbox" id="enable_'+id+'" class="provider_enabler" CHECKED> <a href="'+url+'" class="imgLink" target="_new"><img src="'+sbRoot+'/images/providers/newznab.png" alt="'+name+'" width="16" height="16"></a> '+name+'<span class="ui-icon ui-icon-arrowthick-2-n-s pull-right"></span></li>';
3838

3939
$('#providerOrderList').append(toAdd);
4040
$('#providerOrderList').sortable("refresh");
@@ -173,11 +173,20 @@ $(document).ready(function(){
173173

174174
var selectedProvider = $('#editANewznabProvider :selected').val();
175175

176-
var name = $('#newznab_name').val();
177-
var url = $('#newznab_url').val();
178-
var key = $('#newznab_key').val();
176+
var name = $.trim($('#newznab_name').val());
177+
var url = $.trim($('#newznab_url').val());
178+
var key = $.trim($('#newznab_key').val());
179+
180+
if (!name)
181+
return;
182+
183+
if (!url)
184+
return;
185+
186+
if (!key)
187+
return;
179188

180-
var params = { name: name };
189+
var params = {name: name};
181190

182191
// send to the form with ajax, get a return value
183192
$.getJSON(sbRoot + '/config/providers/canAddNewznabProvider', params,

0 commit comments

Comments
 (0)