function register_all_events($alias, $privmsg = False) { register_event_handler("JOIN", ":" . get_bot_nick() . " INTERNAL :{$alias} event-join %%nick%% %%params%%"); register_event_handler("KICK", ":" . get_bot_nick() . " INTERNAL :{$alias} event-kick %%params%%"); register_event_handler("NICK", ":" . get_bot_nick() . " INTERNAL :{$alias} event-nick %%nick%% %%trailing%%"); register_event_handler("PART", ":" . get_bot_nick() . " INTERNAL :{$alias} event-part %%nick%% %%params%%"); register_event_handler("QUIT", ":" . get_bot_nick() . " INTERNAL :{$alias} event-quit %%nick%%"); if ($privmsg == True) { register_event_handler("PRIVMSG", ":" . get_bot_nick() . " INTERNAL :{$alias} event-privmsg %%nick%% %%dest%% %%trailing%%"); } }
function run_event_registration_test() { global $passed; unset_bucket(TEST_BUCKET); $bucket_index = "<<EXEC_EVENT_HANDLERS>>"; $test_cmd = "PRIVMSG"; $test_data = ":%%nick%% INTERNAL %%dest%% :~event-test %%trailing%%"; $data1 = get_bucket($bucket_index); if (check_handler($bucket_index, $test_cmd, $test_data) == True) { term_echo("run_event_registration_test failed! (1)"); $passed = False; } register_event_handler($test_cmd, $test_data); if (check_handler($bucket_index, $test_cmd, $test_data) == False) { term_echo("run_event_registration_test failed! (2)"); $passed = False; } set_bucket("<<SELF_TRIGGER_EVENTS_FLAG>>", "1"); privmsg("event test message"); sleep(2); $test = get_bucket(TEST_BUCKET); term_echo("*** TEST BUCKET => {$test}"); if ($test != TEST_VALUE) { term_echo("run_event_registration_test failed! (3)"); $passed = False; } unset_bucket(TEST_BUCKET); unset_bucket("<<SELF_TRIGGER_EVENTS_FLAG>>"); delete_event_handler($test_cmd, $test_data); sleep(2); if (check_handler($bucket_index, $test_cmd, $test_data) == True) { term_echo("run_event_registration_test failed! (4)"); $passed = False; } $data2 = get_bucket($bucket_index); if ($data1 != $data2) { term_echo("run_event_registration_test failed! (5)"); $passed = False; } }
init:~soon register-events */ ##################################################################################################### $trailing = trim($argv[1]); $dest = $argv[2]; $nick = $argv[3]; $cmd = $argv[4]; if ($dest != "#irciv") { return; } ini_set("display_errors", "on"); require_once "lib.php"; require_once "soon_lib.php"; require_once "soon_test.php"; if ($trailing == "register-events") { register_event_handler("PRIVMSG", ":%%nick%% INTERNAL %%dest%% :~soon %%trailing%%"); return; } if ($cmd == "INTERNAL") { # PRIVMSG event triggered return; } else { # manually triggered $translations = load_translations(); #var_dump($translations); #translate($translations,"hellox3"); run_tests(); #privmsg($code); return; /*$parts=explode(" ",$trailing); $action=strtolower($parts[0]);
- the bot could keeep track of irc comments and if you type something like "~comment Bytram, i think you're right" the bot could tack it to the end of Bytram's last comment posting - if two people are having an irc discussion about tfa, and they are triggering comment posting, the bot would prolly just treat it like they were replying to each other's comments - if they wanted to start a new thread it might need some kind of separate trigger */ ##################################################################################################### require_once "sn_lib.php"; $trailing = $argv[1]; $dest = $argv[2]; $nick = $argv[3]; $alias = $argv[4]; define("BUCKET_VERIFIER_NICK", "<<verifier_nick>>"); switch ($alias) { case "~sn-internal": register_event_handler("NICK", ":" . get_bot_nick() . " INTERNAL :~verifier-nick-change %%nick%% %%trailing%%"); return; case "~uid": $host = "www.soylentnews.org"; $port = 443; $uri = "/zoo.pl?op=max"; $response = wget($host, $uri, $port, ICEWEASEL_UA); $delim1 = "<p class='bender'>"; $delim2 = "</p>"; $uid = extract_text($response, $delim1, $delim2); if ($uid !== False) { privmsg($uid); } else { var_dump($response); privmsg(" uid: an error occurred"); }
*/ ##################################################################################################### # http://www.mediawiki.org/wiki/Manual:Bots # http://en.wikipedia.org/wiki/Wikipedia:Creating_a_bot # ~wiki edit title|section|text # ~wiki edit title|section| (deletes section) # instead of "~wiki login" & "~wiki get page|section" you just type [[page#section]] to get the page/section ##################################################################################################### require_once "lib.php"; require_once "wiki_lib.php"; $trailing = trim(strip_tags($argv[1])); $dest = $argv[2]; $nick = $argv[3]; $alias = $argv[4]; if ($trailing == "register-events") { register_event_handler("PRIVMSG", ":%%nick%% INTERNAL %%dest%% :~wiki-privmsg %%trailing%%"); return; } if ($alias == "~wiki-privmsg") { if ($dest == "#wiki") { $cmd = ".blockuser"; if (strtolower(substr($trailing, 0, strlen($cmd))) == $cmd) { wiki_blockuser($nick, $trailing); return; } $cmd = ".unblockuser"; if (strtolower(substr($trailing, 0, strlen($cmd))) == $cmd) { wiki_unblockuser($nick, $trailing); return; } $cmd = ".delpage";
##################################################################################################### /* exec:~tell|10|0|0|1|*||||php scripts/tell.php %%trailing%% %%dest%% %%nick%% %%alias%% %%server%% exec:~tell-internal|10|0|0|1|*|INTERNAL|||php scripts/tell.php %%trailing%% %%dest%% %%nick%% %%alias%% %%server%% init:~tell-internal register-events */ ##################################################################################################### date_default_timezone_set("UTC"); require_once "lib.php"; $trailing = trim($argv[1]); $dest = $argv[2]; $nick = strtolower($argv[3]); $alias = $argv[4]; $server = $argv[5]; if ($trailing == "register-events") { register_event_handler("PRIVMSG", ":%%nick%% INTERNAL %%dest%% :~tell-internal %%trailing%%"); return; } if ($alias == "~tell") { if ($trailing == "") { privmsg("syntax: ~tell <nick> <message>"); return; } $parts = explode(" ", $trailing); $target = strtolower($parts[0]); array_shift($parts); $trailing = trim(implode(" ", $parts)); append_array_bucket("TELL_MESSAGES_" . $server . "_" . $target, $target . ", at " . date("Y-m-d H:i:s", microtime(True)) . " (UTC), " . $nick . " left message from " . $dest . ": " . $trailing); privmsg("message saved"); return; }
if ($script_name != "") { if (isset($scripts[$script_name]["code"]) == True) { $code = base64_decode($scripts[$script_name]["code"]); if ($code != "") { $script_lines = explode("\n", $code); } } } $parts = explode(" ", $trailing); $action = strtolower($parts[0]); array_shift($parts); $trailing = trim(implode(" ", $parts)); $data_changed = False; switch ($action) { case "register-events": register_event_handler("PRIVMSG", ":" . get_bot_nick() . " INTERNAL :~x event-privmsg %%nick%% %%dest%% %%trailing%%"); break; case "event-privmsg": # trailing = crutchy # test if ($global_execute != "enabled") { return; } $parts = explode(" ", $trailing); if (count($parts) > 2) { $nick = $parts[0]; $dest = $parts[1]; array_shift($parts); array_shift($parts); $trailing = trim(implode(" ", $parts)); } if ($dest == get_bot_nick()) {
require_once "translate_lib.php"; $trailing = trim($argv[1]); $alias = trim($argv[2]); $dest = $argv[3]; $nick = $argv[4]; if ($nick == get_bot_nick() and $alias != "~title-internal" and $trailing != "register-events") { return; } $bucket = get_bucket("<exec_title_{$dest}>"); if ($alias == "~title-internal") { $parts = explode(" ", $trailing); $action = strtolower($parts[0]); array_shift($parts); switch ($action) { case "register-events": register_event_handler("PRIVMSG", ":%%nick%% INTERNAL %%dest%% :~title-internal event-privmsg %%nick%% %%dest%% %%trailing%%"); return; case "event-privmsg": # trailing = <nick> <channel> <trailing> $nick = strtolower($parts[0]); $channel = strtolower($parts[1]); array_shift($parts); array_shift($parts); $trailing = trim(implode(" ", $parts)); $show_rd = False; if (get_bucket("<exec_title_url_{$dest}>") != "") { $show_rd = True; } if ($bucket == "on") { title_privmsg($trailing, $channel, $show_rd); }