def start(self): # Initialize data store DatastoreController().set_driver(self.config.get('datastore')) Logger.set_loglevel(self.config.get('log.level')) for plugin in self.config.get('coreplugins'): Logger.info("Loading core plugin '%s'" % plugin) self.plugincontroller.load_plugin(plugin, 'core') for plugin in self.config.get('plugins'): Logger.info("Loading plugin '%s'" % plugin) self.plugincontroller.load_plugin(plugin) if len(self.config.get('ircnets')) == 0: raise Exception("There has to be at least one ircnet to connect to") for net in self.config.get('ircnets'): irc = IRCController(self.eventcontroller) irc.set_configuration(net) Logger.info("Connecting to %s..." % irc.get_ircnet_name()) irc.connect() self.ircnetscontroller.add_ircnet(irc.get_ircnet_name(), irc)
def __init__(self): self.event = EventController() self.plugin = PluginController() # Make sure the simulated user have access to all commands ConfigController().get('masters').append('*!*@*') ConfigController().set('irc.rate_limit_wait_time', 0) # Configuration # This must match the values in SimulatedIRCNetworkClient simulated_ircnet = { "ircnet": "SimuNet", "nick": "NeuBot", "altnicks": [], "name": "Simulated Bot", "ident": "neubot", "servers": [ ("irc.example.org", 6667, False, False), ], "channels": [ ("#simulator", None), ] } # Initiate the IRCController and tell it to use our fake clientclass # so that it won't actually connect to a real server irc = IRCController(self.event, clientclass = SimulatedIRCNetworkClient) irc.set_configuration(simulated_ircnet) # Register server with ircnetscontroller IRCNetsController().add_ircnet(irc.get_ircnet_name(), irc) self._irc = irc # Initialize datastore DatastoreController().set_driver("data/simulator.db")