Ejemplo n.º 1
0
    def create_alert_settings(self, kind, settings, alert_defaults):
        default = TelegramAlarm._defaults[kind]
        default.update(alert_defaults)
        settings = Alarm.pop_type(settings, kind, dict, {})

        alert = TelegramAlarm.Alert(
            bot_token=Alarm.pop_type(settings, 'bot_token', unicode,
                                     default['bot_token']),
            chat_id=Alarm.pop_type(settings, 'chat_id', unicode,
                                   default['chat_id']),
            sticker=Alarm.pop_type(settings, 'sticker', utils.parse_bool,
                                   default['sticker']),
            sticker_url=Alarm.pop_type(settings, 'sticker_url', unicode,
                                       default['sticker_url']),
            sticker_notify=Alarm.pop_type(settings, 'sticker_notify',
                                          utils.parse_bool,
                                          default['sticker_notify']),
            message=Alarm.pop_type(settings, 'message', unicode,
                                   default['message']),
            message_notify=Alarm.pop_type(settings, 'message_notify',
                                          utils.parse_bool,
                                          default['message_notify']),
            venue=Alarm.pop_type(settings, 'venue', utils.parse_bool,
                                 default['venue']),
            venue_notify=Alarm.pop_type(settings, 'venue_notify',
                                        utils.parse_bool,
                                        default['venue_notify']),
            map=Alarm.pop_type(settings, 'map', utils.parse_bool,
                               default['map']),
            map_notify=Alarm.pop_type(settings, 'map_notify', utils.parse_bool,
                                      default['map_notify']),
            max_attempts=Alarm.pop_type(settings, 'max_attempts', int,
                                        default['max_attempts']),
            web_preview=Alarm.pop_type(settings, 'web_preview',
                                       utils.parse_bool,
                                       default['web_preview']))

        # Reject leftover parameters
        for key in settings:
            raise ValueError("'{}' is not a recognized parameter for the Alert"
                             " level in a Telegram Alarm".format(key))

        return alert
Ejemplo n.º 2
0
    def create_alert_settings(self, kind, settings, alert_defaults):
        default = TelegramAlarm._defaults[kind]
        default.update(alert_defaults)
        settings = Alarm.pop_type(settings, kind, dict, {})

        alert = TelegramAlarm.Alert(
            bot_token=Alarm.pop_type(
                settings, 'bot_token', unicode, default['bot_token']),
            chat_id=Alarm.pop_type(
                settings, 'chat_id', unicode, default['chat_id']),
            sticker=Alarm.pop_type(
                settings, 'sticker', utils.parse_bool, default['sticker']),
            sticker_url=Alarm.pop_type(
                settings, 'sticker_url', unicode, default['sticker_url']),
            sticker_notify=Alarm.pop_type(
                settings, 'sticker_notify', utils.parse_bool,
                default['sticker_notify']),
            message=Alarm.pop_type(
                settings, 'message', unicode, default['message']),
            message_notify=Alarm.pop_type(
                settings, 'message_notify', utils.parse_bool,
                default['message_notify']),
            venue=Alarm.pop_type(
                settings, 'venue', utils.parse_bool, default['venue']),
            venue_notify=Alarm.pop_type(
                settings, 'venue_notify', utils.parse_bool,
                default['venue_notify']),
            map=Alarm.pop_type(
                settings, 'map', utils.parse_bool, default['map']),
            map_notify=Alarm.pop_type(
                settings, 'map_notify', utils.parse_bool,
                default['map_notify']),
            max_attempts=Alarm.pop_type(
                settings, 'max_attempts', int, default['max_attempts']),
            web_preview=Alarm.pop_type(
                settings, 'web_preview', utils.parse_bool,
                default['web_preview'])
        )

        # Reject leftover parameters
        for key in settings:
            raise ValueError(
                "'{}' is not a recognized parameter for the Alert"
                " level in a Telegram Alarm".format(key))

        return alert