mirror of https://github.com/evilhero/mylar
IMP: Added NMA and Prowl notifications, IMP: Info now given on detail page when Issue Count is out due to new issue not being available on online DB's (only happens btwn new pullist and Wednesday)
This commit is contained in:
parent
4225577860
commit
def8dbd67f
|
@ -88,7 +88,11 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label><big>Issues in Series: </big><norm>${comic['Total']} issues</norm></label>
|
<label><big>Issues in Series: </big><norm>${comic['Total']} issues
|
||||||
|
%if comic['not_updated_db'] > 0:
|
||||||
|
(${comic['not_updated_db']} issue not updated yet)
|
||||||
|
%endif
|
||||||
|
</norm></label>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label><big>Directory</big><br/><norm>${comic['ComicLocation']}</norm></label>
|
<label><big>Directory</big><br/><norm>${comic['ComicLocation']}</norm></label>
|
||||||
|
@ -258,10 +262,10 @@
|
||||||
%if issue['Status'] == 'Skipped':
|
%if issue['Status'] == 'Skipped':
|
||||||
<a href="#" title="Mark issue as Wanted" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&ComicYear=${issue['IssueDate']}&mode=want',$(this),'table')"><img src="interfaces/default/images/wanted_icon.png" height="25" width="25" /></a>
|
<a href="#" title="Mark issue as Wanted" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&ComicYear=${issue['IssueDate']}&mode=want',$(this),'table')"><img src="interfaces/default/images/wanted_icon.png" height="25" width="25" /></a>
|
||||||
%elif (issue['Status'] == 'Wanted'):
|
%elif (issue['Status'] == 'Wanted'):
|
||||||
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img src="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
||||||
%elif (issue['Status'] == 'Snatched'):
|
%elif (issue['Status'] == 'Snatched'):
|
||||||
<a href="#" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&mode=want', $(this),'table')" data-success="Retrying the same version of '${issue['ComicName']}' '${issue['Issue_Number']}'" title="Retry the same download again"><img src="interfaces/default/images/retry_icon.png" height="25" width="25" /></a>
|
<a href="#" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&mode=want', $(this),'table')" data-success="Retrying the same version of '${issue['ComicName']}' '${issue['Issue_Number']}'" title="Retry the same download again"><img src="interfaces/default/images/retry_icon.png" height="25" width="25" /></a>
|
||||||
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img src="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
||||||
%else:
|
%else:
|
||||||
%if issue['inCacheDIR']:
|
%if issue['inCacheDIR']:
|
||||||
<%
|
<%
|
||||||
|
@ -279,7 +283,7 @@
|
||||||
<a href="#" onclick="doAjaxCall('downloadLocal?IssueID=${issue['IssueID']}', $(this), 'table')" ><img src="interfaces/default/images/copy_icon.png" height="25" width="25" title="Copy issue to local cache (ready for download)" /></a>
|
<a href="#" onclick="doAjaxCall('downloadLocal?IssueID=${issue['IssueID']}', $(this), 'table')" ><img src="interfaces/default/images/copy_icon.png" height="25" width="25" title="Copy issue to local cache (ready for download)" /></a>
|
||||||
%endif
|
%endif
|
||||||
<a href="#" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&mode=want', $(this),'table')" data-success="Retrying the same version of '${issue['ComicName']}' '${issue['Issue_Number']}'" title="Retry the same download again"><img src="interfaces/default/images/retry_icon.png" height="25" width="25" /></a>
|
<a href="#" onclick="doAjaxCall('queueissue?ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&mode=want', $(this),'table')" data-success="Retrying the same version of '${issue['ComicName']}' '${issue['Issue_Number']}'" title="Retry the same download again"><img src="interfaces/default/images/retry_icon.png" height="25" width="25" /></a>
|
||||||
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
<a href="#" title="Mark issue as Skipped" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped"><img src="interfaces/default/images/skipped_icon.png" height="25" width="25" /></a>
|
||||||
%endif
|
%endif
|
||||||
<a href="#" onclick="doAjaxCall('archiveissue?IssueID=${issue['IssueID']}',$(this),'table')"><img src="interfaces/default/images/archive_icon.png" height="25" width="25" title="Mark issue as Archived"></a>
|
<a href="#" onclick="doAjaxCall('archiveissue?IssueID=${issue['IssueID']}',$(this),'table')"><img src="interfaces/default/images/archive_icon.png" height="25" width="25" title="Mark issue as Archived"></a>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -198,7 +198,7 @@
|
||||||
<legend>Usenet</legend>
|
<legend>Usenet</legend>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div class="row checkbox">
|
<div class="row checkbox">
|
||||||
<input id="useblackhole" type="checkbox" name="blackhole" value=1 ${config['use_blackhole']} /><label>Use Black Hole</label>
|
<input id="useblackhole" type="checkbox" onclick="initConfigCheckbox($(this));" name="blackhole" value=1 ${config['use_blackhole']} /><label>Use Black Hole</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="config">
|
<div class="config">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -497,8 +497,68 @@
|
||||||
<label>Log Directory:</label>
|
<label>Log Directory:</label>
|
||||||
<input type="text" name="log_dir" value="${config['log_dir']}" size="50">
|
<input type="text" name="log_dir" value="${config['log_dir']}" size="50">
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
<h2>Notifications</h2>
|
||||||
|
<fieldset>
|
||||||
|
<h3>Prowl</h3>
|
||||||
|
<div class="row checkbox">
|
||||||
|
<input type="checkbox" name="prowl_enabled" id="prowl" value="1" ${config['prowl_enabled']} /><label>Enable Prowl Notifications</label>
|
||||||
|
</div>
|
||||||
|
<div id="prowloptions">
|
||||||
|
<div class="row">
|
||||||
|
<label>API key</label><input type="text" name="prowl_keys" value="${config['prowl_keys']}" size="50">
|
||||||
|
</div>
|
||||||
|
<div class="row checkbox">
|
||||||
|
<input type="checkbox" name="prowl_onsnatch" value="1" ${config['prowl_onsnatch']} /><label>Notify on snatch?</label>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<label>Priority (-2,-1,0,1 or 2):</label>
|
||||||
|
<input type="text" name="prowl_priority" value="${config['prowl_priority']}" size="2">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<h3>NotifyMyAndroid</h3>
|
||||||
|
<div class="checkbox row">
|
||||||
|
<input type="checkbox" name="nma_enabled" id="nma" value="1" ${config['nma_enabled']} /><label>Enable NotifyMyAndroid</label>
|
||||||
|
</div>
|
||||||
|
<div id="nmaoptions">
|
||||||
|
<div class="row">
|
||||||
|
<div class="row checkbox">
|
||||||
|
<input type="checkbox" name="nma_onsnatch" value="1" ${config['nma_onsnatch']} /><label>Notify on snatch?</label>
|
||||||
|
</div>
|
||||||
|
<label>NotifyMyAndroid API Key</label>
|
||||||
|
<input type="text" name="nma_apikey" value="${config['nma_apikey']}" size="30">
|
||||||
|
<small>Separate multiple api keys with commas</small>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<label>Priority</label>
|
||||||
|
<select name="nma_priority">
|
||||||
|
%for x in [-2,-1,0,1,2]:
|
||||||
|
<%
|
||||||
|
if config['nma_priority'] == x:
|
||||||
|
nma_priority_selected = 'selected'
|
||||||
|
else:
|
||||||
|
nma_priority_selected = ''
|
||||||
|
|
||||||
|
if x == -2:
|
||||||
|
nma_priority_value = 'Very Low'
|
||||||
|
elif x == -1:
|
||||||
|
nma_priority_value = 'Moderate'
|
||||||
|
elif x == 0:
|
||||||
|
nma_priority_value = 'Normal'
|
||||||
|
elif x == 1:
|
||||||
|
nma_priority_value = 'High'
|
||||||
|
else:
|
||||||
|
nma_priority_value = 'Emergency'
|
||||||
|
%>
|
||||||
|
<option value=${x} ${nma_priority_selected}>${nma_priority_value}</option>
|
||||||
|
%endfor
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
@ -539,6 +599,48 @@
|
||||||
function initThisPage()
|
function initThisPage()
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if ($("#prowl").is(":checked"))
|
||||||
|
{
|
||||||
|
$("#prowloptions").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#prowloptions").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#prowl").click(function(){
|
||||||
|
if ($("#prowl").is(":checked"))
|
||||||
|
{
|
||||||
|
$("#prowloptions").slideDown();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#prowloptions").slideUp();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if ($("#nma").is(":checked"))
|
||||||
|
{
|
||||||
|
$("#nmaoptions").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#nmaoptions").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#nma").click(function(){
|
||||||
|
if ($("#nma").is(":checked"))
|
||||||
|
{
|
||||||
|
$("#nmaoptions").slideDown();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#nmaoptions").slideUp();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
var deletedNewznabs = 0;
|
var deletedNewznabs = 0;
|
||||||
|
|
||||||
$(".remove").click(function() {
|
$(".remove").click(function() {
|
||||||
|
@ -567,6 +669,7 @@
|
||||||
});
|
});
|
||||||
initActions();
|
initActions();
|
||||||
initConfigCheckbox("#launch_browser");
|
initConfigCheckbox("#launch_browser");
|
||||||
|
initConfigCheckbox("#useblackhole");
|
||||||
initConfigCheckbox("#usenewznab");
|
initConfigCheckbox("#usenewznab");
|
||||||
initConfigCheckbox("#usenzbsu");
|
initConfigCheckbox("#usenzbsu");
|
||||||
initConfigCheckbox("#usedognzb");
|
initConfigCheckbox("#usedognzb");
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
%for issue in issues:
|
%for issue in issues:
|
||||||
<tr class="gradeZ">
|
<tr class="gradeZ">
|
||||||
<td id="select"><input type="checkbox" name="${issue['IssueID']}" class="checkbox" /></td>
|
<td id="select"><input type="checkbox" name="${issue['IssueID']}" class="checkbox" /></td>
|
||||||
<td id="comicname">${issue['ComicName']}</td>
|
<td id="comicname"><a href="artistPage?ComicID=${issue['ComicID']}">${issue['ComicName']}</a></td>
|
||||||
<td id="issuenumber"><a href="albumPage?IssueID=${issue['IssueID']}">${issue['Issue_Number']}</a></td>
|
<td id="issuenumber"><a href="albumPage?IssueID=${issue['IssueID']}">${issue['Issue_Number']}</a></td>
|
||||||
<td id="reldate">${issue['IssueDate']}</td>
|
<td id="reldate">${issue['IssueDate']}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -27,7 +27,7 @@ import urllib2
|
||||||
import sqlite3
|
import sqlite3
|
||||||
from xml.dom.minidom import parseString
|
from xml.dom.minidom import parseString
|
||||||
|
|
||||||
from mylar import logger, db, helpers, updater
|
from mylar import logger, db, helpers, updater, notifiers
|
||||||
|
|
||||||
class PostProcessor(object):
|
class PostProcessor(object):
|
||||||
"""
|
"""
|
||||||
|
@ -375,6 +375,16 @@ class PostProcessor(object):
|
||||||
logger.info(u"Post-Processing completed for: " + series + " issue: " + str(issuenum) )
|
logger.info(u"Post-Processing completed for: " + series + " issue: " + str(issuenum) )
|
||||||
self._log(u"Post Processing SUCCESSFULL! ", logger.DEBUG)
|
self._log(u"Post Processing SUCCESSFULL! ", logger.DEBUG)
|
||||||
|
|
||||||
|
if mylar.PROWL_ENABLED:
|
||||||
|
pushmessage = series + '(' + issueyear + ') - issue #' + issuenum
|
||||||
|
logger.info(u"Prowl request")
|
||||||
|
prowl = notifiers.PROWL()
|
||||||
|
prowl.notify(pushmessage,"Download and Postprocessing completed")
|
||||||
|
|
||||||
|
if mylar.NMA_ENABLED:
|
||||||
|
nma = notifiers.NMA()
|
||||||
|
nma.notify(series, str(issueyear), str(issuenum))
|
||||||
|
|
||||||
# retrieve/create the corresponding comic objects
|
# retrieve/create the corresponding comic objects
|
||||||
|
|
||||||
if mylar.ENABLE_EXTRA_SCRIPTS:
|
if mylar.ENABLE_EXTRA_SCRIPTS:
|
||||||
|
|
|
@ -122,6 +122,14 @@ AUTOWANT_UPCOMING = True
|
||||||
AUTOWANT_ALL = False
|
AUTOWANT_ALL = False
|
||||||
COMIC_COVER_LOCAL = False
|
COMIC_COVER_LOCAL = False
|
||||||
ADD_TO_CSV = True
|
ADD_TO_CSV = True
|
||||||
|
PROWL_ENABLED = True
|
||||||
|
PROWL_PRIORITY = 1
|
||||||
|
PROWL_KEYS = None
|
||||||
|
PROWL_ONSNATCH = True
|
||||||
|
NMA_ENABLED = False
|
||||||
|
NMA_APIKEY = None
|
||||||
|
NMA_PRIORITY = None
|
||||||
|
NMA_ONSNATCH = None
|
||||||
SKIPPED2WANTED = False
|
SKIPPED2WANTED = False
|
||||||
CVINFO = False
|
CVINFO = False
|
||||||
LOG_LEVEL = None
|
LOG_LEVEL = None
|
||||||
|
@ -231,6 +239,7 @@ def initialize():
|
||||||
NZBSU, NZBSU_APIKEY, DOGNZB, DOGNZB_APIKEY, NZBX,\
|
NZBSU, NZBSU_APIKEY, DOGNZB, DOGNZB_APIKEY, NZBX,\
|
||||||
NEWZNAB, NEWZNAB_HOST, NEWZNAB_APIKEY, NEWZNAB_ENABLED, EXTRA_NEWZNABS,\
|
NEWZNAB, NEWZNAB_HOST, NEWZNAB_APIKEY, NEWZNAB_ENABLED, EXTRA_NEWZNABS,\
|
||||||
RAW, RAW_PROVIDER, RAW_USERNAME, RAW_PASSWORD, RAW_GROUPS, EXPERIMENTAL, \
|
RAW, RAW_PROVIDER, RAW_USERNAME, RAW_PASSWORD, RAW_GROUPS, EXPERIMENTAL, \
|
||||||
|
PROWL_ENABLED, PROWL_PRIORITY, PROWL_KEYS, PROWL_ONSNATCH, NMA_ENABLED, NMA_APIKEY, NMA_PRIORITY, NMA_ONSNATCH, \
|
||||||
PREFERRED_QUALITY, MOVE_FILES, RENAME_FILES, LOWERCASE_FILENAMES, USE_MINSIZE, MINSIZE, USE_MAXSIZE, MAXSIZE, CORRECT_METADATA, FOLDER_FORMAT, FILE_FORMAT, REPLACE_CHAR, REPLACE_SPACES, ADD_TO_CSV, CVINFO, LOG_LEVEL, POST_PROCESSING, \
|
PREFERRED_QUALITY, MOVE_FILES, RENAME_FILES, LOWERCASE_FILENAMES, USE_MINSIZE, MINSIZE, USE_MAXSIZE, MAXSIZE, CORRECT_METADATA, FOLDER_FORMAT, FILE_FORMAT, REPLACE_CHAR, REPLACE_SPACES, ADD_TO_CSV, CVINFO, LOG_LEVEL, POST_PROCESSING, \
|
||||||
COMIC_LOCATION, QUAL_ALTVERS, QUAL_SCANNER, QUAL_TYPE, QUAL_QUALITY, ENABLE_EXTRA_SCRIPTS, EXTRA_SCRIPTS, ENABLE_PRE_SCRIPTS, PRE_SCRIPTS, PULLNEW, COUNT_ISSUES, COUNT_HAVES, COUNT_COMICS
|
COMIC_LOCATION, QUAL_ALTVERS, QUAL_SCANNER, QUAL_TYPE, QUAL_QUALITY, ENABLE_EXTRA_SCRIPTS, EXTRA_SCRIPTS, ENABLE_PRE_SCRIPTS, PRE_SCRIPTS, PULLNEW, COUNT_ISSUES, COUNT_HAVES, COUNT_COMICS
|
||||||
|
|
||||||
|
@ -300,6 +309,17 @@ def initialize():
|
||||||
ZERO_LEVEL = bool(check_setting_int(CFG, 'General', 'zero_level', 0))
|
ZERO_LEVEL = bool(check_setting_int(CFG, 'General', 'zero_level', 0))
|
||||||
ZERO_LEVEL_N = check_setting_str(CFG, 'General', 'zero_level_n', '')
|
ZERO_LEVEL_N = check_setting_str(CFG, 'General', 'zero_level_n', '')
|
||||||
LOWERCASE_FILENAMES = bool(check_setting_int(CFG, 'General', 'lowercase_filenames', 0))
|
LOWERCASE_FILENAMES = bool(check_setting_int(CFG, 'General', 'lowercase_filenames', 0))
|
||||||
|
|
||||||
|
PROWL_ENABLED = bool(check_setting_int(CFG, 'Prowl', 'prowl_enabled', 0))
|
||||||
|
PROWL_KEYS = check_setting_str(CFG, 'Prowl', 'prowl_keys', '')
|
||||||
|
PROWL_ONSNATCH = bool(check_setting_int(CFG, 'Prowl', 'prowl_onsnatch', 0))
|
||||||
|
PROWL_PRIORITY = check_setting_int(CFG, 'Prowl', 'prowl_priority', 0)
|
||||||
|
|
||||||
|
NMA_ENABLED = bool(check_setting_int(CFG, 'NMA', 'nma_enabled', 0))
|
||||||
|
NMA_APIKEY = check_setting_str(CFG, 'NMA', 'nma_apikey', '')
|
||||||
|
NMA_PRIORITY = check_setting_int(CFG, 'NMA', 'nma_priority', 0)
|
||||||
|
NMA_ONSNATCH = bool(check_setting_int(CFG, 'NMA', 'nma_onsnatch', 0))
|
||||||
|
|
||||||
USE_MINSIZE = bool(check_setting_int(CFG, 'General', 'use_minsize', 0))
|
USE_MINSIZE = bool(check_setting_int(CFG, 'General', 'use_minsize', 0))
|
||||||
MINSIZE = check_setting_str(CFG, 'General', 'minsize', '')
|
MINSIZE = check_setting_str(CFG, 'General', 'minsize', '')
|
||||||
USE_MAXSIZE = bool(check_setting_int(CFG, 'General', 'use_maxsize', 0))
|
USE_MAXSIZE = bool(check_setting_int(CFG, 'General', 'use_maxsize', 0))
|
||||||
|
@ -567,6 +587,7 @@ def config_write():
|
||||||
new_config['General']['zero_level'] = int(ZERO_LEVEL)
|
new_config['General']['zero_level'] = int(ZERO_LEVEL)
|
||||||
new_config['General']['zero_level_n'] = ZERO_LEVEL_N
|
new_config['General']['zero_level_n'] = ZERO_LEVEL_N
|
||||||
new_config['General']['lowercase_filenames'] = LOWERCASE_FILENAMES
|
new_config['General']['lowercase_filenames'] = LOWERCASE_FILENAMES
|
||||||
|
|
||||||
new_config['General']['use_minsize'] = int(USE_MINSIZE)
|
new_config['General']['use_minsize'] = int(USE_MINSIZE)
|
||||||
new_config['General']['minsize'] = MINSIZE
|
new_config['General']['minsize'] = MINSIZE
|
||||||
new_config['General']['use_maxsize'] = int(USE_MAXSIZE)
|
new_config['General']['use_maxsize'] = int(USE_MAXSIZE)
|
||||||
|
@ -616,6 +637,18 @@ def config_write():
|
||||||
|
|
||||||
new_config['Newznab']['extra_newznabs'] = flattened_newznabs
|
new_config['Newznab']['extra_newznabs'] = flattened_newznabs
|
||||||
|
|
||||||
|
new_config['Prowl'] = {}
|
||||||
|
new_config['Prowl']['prowl_enabled'] = int(PROWL_ENABLED)
|
||||||
|
new_config['Prowl']['prowl_keys'] = PROWL_KEYS
|
||||||
|
new_config['Prowl']['prowl_onsnatch'] = int(PROWL_ONSNATCH)
|
||||||
|
new_config['Prowl']['prowl_priority'] = int(PROWL_PRIORITY)
|
||||||
|
|
||||||
|
new_config['NMA'] = {}
|
||||||
|
new_config['NMA']['nma_enabled'] = int(NMA_ENABLED)
|
||||||
|
new_config['NMA']['nma_apikey'] = NMA_APIKEY
|
||||||
|
new_config['NMA']['nma_priority'] = NMA_PRIORITY
|
||||||
|
new_config['NMA']['nma_onsnatch'] = int(PROWL_ONSNATCH)
|
||||||
|
|
||||||
new_config['Raw'] = {}
|
new_config['Raw'] = {}
|
||||||
new_config['Raw']['raw'] = int(RAW)
|
new_config['Raw']['raw'] = int(RAW)
|
||||||
new_config['Raw']['raw_provider'] = RAW_PROVIDER
|
new_config['Raw']['raw_provider'] = RAW_PROVIDER
|
||||||
|
@ -728,6 +761,14 @@ def dbcheck():
|
||||||
except sqlite3.OperationalError:
|
except sqlite3.OperationalError:
|
||||||
c.execute('ALTER TABLE issues ADD COLUMN inCacheDIR TEXT')
|
c.execute('ALTER TABLE issues ADD COLUMN inCacheDIR TEXT')
|
||||||
|
|
||||||
|
#if it's prior to Wednesday, the issue counts will be inflated by one as the online db's everywhere
|
||||||
|
#prepare for the next 'new' release of a series. It's caught in updater.py, so let's just store the
|
||||||
|
#value in the sql so we can display it in the details screen for everyone to wonder at.
|
||||||
|
try:
|
||||||
|
c.execute('SELECT not_updated_db from comics')
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
c.execute('ALTER TABLE comics ADD COLUMN not_updated_db TEXT')
|
||||||
|
|
||||||
# -- not implemented just yet ;)
|
# -- not implemented just yet ;)
|
||||||
|
|
||||||
# for metadata...
|
# for metadata...
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
from __future__ import division
|
from __future__ import division
|
||||||
|
|
||||||
import mylar
|
import mylar
|
||||||
from mylar import logger, db, updater, helpers, parseit, findcomicfeed, prov_nzbx
|
from mylar import logger, db, updater, helpers, parseit, findcomicfeed, prov_nzbx, notifiers
|
||||||
|
|
||||||
nzbsu_APIkey = mylar.NZBSU_APIKEY
|
nzbsu_APIkey = mylar.NZBSU_APIKEY
|
||||||
dognzb_APIkey = mylar.DOGNZB_APIKEY
|
dognzb_APIkey = mylar.DOGNZB_APIKEY
|
||||||
|
@ -742,12 +742,15 @@ def NZB_SEARCH(ComicName, IssueNumber, ComicYear, SeriesYear, nzbprov, nzbpr, Is
|
||||||
return
|
return
|
||||||
|
|
||||||
logger.info(u"Successfully sent nzb file to SABnzbd")
|
logger.info(u"Successfully sent nzb file to SABnzbd")
|
||||||
#delete the .nzb now.
|
|
||||||
#if mylar.PROG_DIR is not "/" and nzbprov != 'nzb.su':
|
if mylar.PROWL_ENABLED and mylar.PROWL_ONSNATCH:
|
||||||
# logger.fdebug("preparing to remove temporary nzb file at: " + str(savefile))
|
logger.info(u"Sending Prowl notification")
|
||||||
# os.remove(savefile)
|
prowl = notifiers.PROWL()
|
||||||
# logger.info(u"Removed temporary save file")
|
prowl.notify(nzbname,"Download started")
|
||||||
#raise an exception to break out of loop
|
if mylar.NMA_ENABLED and mylar.NMA_ONSNATCH:
|
||||||
|
logger.info(u"Sending NMA notification")
|
||||||
|
nma = notifiers.NMA()
|
||||||
|
nma.notify(snatched_nzb=nzbname)
|
||||||
|
|
||||||
|
|
||||||
foundc = "yes"
|
foundc = "yes"
|
||||||
|
|
|
@ -93,6 +93,15 @@ def upcoming_update(ComicID, ComicName, IssueNumber, IssueDate):
|
||||||
upco_iss = myDB.action("SELECT COUNT(*) FROM UPCOMING WHERE ComicID=?",[ComicID]).fetchone()
|
upco_iss = myDB.action("SELECT COUNT(*) FROM UPCOMING WHERE ComicID=?",[ComicID]).fetchone()
|
||||||
if upco_iss > 0:
|
if upco_iss > 0:
|
||||||
print ("There is " + str(upco_iss[0]) + " of " + str(ComicName) + " that's not accounted for")
|
print ("There is " + str(upco_iss[0]) + " of " + str(ComicName) + " that's not accounted for")
|
||||||
|
newKey = {"ComicID": ComicID}
|
||||||
|
newVal = {"not_updated_db": str(upco_iss[0])}
|
||||||
|
myDB.upsert("comics", newVal, newKey)
|
||||||
|
elif upco_iss <=0 and lastupdatecheck['not_updated_db']:
|
||||||
|
#if not_updated_db has a value, and upco_iss is > 0, let's zero it back out cause it's updated now.
|
||||||
|
newKey = {"ComicID": ComicID}
|
||||||
|
newVal - {"not_updated_db": null}
|
||||||
|
myDB.upsert("comics", newVal, newKey)
|
||||||
|
|
||||||
if hours > 5:
|
if hours > 5:
|
||||||
pullupd = "yes"
|
pullupd = "yes"
|
||||||
logger.fdebug("Now Refreshing comic " + str(ComicName) + " to make sure it's up-to-date")
|
logger.fdebug("Now Refreshing comic " + str(ComicName) + " to make sure it's up-to-date")
|
||||||
|
|
|
@ -979,6 +979,14 @@ class WebInterface(object):
|
||||||
"add_to_csv" : helpers.checked(mylar.ADD_TO_CSV),
|
"add_to_csv" : helpers.checked(mylar.ADD_TO_CSV),
|
||||||
"cvinfo" : helpers.checked(mylar.CVINFO),
|
"cvinfo" : helpers.checked(mylar.CVINFO),
|
||||||
"lowercase_filenames" : helpers.checked(mylar.LOWERCASE_FILENAMES),
|
"lowercase_filenames" : helpers.checked(mylar.LOWERCASE_FILENAMES),
|
||||||
|
"prowl_enabled": helpers.checked(mylar.PROWL_ENABLED),
|
||||||
|
"prowl_onsnatch": helpers.checked(mylar.PROWL_ONSNATCH),
|
||||||
|
"prowl_keys": mylar.PROWL_KEYS,
|
||||||
|
"prowl_priority": mylar.PROWL_PRIORITY,
|
||||||
|
"nma_enabled": helpers.checked(mylar.NMA_ENABLED),
|
||||||
|
"nma_apikey": mylar.NMA_APIKEY,
|
||||||
|
"nma_priority": int(mylar.NMA_PRIORITY),
|
||||||
|
"nma_onsnatch": helpers.checked(mylar.NMA_ONSNATCH),
|
||||||
"enable_extra_scripts" : helpers.checked(mylar.ENABLE_EXTRA_SCRIPTS),
|
"enable_extra_scripts" : helpers.checked(mylar.ENABLE_EXTRA_SCRIPTS),
|
||||||
"extra_scripts" : mylar.EXTRA_SCRIPTS,
|
"extra_scripts" : mylar.EXTRA_SCRIPTS,
|
||||||
"post_processing" : helpers.checked(mylar.POST_PROCESSING),
|
"post_processing" : helpers.checked(mylar.POST_PROCESSING),
|
||||||
|
@ -1085,6 +1093,7 @@ class WebInterface(object):
|
||||||
sab_host=None, sab_username=None, sab_apikey=None, sab_password=None, sab_category=None, sab_priority=None, sab_directory=None, log_dir=None, log_level=0, blackhole=0, blackhole_dir=None,
|
sab_host=None, sab_username=None, sab_apikey=None, sab_password=None, sab_category=None, sab_priority=None, sab_directory=None, log_dir=None, log_level=0, blackhole=0, blackhole_dir=None,
|
||||||
usenet_retention=None, nzbsu=0, nzbsu_apikey=None, dognzb=0, dognzb_apikey=None, nzbx=0, newznab=0, newznab_host=None, newznab_apikey=None, newznab_enabled=0,
|
usenet_retention=None, nzbsu=0, nzbsu_apikey=None, dognzb=0, dognzb_apikey=None, nzbx=0, newznab=0, newznab_host=None, newznab_apikey=None, newznab_enabled=0,
|
||||||
raw=0, raw_provider=None, raw_username=None, raw_password=None, raw_groups=None, experimental=0,
|
raw=0, raw_provider=None, raw_username=None, raw_password=None, raw_groups=None, experimental=0,
|
||||||
|
prowl_enabled=0, prowl_onsnatch=0, prowl_keys=None, prowl_priority=None, nma_enabled=0, nma_apikey=None, nma_priority=0, nma_onsnatch=0,
|
||||||
preferred_quality=0, move_files=0, rename_files=0, add_to_csv=1, cvinfo=0, lowercase_filenames=0, folder_format=None, file_format=None, enable_extra_scripts=0, extra_scripts=None, enable_pre_scripts=0, pre_scripts=None, post_processing=0,
|
preferred_quality=0, move_files=0, rename_files=0, add_to_csv=1, cvinfo=0, lowercase_filenames=0, folder_format=None, file_format=None, enable_extra_scripts=0, extra_scripts=None, enable_pre_scripts=0, pre_scripts=None, post_processing=0,
|
||||||
destination_dir=None, replace_spaces=0, replace_char=None, use_minsize=0, minsize=None, use_maxsize=0, maxsize=None, autowant_all=0, autowant_upcoming=0, comic_cover_local=0, zero_level=0, zero_level_n=None, interface=None, **kwargs):
|
destination_dir=None, replace_spaces=0, replace_char=None, use_minsize=0, minsize=None, use_maxsize=0, maxsize=None, autowant_all=0, autowant_upcoming=0, comic_cover_local=0, zero_level=0, zero_level_n=None, interface=None, **kwargs):
|
||||||
mylar.HTTP_HOST = http_host
|
mylar.HTTP_HOST = http_host
|
||||||
|
@ -1132,6 +1141,14 @@ class WebInterface(object):
|
||||||
mylar.ADD_TO_CSV = add_to_csv
|
mylar.ADD_TO_CSV = add_to_csv
|
||||||
mylar.CVINFO = cvinfo
|
mylar.CVINFO = cvinfo
|
||||||
mylar.LOWERCASE_FILENAMES = lowercase_filenames
|
mylar.LOWERCASE_FILENAMES = lowercase_filenames
|
||||||
|
mylar.PROWL_ENABLED = prowl_enabled
|
||||||
|
mylar.PROWL_ONSNATCH = prowl_onsnatch
|
||||||
|
mylar.PROWL_KEYS = prowl_keys
|
||||||
|
mylar.PROWL_PRIORITY = prowl_priority
|
||||||
|
mylar.NMA_ENABLED = nma_enabled
|
||||||
|
mylar.NMA_APIKEY = nma_apikey
|
||||||
|
mylar.NMA_PRIORITY = nma_priority
|
||||||
|
mylar.NMA_ONSNATCH = nma_onsnatch
|
||||||
mylar.USE_MINSIZE = use_minsize
|
mylar.USE_MINSIZE = use_minsize
|
||||||
mylar.MINSIZE = minsize
|
mylar.MINSIZE = minsize
|
||||||
mylar.USE_MAXSIZE = use_maxsize
|
mylar.USE_MAXSIZE = use_maxsize
|
||||||
|
|
Loading…
Reference in New Issue