- Portals
- The Current Year
- ED in the News
- Admins
- Help ED Rebuild
- Archive
- ED Bookmarklet
- Donate Bitcoin
Contact an admin on Discord or EDF if you want an account. Also fuck bots.
DiKKv: Difference between revisions
Jump to navigation
Jump to search
imported>Oliver Hart No edit summary |
imported>Oliver Hart |
(No difference)
|
Revision as of 13:55, 4 April 2014
DiKKv, a product of the GNAA, is a PHP script that randomly plays back quotes from three months' IRC logs of Martin "DiKKy Heartiez" Liland, the GNAA's new president and current Norwegian Soldier.
The script contains intelligent analysis of chat. For example, it is able to determine the "busyness" of an IRC channel. If a channel has more talking, DiKKv pastes more quotes. Interestingly enough, the quote database has been tuned to not only resemble the real DiKKy Hearties, but to pick certain quotes based on chat context to make the bot seem more real. It is very effective at making annoyed IRC netizens talk to it (usually telling it to STFU).
A popular fork of Dikkv is known as Grogv.
Source
<?php $CONFIG = array(); $CONFIG['server'] = 'irc.blah.net'; $CONFIG['nick'] = 'DiKKv'; $CONFIG['port'] = 6667; $cr = '#blah'; $CONFIG['name'] = 'Hotmail'; set_time_limit(0); $con = array(); $con['socket'] = fsockopen($CONFIG['server'], $CONFIG['port']); if (!$con['socket']) { die("Could not connect to: ". $CONFIG['server'] ." on port ".$CONFIG['port']); } cmd_send("USER ". $CONFIG['nick'] ." 0 0 :". $CONFIG['name']); cmd_send("NICK ". $CONFIG['nick'] ." 0"); init(); function init() { global $con, $CONFIG, $cr; $firstTime = true; while (!feof($con['socket'])) { $con['buffer']['all'] = trim(fgets($con['socket'], 4096)); print date("[d/m @ H:i]")."<- ".$con['buffer']['all'] ."\n"; if ($firstTime == true) { cmd_send("JOIN $cr"); $firstTime = false; } if (substr($con['buffer']['all'], 0, 6) == 'PING :') { cmd_send('PONG :'.substr($con['buffer']['all'], 6)); } elseif ($old_buffer != $con['buffer']['all']) { $buf_r = $con['buffer']['all']; # someone said something in or joined watched channel if ( (eregi("([^!~:]+)![^ ]+ PRIVMSG $cr :.+", $buf_r)) || (eregi("([^!~:]+)![^ ]+ JOIN :$cr", $buf_r)) ) { # 30% chance of blabbing by default $i = rand(1, 10); # if someone addressed us, increase chance of blab if (eregi(" PRIVMSG $cr :.{0,6}".$CONFIG['nick'], $buf_r)) { $i += 6; } # if someone says 'HY', increase chance of blab if (eregi(" PRIVMSG $cr :.?H[IY]", $buf_r)) { $i += 5; } # keyword "hearties" if (eregi(" PRIVMSG $cr :.*hearties", $buf_r)) { $i += 3; } # keyword "Di[CK]Ky" if (eregi(" PRIVMSG $cr :.*Di[CK]Ky", $buf_r)) { $i += 3; } # talking entirely in capital letters is a trigger if (ereg(" PRIVMSG ".sql_regcase($cr)." :[A-Z ]+$", $buf_r)) { $i += 3; } # keywords of weight 2 (these are extended regexes) foreach (array( " r u ", " u ", " ur ", "<3", "^r u ", "brit", "but$", "faggot", "irssi", "lol", "mirc", "nigger", "noes", "stfu", "yeah") as $keyword) { if (eregi(" PRIVMSG $cr :.*$keyword", $buf_r)) { $i += 2; } } # if someone speaks in bold, increase chance of blab if (eregi(" PRIVMSG $cr :\002", $buf_r)) { $i += 1; } # if someone only says one character, decrease chance if (eregi(" PRIVMSG $cr :.$", $buf_r)) { $i -= 2; } echo "$i\n"; while ($i > 7) { usleep(rand(50000, 1000000)); if ($i > 15) { actdikky(1); } else { actdikky(0); } $i -= 10; } } # someone wants us to quit if (eregi(".+PRIVMSG ".$CONFIG['nick']." :die", $buf_r)) { cmd_send("QUIT"); } $old_buffer = $con['buffer']['all']; } } } function cmd_send($command) { global $con, $time, $CONFIG; fputs($con['socket'], "$command\n\r"); echo date("[d/m @ H:i]")."-> $command\n\r"; } function actdikky($colour) { global $cr; $s = `fortune dikky`; $s = trim($s); if ($s != "") { if ($colour) { $s = chr(3).chr(rand(50, 57)).$s.chr(3); } cmd_send("PRIVMSG $cr :$s"); } } ?>
External links
DiKKv is part of a series on the Gay Nigger Association of America. | |
---|---|
|