|
1 <?php |
|
2 |
|
3 eb_hook('event_channel_msg', 'snippets_event_privmsg($chan, $message);'); |
|
4 |
|
5 function snippets_event_privmsg(&$chan, &$message) |
|
6 { |
|
7 if ( preg_match('/^\![\s]*([a-z0-9_-]+)([\s]*\|[\s]*([^ ]+))?$/', $message['message'], $match) ) |
|
8 { |
|
9 $snippet =& $match[1]; |
|
10 if ( @$match[3] === 'me' ) |
|
11 $match[3] = $message['nick']; |
|
12 $target_nick = ( !empty($match[3]) ) ? "{$match[3]}, " : "{$message['nick']}, "; |
|
13 if ( $snippet == 'snippets' ) |
|
14 { |
|
15 // list available snippets |
|
16 $m_et = false; |
|
17 $q = eb_mysql_query('SELECT snippet_code, snippet_channels FROM snippets;'); |
|
18 if ( mysql_num_rows($q) < 1 ) |
|
19 { |
|
20 $chan->msg(eb_censor_words("{$message['nick']}, I couldn't find that snippet (\"$snippet\") in the database."), true); |
|
21 } |
|
22 else |
|
23 { |
|
24 $snippets = array(); |
|
25 while ( $row = mysql_fetch_assoc($q) ) |
|
26 { |
|
27 $channels = explode('|', $row['snippet_channels']); |
|
28 if ( in_array($chan->get_channel_name(), $channels) ) |
|
29 { |
|
30 $snippets[] = $row['snippet_code']; |
|
31 } |
|
32 } |
|
33 $snippets = implode(', ', $snippets); |
|
34 $chan->msg(eb_censor_words("{$message['nick']}, the following snippets are available: $snippets"), true); |
|
35 } |
|
36 @mysql_free_result($q); |
|
37 } |
|
38 else |
|
39 { |
|
40 if ( eval(eb_fetch_hook('snippet_dynamic')) ) |
|
41 { |
|
42 return true; |
|
43 } |
|
44 |
|
45 // Look for the snippet... |
|
46 $q = eb_mysql_query('SELECT snippet_text, snippet_channels FROM snippets WHERE snippet_code = \'' . mysql_real_escape_string($snippet) . '\';'); |
|
47 if ( mysql_num_rows($q) < 1 ) |
|
48 { |
|
49 $chan->msg(eb_censor_words("{$message['nick']}, I couldn't find that snippet (\"$snippet\") in the database."), true); |
|
50 } |
|
51 else |
|
52 { |
|
53 $row = mysql_fetch_assoc($q); |
|
54 $channels = explode('|', $row['snippet_channels']); |
|
55 if ( in_array($chan->get_channel_name(), $channels) ) |
|
56 { |
|
57 $chan->msg(eb_censor_words("{$target_nick}{$row['snippet_text']}"), true); |
|
58 } |
|
59 else |
|
60 { |
|
61 $chan->msg(eb_censor_words("{$message['nick']}, I couldn't find that snippet (\"$snippet\") in the database."), true); |
|
62 } |
|
63 } |
|
64 @mysql_free_result($q); |
|
65 } |
|
66 } |
|
67 } |