DiKKv

From Encyclopedia Dramatica
(Redirected from DiKKv)
Jump to navigation Jump to search

DiKKv, a product of the Gay Nigger Association of America, 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.gnaa.eu';
$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.

MembersVictoriesRelated

BLACK_MANDiKKyfl0ssGrogHipcrimejesuitxJmaxl0deLiteralKaMeepsheepOliver HartRucasslothTimecopweev

DiKKv is part of a series on

Portal:Softwarez

Visit the Softwarez Portal for complete coverage.