mirror of
https://github.com/rembo10/headphones.git
synced 2026-03-22 04:39:26 +00:00
Add Slack notification
This commit is contained in:
@@ -1302,6 +1302,26 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="row checkbox left">
|
||||
<input type="checkbox" class="bigcheck" name="slack_enabled" id="slack" value="1" ${config['slack_enabled']} /><label for="slack"><span class="option">Slack</span></label>
|
||||
</div>
|
||||
<div id="slackoptions">
|
||||
<div class="row">
|
||||
<label>Slack Webhook</label><input type="text" name="slack_url" value="${config['slack_url']}" size="50">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Channel</label><input type="text" name="slack_channel" value="${config['slack_channel']}" size="50">
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<label>Emoji</label><input type="text" name="slack_emoji" value="${config['slack_emoji']}" size="50">
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input type="checkbox" name="slack_onsnatch" value="1" ${config['slack_onsnatch']} /><label>Notify on snatch?</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="row checkbox left">
|
||||
<input type="checkbox" class="bigcheck" name="telegram_enabled" id="telegram" value="1" ${config['telegram_enabled']} /><label for="telegram"><span class="option">Telegram</span></label>
|
||||
@@ -2099,6 +2119,27 @@
|
||||
}
|
||||
});
|
||||
|
||||
if ($("#slack").is(":checked"))
|
||||
{
|
||||
$("#slackoptions").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#slackoptions").hide();
|
||||
}
|
||||
|
||||
$("#slack").click(function(){
|
||||
if ($("#slack").is(":checked"))
|
||||
{
|
||||
$("#slackoptions").slideDown();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#slackoptions").slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if ($("#telegram").is(":checked"))
|
||||
{
|
||||
$("#telegramoptions").show();
|
||||
|
||||
@@ -249,6 +249,11 @@ _CONFIG_DEFINITIONS = {
|
||||
'SAB_USERNAME': (str, 'SABnzbd', ''),
|
||||
'SAMPLINGFREQUENCY': (int, 'General', 44100),
|
||||
'SEARCH_INTERVAL': (int, 'General', 1440),
|
||||
'SLACK_ENABLED': (int, 'Slack', 0),
|
||||
'SLACK_URL': (str, 'Slack', ''),
|
||||
'SLACK_CHANNEL': (str, 'Slack', ''),
|
||||
'SLACK_EMOJI': (str, 'Slack', ''),
|
||||
'SLACK_ONSNATCH': (int, 'Slack', 0),
|
||||
'SOFT_CHROOT': (path, 'General', ''),
|
||||
'SONGKICK_APIKEY': (str, 'Songkick', 'nd1We7dFW2RqxPw8'),
|
||||
'SONGKICK_ENABLED': (int, 'Songkick', 1),
|
||||
|
||||
@@ -888,3 +888,30 @@ class TELEGRAM(object):
|
||||
|
||||
logger.info(u"Telegram notifications sent.")
|
||||
return sent_successfuly
|
||||
|
||||
class SLACK(object):
|
||||
|
||||
def notify(self, message, status):
|
||||
if not headphones.CONFIG.SLACK_ENABLED:
|
||||
return
|
||||
|
||||
import requests
|
||||
|
||||
SLACK_URL = headphones.CONFIG.SLACK_URL
|
||||
channel = headphones.CONFIG.SLACK_CHANNEL
|
||||
emoji = headphones.CONFIG.SLACK_EMOJI
|
||||
|
||||
payload = { 'channel': channel, 'text': status + ': ' + message, 'icon_emoji': emoji}
|
||||
|
||||
try:
|
||||
response = requests.post(SLACK_URL, json=payload)
|
||||
except Exception, e:
|
||||
logger.info(u'Slack notify failed: ' + str(e))
|
||||
|
||||
sent_successfuly = True
|
||||
if not response.status_code == 200:
|
||||
logger.info(u'Could not send notification to Slack. Response: [%s]', (response.text))
|
||||
sent_successfuly = False
|
||||
|
||||
logger.info(u"Slack notifications sent.")
|
||||
return sent_successfuly
|
||||
@@ -1052,6 +1052,10 @@ def send_to_downloader(data, bestqual, album):
|
||||
logger.info(u"Sending PushBullet notification")
|
||||
pushbullet = notifiers.PUSHBULLET()
|
||||
pushbullet.notify(name, "Download started")
|
||||
if headphones.CONFIG.SLACK_ENABLED and headphones.CONFIG.SLACK_ONSNATCH:
|
||||
logger.info(u"Sending Slack notification")
|
||||
slack = notifiers.SLACK()
|
||||
slack.notify(name, "Download started")
|
||||
if headphones.CONFIG.TELEGRAM_ENABLED and headphones.CONFIG.TELEGRAM_ONSNATCH:
|
||||
logger.info(u"Sending Telegram notification")
|
||||
telegram = notifiers.TELEGRAM()
|
||||
|
||||
@@ -1388,7 +1388,12 @@ class WebInterface(object):
|
||||
"email_ssl": checked(headphones.CONFIG.EMAIL_SSL),
|
||||
"email_tls": checked(headphones.CONFIG.EMAIL_TLS),
|
||||
"email_onsnatch": checked(headphones.CONFIG.EMAIL_ONSNATCH),
|
||||
"idtag": checked(headphones.CONFIG.IDTAG)
|
||||
"idtag": checked(headphones.CONFIG.IDTAG),
|
||||
"slack_enabled": checked(headphones.CONFIG.SLACK_ENABLED),
|
||||
"slack_url": headphones.CONFIG.SLACK_URL,
|
||||
"slack_channel": headphones.CONFIG.SLACK_CHANNEL,
|
||||
"slack_emoji": headphones.CONFIG.SLACK_EMOJI,
|
||||
"slack_onsnatch": checked(headphones.CONFIG.SLACK_ONSNATCH)
|
||||
}
|
||||
|
||||
for k, v in config.iteritems():
|
||||
|
||||
Reference in New Issue
Block a user