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!")
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!")
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!")
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!")
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!")
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!")
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!")