Commit | Line | Data |
---|---|---|
54f4a22e D |
1 | <?php\r |
2 | \r | |
3 | \r | |
4 | //deb("FROM IPC CLIENT:\n$data\n-----");\r | |
5 | $d = json_decode($data, 1);\r | |
6 | //deb('Processed data: '.print_r($d, 1));\r | |
7 | switch($d['method']){\r | |
8 | case 'addbuffer':\r | |
9 | $buffer[] = json_encode($d['args']);\r | |
10 | break;\r | |
11 | \r | |
12 | case 'read':\r | |
13 | // The 'read' command adds this web client to the read buffer queue\r | |
14 | if(!in_array($cl, $ipc_read)) $ipc_read[] = $cl;\r | |
15 | break;\r | |
16 | \r | |
17 | case 'quit':\r | |
18 | deb('Quitting');\r | |
19 | $bot = null;\r | |
20 | break;\r | |
21 | \r | |
22 | case 'connect':\r | |
23 | $args = $d['args'];\r | |
24 | deb('Connecting with: '.print_r($args, 1));\r | |
25 | if(!isset($args['server'], $args['port'], $args['ssl'], $args['nick'])){\r | |
26 | $buffer[] = json_encode(array('error'=>'invalid_args'));\r | |
27 | break;\r | |
28 | } else {\r | |
29 | $kiwi = null;\r | |
30 | /*if($config['memcache_use']){\r | |
31 | $conf_key = 'kiwi_conf_'.$args['server'];\r | |
32 | $conf = (int)GLOB::$mc->get($conf_key);\r | |
33 | if($conf){\r | |
34 | $c = @unserialize($conf);\r | |
35 | if($c){\r | |
36 | //$hostname = GET HOSTNAME HERE\r | |
37 | //$ip = GET IP HERE\r | |
38 | $kiwi = "WEBIRC {$c['password']} {$c['user']} $hostname $ip";\r | |
39 | }\r | |
40 | }\r | |
41 | }*/\r | |
42 | deb("ARGSLOL: ".print_r($app_args, 1));\r | |
43 | $opts = array();\r | |
44 | if(isset($app_args['remote_host'])) $opts['ident'] = md5($app_args['remote_host']);\r | |
45 | \r | |
46 | $bot = new IRCConnection("irc://{$args['nick']}@{$args['server']}:{$args['port']}", $kiwi, $opts);\r | |
47 | if(isset($args['channels'])) $bot->chans = explode(',', $args['channels']);\r | |
48 | if($bot->connected){\r | |
49 | // We're.. connected!\r | |
50 | } else {\r | |
51 | $buffer[] = json_encode(array('event'=>'server_connect', 'connected'=>false, 'host'=>$args['server']));\r | |
52 | unset($bot);\r | |
53 | }\r | |
54 | }\r | |
55 | break;\r | |
56 | \r | |
57 | case 'join':\r | |
58 | $args = $d['args'];\r | |
59 | if(!isset($args['channel'])){\r | |
60 | $buffer[] = json_encode(array('error'=>'invalid_args'));\r | |
61 | break;\r | |
62 | } else {\r | |
63 | $chans = explode(',', $args['channel']);\r | |
64 | foreach($chans as $c)\r | |
65 | $bot->Join($c);\r | |
66 | }\r | |
67 | break;\r | |
68 | \r | |
69 | case 'msg':\r | |
70 | $args = $d['args'];\r | |
71 | deb('msg with: '.print_r($args, 1));\r | |
72 | if(!isset($args['target'],$args['msg'])){\r | |
73 | $buffer[] = json_encode(array('error'=>'invalid_args'));\r | |
74 | break;\r | |
75 | } else {\r | |
76 | $bot->SendMessage($args['target'], $args['msg']);\r | |
77 | $buffer[] = json_encode($data);\r | |
78 | }\r | |
79 | break;\r | |
80 | \r | |
81 | case 'action':\r | |
82 | $args = $d['args'];\r | |
83 | deb('action with: '.print_r($args, 1));\r | |
84 | if(!isset($args['target'],$args['msg'])){\r | |
85 | $buffer[] = json_encode(array('error'=>'invalid_args'));\r | |
86 | break;\r | |
87 | } else {\r | |
88 | $bot->SendMessage($args['target'], chr(1)."ACTION {$args['msg']}".chr(1));\r | |
89 | $buffer[] = json_encode($data);\r | |
90 | }\r | |
91 | break;\r | |
92 | \r | |
93 | case 'raw':\r | |
94 | $args = $d['args'];\r | |
95 | if(!isset($args['data'])){\r | |
96 | $buffer[] = json_encode(array('error'=>'invalid_args'));\r | |
97 | break;\r | |
98 | } else {\r | |
99 | $bot->stream->Write("{$args['data']}\r\n");\r | |
100 | //$bot->SendMessage($args['target'], $args['msg']);\r | |
101 | }\r | |
102 | break;\r | |
103 | \r | |
104 | \r | |
105 | case 'debug':\r | |
106 | $send_debug = !$send_debug;\r | |
107 | $data = array(\r | |
108 | 'event' => 'debug',\r | |
109 | 'msg' => 'Debugging '.($send_debug)?'on':'off',\r | |
110 | 'time' => time()\r | |
111 | );\r | |
112 | $buffer[] = json_encode($data);\r | |
113 | break;\r | |
114 | \r | |
115 | \r | |
116 | case 'sync':\r | |
117 | // Clear the current buffer as we're gonna send only scrollback\r | |
118 | $buffer = array();\r | |
119 | \r | |
120 | // Send the settings and channels over\r | |
121 | if($bot){\r | |
122 | $data = array('event'=>'sync');\r | |
123 | $data['nick'] = $bot->nick;\r | |
124 | $data['tabviews'] = array();\r | |
125 | if($bot->chanlist){\r | |
126 | foreach($bot->chanlist as $chan_name => $chan){\r | |
127 | $data['tabviews'][] = array('name'=>$chan_name, 'userlist'=>$chan['userlist']);\r | |
128 | }\r | |
129 | $buffer[] = json_encode($data);\r | |
130 | }\r | |
131 | \r | |
132 | // Send the message scrollback\r | |
133 | foreach($bot->scrollback as $line) $buffer[] = json_encode($line);\r | |
134 | //$bot->scrollback = array();\r | |
135 | } else {\r | |
136 | $data = array('error'=>'no_data');\r | |
137 | }\r | |
138 | \r | |
139 | $buffer[] = json_encode($data);\r | |
140 | \r | |
141 | break;\r | |
142 | } |