Пример #1
0
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'])
Пример #2
0
    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