public function __construct($argc, $argv) { $this->xbot = new xbot(); // new xbot if ($argc > 1 && $argv[1] == 'debug') { self::$debug = true; } // argc $conf = file_get_contents('github.conf'); self::$config = json_decode($conf, true); if (self::$config == null) { self::debug('failed config parse, you may have comments in it, remove them :)'); die; } // config can't be parsed. self::debug('connecting to mysql (' . self::$config['mysql']['host'] . ':' . self::$config['mysql']['db'] . ')'); self::$db = mysql_connect(self::$config['mysql']['host'], self::$config['mysql']['user'], self::$config['mysql']['pass']); mysql_select_db(self::$config['mysql']['db'], self::$db); // connect to mysql foreach (self::$config['networks'] as $network => $net_data) { self::debug('connecting to (' . $network . ':' . $net_data['port'] . ') as ' . $net_data['nick']); } $this->xbot->connect(self::$config); self::debug('connected to networks'); // connect the bot $this->xbot->timer->add(array('bot', 'listen_data', array($this->xbot)), 5, 0); $this->xbot->timer->add(array('bot', 'get_new_data', array($this->xbot)), self::$config['options']['new_data_interval'], 0); // set up some timers, we only actually go hunting for new data every 30 seconds, then if new data is found its stored // the stored data is checked by listen_data every 5 seconds. We only check every 30 seconds because for huge repos like // rails/rails, which I developed this on it can be quite intensive, and plus the more often we check the quicker // we can run out of api calls (unless you get on the whitelist) $this->xbot->main('bot', 'main'); // boot the main loop w/ a callback*/ }