Catalyst::Model::Akismet - Catalyst model for the Akismet anti-spam protocol


Catalyst-Model-Akismet documentation Contained in the Catalyst-Model-Akismet distribution.

Index


Code Index:

NAME

Top

Catalyst::Model::Akismet - Catalyst model for the Akismet anti-spam protocol

SYNOPSIS

Top

    # Use the helper to add an Akismet model to your application...
    script/myapp_create.pl model Akismet Akismet




    # lib/MyApp/Model/Akismet.pm

    package MyApp::Model::Akismet;

    use base qw/ Catalyst::Model::Akismet /;

    __PACKAGE__->config(
        url => 'http://yourblog.com',
        key => 'SECRET',
        host => 'rest.akismet.com'
      );

    1;




    # In a controller...
    my $akismet = $c->model('Akismet');
    print ref($akismet);  # Net::Amazon::Akismet




DESCRIPTION

Top

This is a Catalyst model class that interfaces with the Akismet anti- spam protocol. By default it will connect to typepad's antispam service.

METHODS

Top

->new()

Instantiate a new Net::Amazon::Akismet Model. See Net::Akismet::Protocols's new method for the options available.

check

Check if a comment is spam. Sets user_ip, user_agent and referer and proxies to Net::Akismet::Protocol's check method. See that method for more info about parameters.

build_per_context_instance

akismet

Access the Net::Akismet::Protocol object directly.

Gets info about user. Called by Catalyst automatically.

SEE ALSO

Top

Catalyst, Catalyst::Helper::Model::Akismet, Net::Akismet::Protocol

BUGS

Top

Please report any bugs or feature requests to bug-catalyst-model-akismet at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Model-Akismet.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Catalyst::Model::Akismet

You may also look for information at:

* Catalyst::Model::Akismet

http://perlprogrammer.co.uk/modules/Catalyst::Model::S3/

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Catalyst-Model-Akismet/

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Model-Akismet

* Search CPAN

http://search.cpan.org/dist/Catalyst-Model-Akismet/

AUTHOR

Top

Marcus Ramberg <mramberg@cpan.org

COPYRIGHT AND LICENSE

Top


Catalyst-Model-Akismet documentation Contained in the Catalyst-Model-Akismet distribution.
package Catalyst::Model::Akismet;

use Carp qw( croak );
use Catalyst::Utils ();
use Net::Akismet::Protocol ();
use MRO::Compat;
use Moose;
extends 'Catalyst::Model';
with 'Catalyst::Component::InstancePerContext';
no Moose;

our $VERSION = '0.04';


sub new {
    my $self  = shift->next::method(@_);
    my $class = ref($self);
    
    my ( $c, $arg_ref ) = @_;
    
    # Ensure that the required configuration is available...
    croak "->config->{key} must be set for $class\n"
        unless $self->{key};
    croak "->config->{url} must be set for $class\n"
        unless $self->{url};
    
    # Instantiate a new Akismet object...
    $self->{'akismet'} = Net::Akismet::Protocol->new(
        Catalyst::Utils::merge_hashes( $arg_ref, $self->config )
    );
    
    return $self;
}


sub check {
    my ($self,%params)=@_;
    return $self->{akismet}->check(
        %params,%{$self->{params}} )
}

sub akismet {
    my $self=shift;
    return $self->{akismet};
}

sub build_per_context_instance {
my ($self, $c) = @_;

   return $self unless ref $c;
   $self->{params}= {
        user_ip 		=> $c->req->address,
		user_agent 		=> $c->req->user_agent,
		referer		=> $c->req->referer,
   };
   
   return $self;
}

1; # End of the module code; everything from here is documentation...
__END__