-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbot.php
executable file
·113 lines (107 loc) · 3.08 KB
/
bot.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/php -q
<?php
require_once("classes/bot.class.php");
require_once("classes/vote.class.php");
$bot = new Bot();
$vote = new voting('45');
//settings
include("config.php");
//init
$bot->parent = posix_getpid();
$bot->init();
//fork
if($bot->pid){
$bot->addHook('!help','hooks/help.hook.php', TRUE);
$bot->addHook('penis','$this->privmsg($channel, "YES");');
$bot->addHook('pump','$this->privmsg($channel, "YES");');
//admin
$bot->addHook('!join','hooks/admin.hook.php', TRUE);
$bot->addHook('!part','hooks/admin.hook.php', TRUE);
$bot->addHook('!nick','hooks/admin.hook.php', TRUE);
$bot->addHook('!restart','hooks/admin.hook.php', TRUE);
$bot->addHook('!votestop','hooks/admin.hook.php', TRUE);
//fun
$bot->addHook('same','$this->privmsg($channel, "resame");');
$bot->addHook('!figlet','hooks/figlet.hook.php',TRUE);
$bot->addHook('!cowsay','hooks/cowsay.hook.php', TRUE);
$bot->addHook('!hook','hooks/hook.hook.php', TRUE);
$bot->addHook('!ascii','hooks/ascii.hook.php',TRUE);
$bot->addHook('h','$this->privmsg($channel, "h");');
$bot->addHook('!tweet','hooks/twitter.hook.php', TRUE);
$bot->addRegexHook("/.*twitter.*/", '$this->privmsg($channel, "twitter sucks");');
//vote
$bot->addHook('!vote','hooks/vote.hook.php',TRUE);
//loop
$bot->addLoopItem('include("loops/vote.loop.php");');
$bot->connect();
} else {
sleep(3);
while(1){
if(!$cf['input'])
break;
$stat = shell_exec("ps -p {$bot->parent} | grep bot.php");
if(empty($stat)){
$bot->send("QUIT :ERROR:Parent died\n");
exit();
}
$in = fread(STDIN, 1024);
if($in){
$del = array("\r\n", "\n", "\r");
$in = str_replace($del, "", $in);
$in = $in . "\r\n";
if(substr($in, 0, 1) == "/"){
$in = substr($in, 1);
$ex = explode(" ", $in);
switch($ex['0']){
case 'quit';
$message = substr($in, 5);
$bot->send("QUIT :$message");
break;
case 'set';
$in = substr($in, 4);
$_in = explode(" ", $in);
switch($_in['0']){
case 'chan';
$send_channel = trim($_in[1]);
echo "Channel set to $send_channel\n";
break;
}
break;
case 'nick';
$bot->send("NICK $ex[1]");
break;
case 'raw';
$message = substr($in, 4);
$bot->send($message);
break;
case 'msg';
$who = $ex['1'];
$ln = strlen($who)+5;
$message = substr($in, $ln);
$bot->send("PRIVMSG $who :$message");
break;
case 'help':
echo <<<EOM
Slowbot help:
/set chan <#chan> : set channel to send text to
/nick <nick>: change nick
/msg <who> <msg> : private message someone
/quit : quit
EOM;
break;
default:
echo "Unknown command: $ex[0]";
}
} else {
if(isset($send_channel)){
$bot->send("PRIVMSG $send_channel :$in", FALSE);
} else {
echo "No channel selected! Use /set chan <#channel> to select.\n";
}
}
}
usleep(700);
}
exit();
}
?>