--- /dev/null
+<?php\r
+//HARVESTER IRC BOT\r
+//by: Harvie 2oo7\r
+\r
+//Settings:\r
+$server = "irc.2600.net";\r
+$port = "6667";\r
+$channel = "#soom";\r
+$nick = "Harvester";\r
+$jokefile = "jokes.txt";\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
+$sfp = fsockopen ($server, $port, &$errno, &$errstr, 5);\r
+irc_connect( $sfp, $nick, $channel, 0 );\r
+\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
+ echo($line);\r
+ \r
+ //IRC Sever PING/PONG Response\r
+ $words = (explode(" ", $line));\r
+ if ($words[0] == "PING") {\r
+ fwrite($sfp, "PONG ".trim($words[1])."\n");\r
+ echo("-PONG ".trim($words[1])."\n");\r
+ }\r
+ \r
+ //Prijem pozvanky\r
+ if ( ( trim($words[1]) == "INVITE" ) && ( substr(trim($words[3]), 0, 2) == ":#" ) ) {\r
+ $channel = substr(trim($words[3]), 1);\r
+ fwrite($sfp, "JOIN $channel\n");\r
+ irc_say( $sfp, "Hello", $nick, $channel );\r
+ echo("-JOINED $channel\n");\r
+ }\r
+ \r
+ $commands = (explode(":", $line));\r
+ \r
+ //Harvester - Posle vizitku\r
+ if ( trim($commands[2]) == "Harvester") {\r
+ irc_say( $sfp, ("Ahoj lidi, ja jsem Harvieho bot. Random#: ".rand(0,10)), $nick, $channel );\r
+ echo("-VISITCARD"."\n");\r
+ }\r
+ \r
+ //hspam:Message - Posle zpravu pri kazde prijate\r
+ if ( trim($commands[2]) == "hspam") {\r
+ $spam = trim($commands[3]);\r
+ echo("-SPAM: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ if ( $spam != "" ) {\r
+ irc_say( $sfp, $spam, $nick, $channel );\r
+ //echo("-SAID: ".trim($commands[3])."\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, "Ja jsem Harvester - vice info na: http://ircbot.wz.cz/", $nick, $channel );\r
+ /*\r
+ irc_say( $sfp, "Harvester - Posle vizitku", $nick, $channel );\r
+ irc_say( $sfp, "hhelp - vypise tuto napovedu", $nick, $channel );\r
+ irc_say( $sfp, "hsay:Message - Posle zpravu", $nick, $channel );\r
+ irc_say( $sfp, "hpsay:to:Message - Posle soukromou zpravu kanalu nebo osobe", $nick, $channel );\r
+ irc_say( $sfp, "hdo:Command - Posle serveru prikaz", $nick, $channel );\r
+ irc_say( $sfp, "hmove:Channel - Pripoji do kanalu / Zmeni aktivni kanal", $nick, $channel );\r
+ irc_say( $sfp, "/invite Harvester #channel - Pozve a pripoji bota do kanalu", $nick, $channel );\r
+ irc_say( $sfp, "hpart:Channel - Odpoji se z kanalu", $nick, $channel );\r
+ irc_say( $sfp, "hjoke - Posle \"nahodny\" vtip", $nick, $channel );\r
+ */\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
+ //hpsay:to:Message - Posle soukromou zpravu kanalu nebo osobe\r
+ if ( trim($commands[2]) == "hpsay") {\r
+ irc_say( $sfp, trim($commands[4]), $nick, trim($commands[3]) );\r
+ echo("-SAID: ".trim($commands[4])." -- To: ".trim($commands[3])."\n");\r
+ }\r
+ \r
+ //hcol:to:Message - Posle kolizni zpravu kanalu nebo osobe\r
+ if ( trim($commands[2]) == "hcol") {\r
+ irc_say( $sfp, trim($commands[4]), trim($commands[3]), $channel );\r
+ echo("-COLIDED: ".trim($commands[4])." To: ".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
+ //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
+ //hjoke - Posle nahodny vtip\r
+ if ( trim($commands[2]) == "hjoke") {\r
+ $joke = ($jokes[ rand(0, (sizeof($jokes)-1) ) ]);\r
+ //$ftip = "Potkaji se dve blondyny a jedna rika te druhe: \"How do you do?\" a ta ji odpovi co? kde ses to naucila? To vis vzdycky pretocim radio doprava a tam mluvi jen anglicky tak se to tak ucim. Potkaji se za 2 tydny a jedna rika druhe How do you do a druha ji odpovi chsrchsrsrshchsrshchs";\r
+ irc_say( $sfp, trim($joke), $nick, $channel );\r
+ echo("-JOKED"."\n");\r
+ }\r
+\r
+ //Navrat do domaciho kanalu\r
+ $channel = $home_channel;\r
+ \r
+}\r
+\r
+echo("-Connection lost.")\r
+\r
+?>\r