X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a..96c7e31c34b10e343afb3f17eb1ca7c34aaa4123:/IkiWiki/Plugin/blogspam.pm

diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm
index cbd9859a5..c4e5cf390 100644
--- a/IkiWiki/Plugin/blogspam.pm
+++ b/IkiWiki/Plugin/blogspam.pm
@@ -9,6 +9,7 @@ my $defaulturl='http://test.blogspam.net:8888/';
 
 sub import {
 	hook(type => "getsetup", id => "blogspam",  call => \&getsetup);
+	hook(type => "checkconfig", id => "blogspam", call => \&checkconfig);
 	hook(type => "checkcontent", id => "blogspam", call => \&checkcontent);
 }
 
@@ -17,6 +18,7 @@ sub getsetup () {
 		plugin => {
 			safe => 1,
 			rebuild => 0,
+			section => "auth",
 		},
 		blogspam_pagespec => {
 			type => 'pagespec',
@@ -43,17 +45,19 @@ sub getsetup () {
 		},
 }
 
-sub checkcontent (@) {
-	my %params=@_;
-
+sub checkconfig () {
+	# This is done at checkconfig time because printing an error
+	# if the module is missing when a spam is posted would not
+	# let the admin know about the problem.
 	eval q{
 		use RPC::XML;
 		use RPC::XML::Client;
 	};
-	if ($@) {
-		warn($@);
-		return undef;
-	}
+	error $@ if $@;
+}
+
+sub checkcontent (@) {
+	my %params=@_;
 	
  	if (exists $config{blogspam_pagespec}) {
 		return undef
@@ -85,7 +89,7 @@ sub checkcontent (@) {
 
 	my %req=(
 		ip => $ENV{REMOTE_ADDR},
-		comment => $params{content},
+		comment => defined $params{diff} ? $params{diff} : $params{content},
 		subject => defined $params{subject} ? $params{subject} : "",
 		name => defined $params{author} ? $params{author} : "",
 		link => exists $params{url} ? $params{url} : "",