def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self._bot_token = require_and_remove_key('bot_token', settings,
                                                 "'Telegram' type alarms.")
        self._chat_id = require_and_remove_key('chat_id', settings,
                                               "'Telegram' type alarms.")

        self._startup_message = self.pop_type(settings, 'startup_message',
                                              utils.parse_bool, True)

        # Optional Alert Parameters
        alert_defaults = {
            'bot_token':
            self._bot_token,
            'chat_id':
            self._chat_id,
            'sticker':
            self.pop_type(settings, 'sticker', utils.parse_bool, True),
            'sticker_notify':
            self.pop_type(settings, 'sticker_notify', utils.parse_bool, False),
            'message_notify':
            self.pop_type(settings, 'message_notify', utils.parse_bool, True),
            'venue':
            self.pop_type(settings, 'venue', utils.parse_bool, False),
            'venue_notify':
            self.pop_type(settings, 'venue_notify', utils.parse_bool, True),
            'map':
            self.pop_type(settings, 'map', utils.parse_bool, True),
            'map_notify':
            self.pop_type(settings, 'map_notify', utils.parse_bool, False),
            'max_attempts':
            self.pop_type(settings, 'max_attempts', int, 3),
            'web_preview':
            self.pop_type(settings, 'web_preview', utils.parse_bool, False)
        }

        # Alert Settings
        self._mon_alert = self.create_alert_settings('monsters', settings,
                                                     alert_defaults)
        self._stop_alert = self.create_alert_settings('stops', settings,
                                                      alert_defaults)
        self._gym_alert = self.create_alert_settings('gyms', settings,
                                                     alert_defaults)
        self._egg_alert = self.create_alert_settings('eggs', settings,
                                                     alert_defaults)
        self._raid_alert = self.create_alert_settings('raids', settings,
                                                      alert_defaults)
        self._weather_alert = self.create_alert_settings(
            'weather', settings, alert_defaults)

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

        self._log.info("Telegram Alarm has been created!")
Exemple #2
0
    def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self._bot_token = require_and_remove_key(
            'bot_token', settings, "'Telegram' type alarms.")
        self._chat_id = require_and_remove_key(
            'chat_id', settings, "'Telegram' type alarms.")

        self._startup_message = self.pop_type(
            settings, 'startup_message', utils.parse_bool, True)

        # Optional Alert Parameters
        alert_defaults = {
            'bot_token': self._bot_token,
            'chat_id': self._chat_id,
            'sticker': self.pop_type(
                settings, 'sticker', utils.parse_bool, True),
            'sticker_notify': self.pop_type(
                settings, 'sticker_notify', utils.parse_bool, False),
            'message_notify': self.pop_type(
                settings, 'message_notify', utils.parse_bool, True),
            'venue': self.pop_type(
                settings, 'venue', utils.parse_bool, False),
            'venue_notify': self.pop_type(
                settings, 'venue_notify', utils.parse_bool, True),
            'map': self.pop_type(
                settings, 'map', utils.parse_bool, True),
            'map_notify': self.pop_type(
                settings, 'map_notify', utils.parse_bool, False),
            'max_attempts': self.pop_type(
                settings, 'max_attempts', int, 3),
            'web_preview': self.pop_type(
                settings, 'web_preview', utils.parse_bool, False)
        }

        # Alert Settings
        self._mon_alert = self.create_alert_settings(
            'monsters', settings, alert_defaults)
        self._stop_alert = self.create_alert_settings(
            'stops', settings, alert_defaults)
        self._gym_alert = self.create_alert_settings(
            'gyms', settings, alert_defaults)
        self._egg_alert = self.create_alert_settings(
            'eggs', settings, alert_defaults)
        self._raid_alert = self.create_alert_settings(
            'raids', settings, alert_defaults)
        self._weather_alert = self.create_alert_settings(
            'weather', settings, alert_defaults)

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

        self._log.info("Telegram Alarm has been created!")
