Added lot of junk laying around on harvie.cz
[mirrors/Programs.git] / php / skripty / irc_bot.php
diff --git a/php/skripty/irc_bot.php b/php/skripty/irc_bot.php
new file mode 100644 (file)
index 0000000..396a76e
--- /dev/null
@@ -0,0 +1,180 @@
+<?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
This page took 0.140752 seconds and 4 git commands to generate.