| Catalyst-Model-Akismet documentation | Contained in the Catalyst-Model-Akismet distribution. |
Catalyst::Model::Akismet - Catalyst model for the Akismet anti-spam protocol
# 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
This is a Catalyst model class that interfaces with the Akismet anti- spam protocol. By default it will connect to typepad's antispam service.
Instantiate a new Net::Amazon::Akismet Model. See Net::Akismet::Protocols's new method for the options available.
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.
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.
You can find documentation for this module with the perldoc command.
perldoc Catalyst::Model::Akismet
You may also look for information at:
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Model-Akismet
Marcus Ramberg <mramberg@cpan.org
Copyright (c) 2008 Marcus Ramberg.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
| 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__