def send_message(alert): logging.debug('Opening settings.json.') settings_file = settings.open_settings() logging.debug('Getting Twilio settings.') twilio_enabled = settings_file['settings']['general']['twilio'] logging.debug('Getting Slack settings.') slack_enabled = settings_file['settings']['general']['slack'] logging.debug('Getting Pushover settings.') pushover_enabled = settings_file['settings']['general']['pushover'] logging.debug('Getting Telegram settings.') telegram_enabled = settings_file['settings']['general']['telegram'] logging.debug('Checking if Telegram is enabled.') if telegram_enabled: logging.debug('Opening settings.json.') telegram_settings = settings_file['settings']['telegram'] bot = telepot.Bot(telegram_settings["token"]) bot.sendMessage(telegram_settings["chat_id"], str(alert)) logging.debug('Checking if Twilio is enabled.') if twilio_enabled: logging.debug('Twilio enabled.') logging.debug('Loading Twilio settings.') twilio_settings = load_twilio_settings() logging.debug('Configuring Twilio client.') client = TwilioRestClient(twilio_settings["account_sid"], twilio_settings["auth_token"]) try: logging.debug('Trying to send Twilio message.') client.messages.create(body=alert, to=twilio_settings['mobile_number'], from_=twilio_settings["twilio_number"]) except TwilioRestException: print( 'Unable to run application, correct Twilio credentials provided?' ) logging.critical( 'Aborting... Unable to run application, Twilio credentials incorrect.' ) sys.exit(406) logging.debug('Checking if Slack is enabled.') if slack_enabled: logging.debug('Opening settings.json.') slack_settings = load_slack_settings() logging.debug('Staring up Slack Bot.') slack_bot.run_bot(alert, slack_settings['channel_name']) logging.debug('Checking if Pushover is enabled.') if pushover_enabled: logging.debug('Opening settings.json.') pushover_settings = load_pushover_settings() client = Client(pushover_settings['user_key'], api_token=pushover_settings['api_token']) client.send_message(alert, priority=pushover_settings['priority'])
def send_sms(self, message=None): if message and settings.SMS_SERVICE == 'Twilio': client = TwilioRestClient(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN) response = client.messages.create( body=message, to=self.phone, from_=settings.TWILIO_FROM_NUMBER, ) return response.sid if message and settings.SMS_SERVICE == 'Plivo': client = PlivoRestClient(settings.PLIVO_AUTH_ID, settings.PLIVO_AUTH_TOKEN) response = client.send_message({ 'src': settings.PLIVO_FROM_NUMBER, 'dst': self.phone[1:], # drop the + before country code 'text': message, }) return response if message and settings.SMS_SERVICE == 'Console': print message return True if message and settings.SMS_SERVICE == 'Primafon': res = requests.post('http://sms.k8s.inonit.no/api/v0/messages/', json={ 'to': self.phone[1:], 'body': message, }, headers={ 'Authorization': 'Token %s' % settings.PRIMAFON_KEY, }) res.raise_for_status() return True