Added lot of junk laying around on harvie.cz
[mirrors/Programs.git] / php / skripty / irc_bot.php
1 <?php
2 //HARVESTER IRC BOT
3 //by: Harvie 2oo7
4
5 //Settings:
6 $server = "irc.2600.net";
7 $port = "6667";
8 $channel = "#soom";
9 $nick = "Harvester";
10 $jokefile = "jokes.txt";
11 error_reporting(0);
12 error_reporting(E_ERROR);
13
14 //Functions:
15 function irc_connect( $fp, $nick, $channel, $joinwait ) {
16 fwrite($fp, "USER USER $nick # # :$nick\n");
17 fwrite($fp, "NICK $nick\n");
18 //sleep($joinwait);
19 fwrite($fp, "JOIN $channel\n");
20 }
21
22 function irc_say( $fp, $msg, $nick, $rcpto ) {
23 //fwrite($fp, ":$nick!~Harvie@r3ax157.net.upc.cz PRIVMSG $rcpto :$msg\n");
24 fwrite($fp, ": PRIVMSG $rcpto :$msg\n");
25 }
26
27 //Code:
28 //Init:
29 $jokes = file($jokefile);
30 $spam = "";
31 $rfile = "";
32 $sfp = fsockopen ($server, $port, &$errno, &$errstr, 5);
33 irc_connect( $sfp, $nick, $channel, 0 );
34
35 $home_channel = $channel;
36
37 while(!fwrite($sfp, "")) {
38
39 fwrite($sfp, "JOIN $channel\n");
40
41 //ReadLine from IRC Server
42 $line = (fgets($sfp));
43 echo($line);
44
45 //IRC Sever PING/PONG Response
46 $words = (explode(" ", $line));
47 if ($words[0] == "PING") {
48 fwrite($sfp, "PONG ".trim($words[1])."\n");
49 echo("-PONG ".trim($words[1])."\n");
50 }
51
52 //Prijem pozvanky
53 if ( ( trim($words[1]) == "INVITE" ) && ( substr(trim($words[3]), 0, 2) == ":#" ) ) {
54 $channel = substr(trim($words[3]), 1);
55 fwrite($sfp, "JOIN $channel\n");
56 irc_say( $sfp, "Hello", $nick, $channel );
57 echo("-JOINED $channel\n");
58 }
59
60 $commands = (explode(":", $line));
61
62 //Harvester - Posle vizitku
63 if ( trim($commands[2]) == "Harvester") {
64 irc_say( $sfp, ("Ahoj lidi, ja jsem Harvieho bot. Random#: ".rand(0,10)), $nick, $channel );
65 echo("-VISITCARD"."\n");
66 }
67
68 //hspam:Message - Posle zpravu pri kazde prijate
69 if ( trim($commands[2]) == "hspam") {
70 $spam = trim($commands[3]);
71 echo("-SPAM: ".trim($commands[3])."\n");
72 }
73
74 if ( $spam != "" ) {
75 irc_say( $sfp, $spam, $nick, $channel );
76 //echo("-SAID: ".trim($commands[3])."\n");
77 }
78
79 //hplay:file - Prehraje soubor
80 if ( trim($commands[2]) == "hplay") {
81 if ( is_file( trim($commands[3]) ) ) {
82 $rfile = fopen( trim($commands[3]), "r");
83 }
84 else
85 {
86 fclose($rfile);
87 $rfile = "";
88 }
89 echo("-FILE: ".trim($commands[3])."\n");
90 }
91
92 if ( $rfile != "" ) {
93 irc_say( $sfp, fgetss($rfile), $nick, $channel );
94 }
95
96 //hhelp - vypise tuto napovedu
97 if ( trim($commands[2]) == "hhelp") {
98 irc_say( $sfp, "Ja jsem Harvester - vice info na: http://ircbot.wz.cz/", $nick, $channel );
99 /*
100 irc_say( $sfp, "Harvester - Posle vizitku", $nick, $channel );
101 irc_say( $sfp, "hhelp - vypise tuto napovedu", $nick, $channel );
102 irc_say( $sfp, "hsay:Message - Posle zpravu", $nick, $channel );
103 irc_say( $sfp, "hpsay:to:Message - Posle soukromou zpravu kanalu nebo osobe", $nick, $channel );
104 irc_say( $sfp, "hdo:Command - Posle serveru prikaz", $nick, $channel );
105 irc_say( $sfp, "hmove:Channel - Pripoji do kanalu / Zmeni aktivni kanal", $nick, $channel );
106 irc_say( $sfp, "/invite Harvester #channel - Pozve a pripoji bota do kanalu", $nick, $channel );
107 irc_say( $sfp, "hpart:Channel - Odpoji se z kanalu", $nick, $channel );
108 irc_say( $sfp, "hjoke - Posle \"nahodny\" vtip", $nick, $channel );
109 */
110 echo("-HELPED"."\n");
111 }
112
113 //hsay:Message - Posle zpravu
114 if ( trim($commands[2]) == "hsay") {
115 irc_say( $sfp, trim($commands[3]), $nick, $channel );
116 echo("-SAID: ".trim($commands[3])."\n");
117 }
118
119 //hpsay:to:Message - Posle soukromou zpravu kanalu nebo osobe
120 if ( trim($commands[2]) == "hpsay") {
121 irc_say( $sfp, trim($commands[4]), $nick, trim($commands[3]) );
122 echo("-SAID: ".trim($commands[4])." -- To: ".trim($commands[3])."\n");
123 }
124
125 //hcol:to:Message - Posle kolizni zpravu kanalu nebo osobe
126 if ( trim($commands[2]) == "hcol") {
127 irc_say( $sfp, trim($commands[4]), trim($commands[3]), $channel );
128 echo("-COLIDED: ".trim($commands[4])." To: ".trim($commands[3])."\n");
129 }
130
131 //hdo:Command - Posle serveru prikaz
132 if ( trim($commands[2]) == "hdo") {
133 $hdo = explode("hdo:", $line);
134 fwrite( $sfp, trim($hdo[1])."\n" );
135 echo("-DONE: ".trim($hdo[1])."\n");
136 }
137
138 //hpart:Channel - Odpoji se z kanalu
139 if ( trim($commands[2]) == "hpart") {
140 $hdo = explode("hpart:", $line);
141 if ( trim($hdo[1]) != trim($home_channel) ) {
142 fwrite( $sfp, "PART :".trim($hdo[1])."\n" );
143 echo("-PARTED: ".trim($hdo[1])."\n");
144 }
145 }
146
147 //hmove:Channel - Zmeni aktivni kanal
148 if ( trim($commands[2]) == "hmove") {
149 $hdo = explode("hmove:", $line);
150 if ( trim($hdo[1]) != trim($home_channel) ) {
151 $home_channel = trim($hdo[1]);
152 fwrite($sfp, "JOIN $home_channel\n");
153 irc_say( $sfp, "Hi, im here...", $nick, $home_channel );
154 echo("-ACTIVATED: ".trim($hdo[1])."\n");
155 }
156 }
157
158 //htime - udaje o casu
159 if ( trim($commands[2]) == "htime") {
160 $msg = implode("-", getdate(time()));
161 irc_say( $sfp, trim($msg), $nick, $channel );
162 echo("-TIMED"."\n");
163 }
164
165 //hjoke - Posle nahodny vtip
166 if ( trim($commands[2]) == "hjoke") {
167 $joke = ($jokes[ rand(0, (sizeof($jokes)-1) ) ]);
168 //$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";
169 irc_say( $sfp, trim($joke), $nick, $channel );
170 echo("-JOKED"."\n");
171 }
172
173 //Navrat do domaciho kanalu
174 $channel = $home_channel;
175
176 }
177
178 echo("-Connection lost.")
179
180 ?>
This page took 0.414518 seconds and 4 git commands to generate.