Exemple #3
0
    def __init__(self, mgr, settings, max_attempts, static_map_key):
        self._log = mgr.get_child_logger("alarms")
        # Required Parameters
        self.__webhook_url = require_and_remove_key(
            'webhook_url', settings, "'Discord' type alarms.")
        self.__max_attempts = max_attempts

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))
        self.__disable_embed = parse_boolean(
            settings.pop('disable_embed', "False"))
        self.__avatar_url = settings.pop('avatar_url', "")
        self.__map = settings.pop('map', {})
        self.__static_map_key = static_map_key

        # Set Alert Parameters
        self.__monsters = self.create_alert_settings(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__stops = self.create_alert_settings(
            settings.pop('stops', {}), self._defaults['stops'])
        self.__gyms = self.create_alert_settings(
            settings.pop('gyms', {}), self._defaults['gyms'])
        self.__eggs = self.create_alert_settings(
            settings.pop('eggs', {}), self._defaults['eggs'])
        self.__raids = self.create_alert_settings(
            settings.pop('raids', {}), self._defaults['raids'])
        self.__weather = self.create_alert_settings(
            settings.pop('weather', {}), self._defaults['weather'])

        # Warn user about leftover parameters
        reject_leftover_parameters(settings, "'Alarm level in Discord alarm.")

        self._log.info("Discord Alarm has been created!")
    def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self.__api_key = require_and_remove_key(
            'api_key', settings, "'Pushbullet' type alarms.")
        self.__client = None

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))
        self.__channel = settings.pop('channel', "True")
        self.__sender = None

        # Optional Alert Parameters
        self.__pokemon = self.create_alert_settings(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__pokestop = self.create_alert_settings(
            settings.pop('stops', {}), self._defaults['stops'])
        self.__gym = self.create_alert_settings(
            settings.pop('gyms', {}), self._defaults['gyms'])
        self.__egg = self.create_alert_settings(
            settings.pop('eggs', {}), self._defaults['eggs'])
        self.__raid = self.create_alert_settings(
            settings.pop('raids', {}), self._defaults['raids'])
        self.__weather = self.create_alert_settings(
            settings.pop('weather', {}), self._defaults['weather'])

        #  Warn user about leftover parameters
        reject_leftover_parameters(
            settings, "Alarm level in Pushbullet alarm.")

        self._log.info("Pushbullet Alarm has been created!")
Exemple #5
0
def alarm_factory(mgr, settings, max_attempts, api_key):
    kind = require_and_remove_key(
        'type', settings, "Alarm objects in Alarms file.")
    if kind == 'discord':
        from PokeAlarm.Alarms.Discord import DiscordAlarm
        return DiscordAlarm(mgr, settings, max_attempts, api_key)
    elif kind == 'facebook_page':
        from PokeAlarm.Alarms.FacebookPage import FacebookPageAlarm
        return FacebookPageAlarm(mgr, settings)
    elif kind == 'pushbullet':
        from PokeAlarm.Alarms.Pushbullet import PushbulletAlarm
        return PushbulletAlarm(mgr, settings)
    elif kind == 'slack':
        from PokeAlarm.Alarms.Slack import SlackAlarm
        return SlackAlarm(mgr, settings, api_key)
    elif kind == 'telegram':
        from PokeAlarm.Alarms.Telegram import TelegramAlarm
        return TelegramAlarm(mgr, settings)
    elif kind == 'twilio':
        from PokeAlarm.Alarms.Twilio import TwilioAlarm
        return TwilioAlarm(mgr, settings)
    elif kind == 'twitter':
        from PokeAlarm.Alarms.Twitter import TwitterAlarm
        return TwitterAlarm(mgr, settings)
    else:
        raise ValueError("%s is not a valid alarm type!".format(kind))
    def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self.__page_access_token = require_and_remove_key(
            'page_access_token', settings, "'FacebookPage' type alarms.")
        self.__client = None

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))

        # Set Alerts
        self.__monsters = self.create_alert_settings(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__stops = self.create_alert_settings(
            settings.pop('stops', {}), self._defaults['stops'])
        self.__gyms = self.create_alert_settings(
            settings.pop('gyms', {}), self._defaults['gyms'])
        self.__eggs = self.create_alert_settings(
            settings.pop('eggs', {}), self._defaults['eggs'])
        self.__raids = self.create_alert_settings(
            settings.pop('raids', {}), self._defaults['raids'])
        self.__weather = self.create_alert_settings(
            settings.pop('weather', {}), self._defaults['weather'])

        #  Warn user about leftover parameters
        reject_leftover_parameters(
            settings, "Alarm level in FacebookPage alarm.")

        self._log.info("FacebookPage Alarm has been created!")
Exemple #7
0
    def __init__(self, mgr, settings, static_map_key):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self.__api_key = require_and_remove_key('api_key', settings,
                                                "'Slack' type alarms.")
        self.__default_channel = self.channel_format(
            require_and_remove_key('channel', settings,
                                   "'Slack' type alarms."))
        self.__client = None
        self.__channels = {}

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))
        self.__map = settings.pop('map', {})
        self.__static_map_key = static_map_key

        # Optional Alert Parameters
        self.__pokemon = self.create_alert_settings(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__pokestop = self.create_alert_settings(settings.pop('stops', {}),
                                                     self._defaults['stops'])
        self.__gym = self.create_alert_settings(settings.pop('gyms', {}),
                                                self._defaults['gyms'])
        self.__egg = self.create_alert_settings(settings.pop('eggs', {}),
                                                self._defaults['eggs'])
        self.__raid = self.create_alert_settings(settings.pop('raids', {}),
                                                 self._defaults['raids'])
        self.__weather = self.create_alert_settings(
            settings.pop('weather', {}), self._defaults['weather'])
        self.__quests = self.create_alert_settings(settings.pop('quests', {}),
                                                   self._defaults['quests'])
        self.__invasions = self.create_alert_settings(
            settings.pop('invasions', {}), self._defaults['invasions'])

        # Warn user about leftover parameters
        reject_leftover_parameters(settings, "'Alarm level in Slack alarm.")

        self._log.info("Slack Alarm has been created!")
Exemple #8
0
    def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self.__account_sid = require_and_remove_key(
            'account_sid', settings, "'Twilio' type alarms.")
        self.__auth_token = require_and_remove_key(
            'auth_token', settings, "'Twilio' type alarms.")
        self.__from_number = require_and_remove_key(
            'from_number', settings, "'Twilio' type alarms.")
        self.__to_number = require_and_remove_key(
            'to_number', settings, "'Twilio' type alarms.")
        self.__client = None

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))

        # Optional Alert Parameters
        self.__pokemon = self.set_alert(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__pokestop = self.set_alert(
            settings.pop('stops', {}), self._defaults['stops'])
        self.__gym = self.set_alert(
            settings.pop('gyms', {}), self._defaults['gyms'])
        self.__egg = self.set_alert(
            settings.pop('eggs', {}), self._defaults['eggs'])
        self.__raid = self.set_alert(
            settings.pop('raids', {}), self._defaults['raids'])
        self.__weather = self.set_alert(
            settings.pop('weather', {}), self._defaults['weather'])
        self.__quest = self.set_alert(
            settings.pop('quests', {}), self._defaults['quests'])
        self.__invasion = self.set_alert(
            settings.pop('invasions', {}), self._defaults['invasions'])

        # Warn user about leftover parameters
        reject_leftover_parameters(settings, "'Alarm level in Twilio alarm.")

        self._log.info("Twilio Alarm has been created!")
Exemple #9
0
    def __init__(self, mgr, settings):
        self._log = mgr.get_child_logger("alarms")

        # Required Parameters
        self.__token = require_and_remove_key(
            'access_token', settings, "'Twitter' type alarms.")
        self.__token_key = require_and_remove_key(
            'access_secret', settings, "'Twitter' type alarms.")
        self.__con_secret = require_and_remove_key(
            'consumer_key', settings, "'Twitter' type alarms.")
        self.__con_secret_key = require_and_remove_key(
            'consumer_secret', settings, "'Twitter' type alarms.")
        self.__client = None

        # Optional Alarm Parameters
        self.__startup_message = parse_boolean(
            settings.pop('startup_message', "True"))

        # Optional Alert Parameters
        self.__pokemon = self.create_alert_settings(
            settings.pop('monsters', {}), self._defaults['monsters'])
        self.__pokestop = self.create_alert_settings(
            settings.pop('stops', {}), self._defaults['stops'])
        self.__gym = self.create_alert_settings(
            settings.pop('gyms', {}), self._defaults['gyms'])
        self.__egg = self.create_alert_settings(
            settings.pop('eggs', {}), self._defaults['eggs'])
        self.__raid = self.create_alert_settings(
            settings.pop('raids', {}), self._defaults['raids'])
        self.__weather = self.create_alert_settings(
            settings.pop('weather', {}), self._defaults['weather'])

        # Warn user about leftover parameters
        reject_leftover_parameters(settings, "'Alarm level in Twitter alarm.")

        self._log.info("Twitter Alarm has been created!")