def _configure(self, config): self._daysUntilBoot = int(config.setdefault('boot_after_days', 180)) safeRanks = stringToList( config.setdefault('safe_ranks', "rank1, rank2")) safeTitles = stringToList( config.setdefault('safe_titles', "DO NOT DELETE, " "DO NOT ERASE")) self._safeRanks = map(_rankTransform, safeRanks) self._safeTitles = map(_rankTransform, safeTitles) self._bootMessage = toTypeOrNone( config.setdefault('boot_message', "none")) self._simulate = stringToBool(config.setdefault('simulate', "false")) self._immediate = stringToBool( config.setdefault('run_immediately', "false")) try: self._bootFrequencyDays = int( config.setdefault('boot_every_n_days', 1)) except ValueError: raise FatalError("ClanRankModule: boot_every_n_days must " "be integral") rules = config.setdefault( 'rules', { 'Normal Member': { 'demotion_allowed': "false", 'min_karma': 0, 'min_days_until_next_promotion': 7, 'min_days_in_clan': 0, 'next_rank': 'Rank2' }, 'Rank2': { 'demotion_allowed': "true", 'min_karma': 0, 'min_days_until_next_promotion': 0, 'min_days_in_clan': 0, 'next_rank': "none" } }) for rule in rules.values(): rule.setdefault('demotion_allowed', True) rule.setdefault('min_karma', 0) rule.setdefault('min_days_until_next_promotion', 0) rule.setdefault('min_days_in_clan', 0) rule.setdefault('next_rank', "none") self._ruleConfig = rules
def _configure(self, config): """ Configuration also requests a channel name """ super(MessageManager, self)._configure(config) # set to channel in config self._channelName = config.setdefault('channel', self.chatManager.currentChannel) self._showChatHelpMessage = stringToBool( config.setdefault('show_chat_help_message', "True"))
def _configure(self, config): """Configuration. In addition to the BaseManager config, the accept_private_messages option is added for the BaseChatManager. """ super(BaseChatManager, self)._configure(config) try: self._respondToWhisper = stringToBool( config.setdefault('accept_private_messages', 'true')) except KeyError: raise Exception("Invalid option to accept_private_messages " "for manager {}".format(self.identity))
def _configure(self, config): try: self._checkFrequency = int( config.setdefault('fax_check_interval', 15)) self._abortTime = int(config.setdefault('faxbot_timeout', 90)) self.timeout = int(config.setdefault('url_timeout', 15)) self.faxbot_uid = int( config.setdefault('faxbot_id_number',"2194132)) self.fax_lisw_url = config.setdefault('fax_list_url', "http://goo.gl/Q352Q") self._announce = stringToBool(config.setdefault('announce', 'false')) self._lite = stringToBool(config.setdefault('allow_requests', 'true')) except ValueError: raise Exception("Fax Module config error: " "fax_check_interval, faxbot_timeout, " "url_timeout, faxbot_id_number must be integral") self._alias = config.setdefault('alias', {'lobsterfrogman': 'lfm'})
def _configure(self, config): try: self._checkFrequency = int( config.setdefault('fax_check_interval', 15)) self._abortTime = int(config.setdefault('faxbot_timeout', 90)) self.timeout = int(config.setdefault('url_timeout', 15)) self.faxbot_uid = int( config.setdefault('faxbot_id_number', 2194132)) self.fax_list_url = config.setdefault('fax_list_url', "http://goo.gl/Q352Q") self._announce = stringToBool(config.setdefault('announce', 'false')) self._lite = stringToBool(config.setdefault('allow_requests', 'true')) except ValueError: raise Exception("Fax Module config error: " "fax_check_interval, faxbot_timeout, " "url_timeout, faxbot_id_number must be integral") self._alias = config.setdefault('alias', {'lobsterfrogman': 'lfm'})
def __init__(self, parent, args): super(_LuciferHealer, self).__init__(parent, args) self.extHealer = toTypeOrNone( args.setdefault('external_healer', 'none'), str) try: self.maxFull = toTypeOrNone(args.setdefault('max_full', 'none'), int) except ValueError: raise FatalError("Invalid max_full value for Lucifer: {}" .format(args['max_full'])) self.buyFromMall = stringToBool(args.setdefault('use_mall', 'true'))
def __init__(self, parent, args): super(_LuciferHealer, self).__init__(parent, args) self.extHealer = toTypeOrNone( args.setdefault('external_healer', 'none'), str) try: self.maxFull = toTypeOrNone(args.setdefault('max_full', 'none'), int) except ValueError: raise FatalError("Invalid max_full value for Lucifer: {}".format( args['max_full'])) self.buyFromMall = stringToBool(args.setdefault('use_mall', 'true'))
def _configure(self, config): try: self.numWarnings = int(config.setdefault('num_warnings', 4)) self.checkDelay = int(config.setdefault('monitor_interval', 55)) except ValueError: raise Exception("Error in module config: (HoboChatMonitorModule) " "num_warnings, monitor_interval must be integral") try: self._sendEmpty = stringToBool( config.setdefault('send_empty', 'false')) except ValueError: raise Exception("Error in module config: (HoboChatMonitorModule) " "send_empty must be boolean")
def _configure(self, config): try: self.numWarnings = int(config.setdefault('num_warnings', 4)) self.checkDelay = int(config.setdefault('monitor_interval', 55)) except ValueError: raise Exception( "Error in module config: (HoboChatMonitorModule) " "num_warnings, monitor_interval must be integral") try: self._sendEmpty = stringToBool( config.setdefault('send_empty', 'false')) except ValueError: raise Exception( "Error in module config: (HoboChatMonitorModule) " "send_empty must be boolean")
def _configure(self, config): self._vip = stringToBool(config.setdefault('vip', 'true')) self._clovers = stringToBool(config.setdefault('clovers', 'true'))
def _finishInitialization(self): # get list of clan members (both in whitelist and roster) self.log("Initializing ranks...") r1 = ClanWhitelistRequest(self.session) d1 = self.tryRequest(r1) self._ranks = { _rankTransform(rank['rankName']): rank for rank in d1['ranks'] } r2 = StatusRequest(self.session) d2 = self.tryRequest(r2) self._rolloverTime = int(d2['rollover']) # load promotion rules self._promotionRules = {} for rankname, rule in self._ruleConfig.items(): key = _rankTransform(rankname) nextRankName = toTypeOrNone(rule['next_rank']) nextkey = _rankTransform(nextRankName) if nextRankName else None nextRankId = self._ranks.get(nextkey, {}).get('rankId') if key not in self._ranks: raise FatalError( "Invalid clan rank: {} (available ranks: {})".format( key, ", ".join(self._ranks.keys()))) if nextkey is not None and nextkey not in self._ranks: raise FatalError( "Invalid clan rank: {} (available ranks: {})".format( nextkey, ", ".join(self._ranks.keys()))) try: self._promotionRules[self._ranks[key]['rankId']] = ({ 'demotionAllowed': stringToBool(rule['demotion_allowed']), 'minKarma': int(rule['min_karma']), 'minDaysBeforePromotion': int(rule['min_days_until_next_promotion']), 'minDaysInClan': int(rule['min_days_in_clan']), 'nextRankId': nextRankId, 'rankName': rankname }) except ValueError: raise "ClanRankModule: error parsing rank {}".format(rankname) # pick a random time to run today assumedExecTime = 7200 latestPossibleExecTime = self._rolloverTime - assumedExecTime if time.time() < self._lastRun: self.log("Already performed ranking today.") elif time.time() > latestPossibleExecTime: self.log("Too late to run rankings today.") else: if self._immediate: self._execTime = int(time.time()) + 15 else: self._execTime = random.randint(int(time.time()), latestPossibleExecTime) self.log("Running rankings in {} minutes.".format( int((self._execTime - time.time()) / 60)))
def _configure(self, config): self._announce = stringToBool(config.setdefault('announce', "True"))