Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "Revert the effects of find_del_files() for (re)autoadded files."
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
blogspam.pm
diff --git
a/IkiWiki/Plugin/blogspam.pm
b/IkiWiki/Plugin/blogspam.pm
index d4b5b36d51e4417f497c234ced17f56482851091..626c8ec42acc8f69297d416ef358e66702a153b3 100644
(file)
--- 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);
sub import {
hook(type => "getsetup", id => "blogspam", call => \&getsetup);
+ hook(type => "checkconfig", id => "blogspam", call => \&checkconfig);
hook(type => "checkcontent", id => "blogspam", call => \&checkcontent);
}
hook(type => "checkcontent", id => "blogspam", call => \&checkcontent);
}
@@
-43,17
+44,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;
};
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
if (exists $config{blogspam_pagespec}) {
return undef
@@
-62,11
+65,11
@@
sub checkcontent (@) {
}
my $url=$defaulturl;
}
my $url=$defaulturl;
- $url = $
params{blogspam_server} if exists $params
{blogspam_server};
+ $url = $
config{blogspam_server} if exists $config
{blogspam_server};
my $client = RPC::XML::Client->new($url);
my $client = RPC::XML::Client->new($url);
- my @options = split(",", $
params
{blogspam_options})
- if exists $
params
{blogspam_options};
+ my @options = split(",", $
config
{blogspam_options})
+ if exists $
config
{blogspam_options};
# Allow short comments and whitespace-only edits, unless the user
# has overridden min-words themselves.
# Allow short comments and whitespace-only edits, unless the user
# has overridden min-words themselves.
@@
-83,7
+86,7
@@
sub checkcontent (@) {
# and "buy".
push @options, "exclude=stopwords";
# and "buy".
push @options, "exclude=stopwords";
- my
$res = $client->send_request('testComment', {
+ my
%req=(
ip => $ENV{REMOTE_ADDR},
comment => defined $params{diff} ? $params{diff} : $params{content},
subject => defined $params{subject} ? $params{subject} : "",
ip => $ENV{REMOTE_ADDR},
comment => defined $params{diff} ? $params{diff} : $params{content},
subject => defined $params{subject} ? $params{subject} : "",
@@
-92,17
+95,20
@@
sub checkcontent (@) {
options => join(",", @options),
site => $config{url},
version => "ikiwiki ".$IkiWiki::version,
options => join(",", @options),
site => $config{url},
version => "ikiwiki ".$IkiWiki::version,
- });
+ );
+ my $res = $client->send_request('testComment', \%req);
if (! ref $res || ! defined $res->value) {
debug("failed to get response from blogspam server ($url)");
return undef;
}
elsif ($res->value =~ /^SPAM:(.*)/) {
if (! ref $res || ! defined $res->value) {
debug("failed to get response from blogspam server ($url)");
return undef;
}
elsif ($res->value =~ /^SPAM:(.*)/) {
+ eval q{use Data::Dumper};
+ debug("blogspam server reports ".$res->value.": ".Dumper(\%req));
return gettext("Sorry, but that looks like spam to <a href=\"http://blogspam.net/\">blogspam</a>: ").$1;
}
elsif ($res->value ne 'OK') {
return gettext("Sorry, but that looks like spam to <a href=\"http://blogspam.net/\">blogspam</a>: ").$1;
}
elsif ($res->value ne 'OK') {
- debug(
gettext("blogspam server failure: ")
.$res->value);
+ debug(
"blogspam server failure: "
.$res->value);
return undef;
}
else {
return undef;
}
else {