def set(self, opt, val): if opt == 'cmd prefix': self.settings[opt] = val elif opt == 'verbose': val = int(val) if val in range(Log.log_lvl.NONE, Log.log_lvl.DEBUG + 1): self.settings[opt] = val Log.verbosity = self.settings[opt] else: return False elif opt == 'log file': self.settings[opt] = val Log.setLogFile(self.settings[opt]) else: return False return True
def __init__(self, settings, plugins): """ """ self.settings = { 'nickname':settings.get('nickname', 'failbot'), 'password':settings['password'], 'realname':settings.get('realname', 'failbot'), 'reconnect interval':settings.get('reconnect interval', 60), 'quit message':settings.get('quit message', 'I\'m out.'), 'verbose':settings.get('verbose', Log.log_lvl.ERROR), 'log file':settings.get('log file', None), 'server':settings['server'], 'port':settings['port'], 'channels':settings['channels'], 'cmd prefix':settings.get('cmd prefix', '!'), } Log.verbosity = self.settings['verbose'] Log.setLogFile(self.settings.get('log file', None)) Log.log(Log.log_lvl.DEBUG, 'Settings loaded: %s' % self.settings) ircbot.SingleServerIRCBot.__init__(self, server_list = [( self.settings['server'], self.settings['port'] )], nickname = self.settings['nickname'], realname = self.settings['realname'], reconnection_interval = self.settings['reconnect interval'] ) Log.log(Log.log_lvl.INFO, 'Connection to %s:%d' % (settings['server'], settings['port'])) # load some plugins for f in [ path.splitext(f)[0] for f in listdir(path.dirname(path.realpath(__file__)) + '/plugins') if f.endswith('.py') and f != '__init__.py' and f != 'plugbase.py' ]: if self.load_plugin(f): if f in plugins: self.enable_plugin(f) Log.log(Log.log_lvl.INFO, "\n".join([p[0] + (' [enabled]' if p[1] else ' [disabled]') for p in self.list_plugins()]))