search: Added googlesearch option, which makes it search google rather than using the internal xapain database. (googlesearch plugin is too hard to turn on when xapain databases corrupt themselves, which happens all too frequently).

master
Joey Hess 2013-11-17 16:37:18 -04:00
parent 5e5f602782
commit 002a97ffcd
2 changed files with 29 additions and 8 deletions

View File

@ -33,6 +33,13 @@ sub getsetup () {
safe => 0, # external program
rebuild => 0,
},
google_search => {
type => "booblean",
example => 1,
description => "use google site search rather than internal xapian index?",
safe => 1,
rebuild => 0,
},
}
sub checkconfig () {
@ -75,6 +82,8 @@ my $stemmer;
sub indexhtml (@) {
my %params=@_;
return if $config{google_search};
setupfiles();
# A unique pageterm is used to identify the document for a page.
@ -165,6 +174,8 @@ sub indexhtml (@) {
}
sub delete (@) {
return if $config{google_search};
my $db=xapiandb();
foreach my $page (@_) {
my $pageterm=pageterm(pagename($page));
@ -176,14 +187,20 @@ sub cgi ($) {
my $cgi=shift;
if (defined $cgi->param('P')) {
# only works for GET requests
chdir("$config{wikistatedir}/xapian") || error("chdir: $!");
$ENV{OMEGA_CONFIG_FILE}="./omega.conf";
$ENV{CGIURL}=IkiWiki::cgiurl();
IkiWiki::loadindex();
$ENV{HELPLINK}=htmllink("", "", "ikiwiki/searching",
noimageinline => 1, linktext => "Help");
exec($config{omega_cgi}) || error("$config{omega_cgi} failed: $!");
if ($config{google_search}) {
print $cgi->redirect("https://www.google.com/search?sitesearch=$config{cgiurl}&q=".$cgi->param('P'));
exit 0;
}
else {
# only works for GET requests
chdir("$config{wikistatedir}/xapian") || error("chdir: $!");
$ENV{OMEGA_CONFIG_FILE}="./omega.conf";
$ENV{CGIURL}=IkiWiki::cgiurl();
IkiWiki::loadindex();
$ENV{HELPLINK}=htmllink("", "", "ikiwiki/searching",
noimageinline => 1, linktext => "Help");
exec($config{omega_cgi}) || error("$config{omega_cgi} failed: $!");
}
}
}

4
debian/changelog vendored
View File

@ -12,6 +12,10 @@ ikiwiki (3.20130904.2) UNRELEASED; urgency=low
break some setups where not all files get committed to git.
* comments: Write pending moderation comments to the transient underlay
to avoid conflict with only_committed_changes.
* search: Added googlesearch option, which makes it search google
rather than using the internal xapain database.
(googlesearch plugin is too hard to turn on when xapain databases
corrupt themselves, which happens all too frequently).
-- Joey Hess <joeyh@debian.org> Thu, 05 Sep 2013 10:01:10 -0400