All pastes #1642009 Raw Edit

clueless

public text v1 · immutable
#1642009 ·published 2009-10-24 21:35 UTC
rendered paste body
package LinuxRulz::Bot::Plugin::HTTPDPlugin;use Moses::Plugin;use namespace::autoclean;use Data::Dumper;use POE::Component::Server::HTTP;use HTTP::Status;with "LinuxRulz::Bot::Role::Plugin";my $objects;has _httpdaliases => (    isa        => 'HashRef',    accessor   => 'httpdaliases',	builder    => '_build__httpdaliases',    lazy_build => 1,);sub _build__httpdaliases {	POE::Component::Server::HTTP->new(    	Port => 8000,    	ContentHandler => {        	'/' => \&handler,		},		Headers => { Server => 'My Server' },	);}sub handler {	my ($request, $response) = @_;    $response->code(RC_OK);    $response->content("Welcome! This site is powered by POE::Component::Server::HTTP which was created in LinuxRulz::Bot::Plugin::HTTPDPlugin and inherits LinuxRulz::Bot::Role::Plugin via Moose with() function!");	$objects->{self}->send_msg($objects->{irc}, "" , "#linuxrulz.bots", "chan", "Got HTTP Connection!");    return RC_OK;}after "PCI_register" => sub  {	my ( $self, $irc ) = @_;	$objects = { self => $self, irc => $irc };		$self->httpdaliases();		return 1;};after "PCI_unregister" => sub  {    my ( $self, $irc ) = @_;	POE::Kernel->call($self->httpdaliases->{httpd}, "shutdown");    return 1;};sub S_msg {    my ( $self, $irc, $nickstr, $target, $msg ) = @_;	return $self->handle_message($irc, $$nickstr, $$target, "priv", $$msg);    return PCI_EAT_NONE;}sub S_bot_addressed {    my ( $self, $irc, $nickstr, $channel, $msg ) = @_;		return $self->handle_message($irc, $$nickstr, $$channel, "chan", $$msg);	    return PCI_EAT_NONE;}sub handle_message {	my ( $self, $irc, $nickstr, $where, $source, $message ) = @_;    my ($nick) = split /!/, $nickstr;	if($message =~ /^!testhttpd$/)	{		$self->send_msg($irc, $nickstr, $where, $source, "Test");	}	return PCI_EAT_NONE;}__PACKAGE__->meta->add_method( S_public => \&S_bot_addressed );1;