diff --git a/mylar/notifiers.py b/mylar/notifiers.py index abb8699a..3393460c 100644 --- a/mylar/notifiers.py +++ b/mylar/notifiers.py @@ -83,127 +83,6 @@ class PROWL: def test_notify(self): self.notify('ZOMG Lazors Pewpewpew!', 'Test Message') -class NMA: - - def __init__(self, test_apikey=None): - - self.NMA_URL = "https://www.notifymyandroid.com/publicapi/notify" - self.TEST_NMA_URL = "https://www.notifymyandroid.com/publicapi/verify" - if test_apikey is None: - self.apikey = mylar.CONFIG.NMA_APIKEY - self.test = False - else: - self.apikey = test_apikey - self.test = True - self.priority = mylar.CONFIG.NMA_PRIORITY - - self._session = requests.Session() - - def _send(self, data, module): - try: - r = self._session.post(self.NMA_URL, data=data, verify=True) - except requests.exceptions.RequestException as e: - logger.error(module + '[' + str(e) + '] Unable to send via NMA. Aborting notification for this item.') - return {'status': False, - 'message': str(e)} - - logger.fdebug('[NMA] Status code returned: ' + str(r.status_code)) - if r.status_code == 200: - from xml.dom.minidom import parseString - dom = parseString(r.content) - try: - success_info = dom.getElementsByTagName('success') - success_code = success_info[0].getAttribute('code') - except: - error_info = dom.getElementsByTagName('error') - error_code = error_info[0].getAttribute('code') - error_message = error_info[0].childNodes[0].nodeValue - logger.info(module + '[' + str(error_code) + '] ' + error_message) - return {'status': False, - 'message': '[' + str(error_code) + '] ' + error_message} - - else: - if self.test is True: - logger.info(module + '[' + str(success_code) + '] NotifyMyAndroid apikey valid. Test notification sent successfully.') - else: - logger.info(module + '[' + str(success_code) + '] NotifyMyAndroid notification sent successfully.') - return {'status': True, - 'message': 'APIKEY verified OK / notification sent'} - elif r.status_code >= 400 and r.status_code < 500: - logger.error(module + ' NotifyMyAndroid request failed: %s' % r.content) - return {'status': False, - 'message': 'APIKEY verified OK / failure to send notification'} - else: - logger.error(module + ' NotifyMyAndroid notification failed serverside.') - return {'status': False, - 'message': 'APIKEY verified OK / failure to send notification'} - - def notify(self, snline=None, prline=None, prline2=None, snatched_nzb=None, sent_to=None, prov=None, module=None): - - if module is None: - module = '' - module += '[NOTIFIER]' - - apikey = self.apikey - priority = self.priority - - if snatched_nzb: - if snatched_nzb[-1] == '\.': snatched_nzb = snatched_nzb[:-1] - event = snline - description = "Mylar has snatched: " + snatched_nzb + " from " + prov + " and " + sent_to - else: - event = prline - description = prline2 - - data = {'apikey': apikey, 'application': 'Mylar', 'event': event.encode('utf-8'), 'description': description.encode('utf-8'), 'priority': priority} - - logger.info(module + ' Sending notification request to NotifyMyAndroid') - request = self._send(data, module) - - if not request: - logger.warn(module + ' Error sending notification request to NotifyMyAndroid') - - def test_notify(self): - module = '[TEST-NOTIFIER]' - try: - r = self._session.get(self.TEST_NMA_URL, params={'apikey': self.apikey}, verify=True) - except requests.exceptions.RequestException as e: - logger.error(module + '[' + str(e) + '] Unable to send via NMA. Aborting test notification - something is probably wrong...') - return {'status': False, - 'message': str(e)} - - logger.fdebug('[NMA] Status code returned: ' + str(r.status_code)) - if r.status_code == 200: - from xml.dom.minidom import parseString - dom = parseString(r.content) - try: - success_info = dom.getElementsByTagName('success') - success_code = success_info[0].getAttribute('code') - except: - error_info = dom.getElementsByTagName('error') - error_code = error_info[0].getAttribute('code') - error_message = error_info[0].childNodes[0].nodeValue - logger.info(module + '[' + str(error_code) + '] ' + error_message) - return {'status': False, - 'message': '[' + str(error_code) + '] ' + error_message} - - else: - logger.info(module + '[' + str(success_code) + '] NotifyMyAndroid apikey valid. Testing notification service with it.') - elif r.status_code >= 400 and r.status_code < 500: - logger.error(module + ' NotifyMyAndroid request failed: %s' % r.content) - return {'status': False, - 'message': 'Unable to send request to NMA - check your connection.'} - else: - logger.error(module + ' NotifyMyAndroid notification failed serverside.') - return {'status': False, - 'message': 'Internal Server Error. Try again later.'} - - event = 'Test Message' - description = 'ZOMG Lazors PewPewPew!' - data = {'apikey': self.apikey, 'application': 'Mylar', 'event': event.encode('utf-8'), 'description': description.encode('utf-8'), 'priority': 2} - - return self._send(data,'[NOTIFIER]') - # 2013-04-01 Added Pushover.net notifications, based on copy of Prowl class above. # No extra care has been put into API friendliness at the moment (read: https://pushover.net/api#friendly) class PUSHOVER: