From 002a97ffcdf347b8ad97210ddb5badacd3fee712 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 17 Nov 2013 16:37:18 -0400 Subject: [PATCH] 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). --- IkiWiki/Plugin/search.pm | 33 +++++++++++++++++++++++++-------- debian/changelog | 4 ++++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm index 42d2e0d30..ad3247f4b 100644 --- a/IkiWiki/Plugin/search.pm +++ b/IkiWiki/Plugin/search.pm @@ -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: $!"); + } } } diff --git a/debian/changelog b/debian/changelog index 1eb3de6dc..ce8f833fb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Thu, 05 Sep 2013 10:01:10 -0400 -- 2.39.5