priv_curl = &$curl;*/ //Connect to Servers $freenode->connect('irc.freenode.org', 6667, $irc_user, ($irc_pass != '' ) ? $irc_pass : NULL ); $wikimedia->connect ( 'browne.wikimedia.org', 6667, $irc_user ); //Join Channels $freenode->join( '##Until_It_Sleeps' ); $wikimedia->join ( '#en.wikipedia' ); /* $watchlist = $index->getcontent( 'User:Until_It_Sleeps/watchlist.js' ); $watchlist = explode( '\n', $watchlist ); var_dump($watchlist); $watchlist['custom'] = 'Wikipedia:Sandbox';*/ //$watchlist = explode( "\n", $watchlist ); $write = NULL; $except = NULL; //Main Bot Loop do { //Get the Wikimedia IRC Line $ircline1 = $wikimedia->read(); //We have to set the read array for the socket_select call every time becuase the function changes it $read = array ( $freenode->sock ); //Is there anything new on freenode?, if not lets not wait around for it if ( socket_select( $read, $write, $except, 0 )){ $ircline2 = $freenode->read(); $ex2 = explode( ' ', $ircline2 ); if ($ex2 [0] == 'PING') { $freenode->pong('irc.freenode.net'); //$freenode->say( '##nnbot', 'PONG SENT!'); echo "Answerered Freenode Ping \n\n\n\n\n"; }/* elseif ( urlencode($ex2[3]) === '%3A%21quit%0D%0A' ) { $freenode->quit('I was told to leave :('); die( 'Told to quit by IRC user'); }*/ } //Play ping pong to stay connected $ex1 = explode( ' ', $ircline1 ); if ($ex1 [0] == 'PING') { $wikimedia->pong('browne.wikimedia.org'); echo "Answerered Wikimedia Ping \n"; } //These next two lines stolen from ClueBot, thanks cobi :D $parsedline = str_replace ( array('\n', '\r', '\002'), '', $ircline1 ); $parsedline = preg_split ( '%\003(\d\d?(,\d\d?)?)?%', $parsedline ); if ( isset($parsedline[6]) ) { foreach ( $watchlist as $watchlist_item ) { if ( $watchlist_item == $parsedline[2] ) { $freenode->say( '##Until_It_Sleeps', "NEW EDIT: [[{$parsedline[2]}]] {$parsedline[4]} {$parsedline[6]} * {$parsedline[10]} * {$parsedline[13]} {$parsedline[14]}" ); $freenode->say( '##Until_It_Sleeps', 'Link to Current Version: http://en.wikipedia.org/w/index.php?title=' . urlencode($parsedline[2]) . '&diff=cur&oldid=prev' ); echo 'Sent Stalked Edit' . "\n"; } } //echo 'test'; //var_dump($parsedline); } /* str_replace( ':', '', $ex2[1] ); if ( $ex2[1] == '!quit' ) { $freenode->quit('Disconnecting from user command'); $wikimedia->quit('Disconnecting'); die('Told to quit by IRC User'); }*/ } while ( $ircline1 ); ?>