- renamed Comparison to compare_yacy

- added more search engines
- some refactoring and added a list that is used to present the search engine list in a specific order
- added simpleheader and no-header options
- added the compare search to the simple header
- added default compare search page selection storage - after re-start you get the same default search engines as you selected before

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5157 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2008-09-15 09:17:05 +00:00
parent 78ad58cd42
commit 693fa2a157
7 changed files with 167 additions and 143 deletions

View File

@ -3,7 +3,7 @@ javacSource=1.5
javacTarget=1.5
# Release Configuration
releaseVersion=0.597
releaseVersion=0.598
stdReleaseFile=yacy_v${releaseVersion}_${DSTAMP}_${releaseNr}.tar.gz
embReleaseFile=yacy_emb_v${releaseVersion}_${DSTAMP}_${releaseNr}.tar.gz
proReleaseFile=yacy_pro_v${releaseVersion}_${DSTAMP}_${releaseNr}.tar.gz

View File

@ -881,8 +881,7 @@ autoReCrawl_idlesleep = 3600000
autoReCrawl_busysleep = 3600000
autoReCrawl_memprereq = -1
# options to remember the default search engines when using the search compare features
compare_yacy.left = YaCy
compare_yacy.right = YaCy

View File

@ -1,80 +0,0 @@
//Comparison_p.java
//-----------------------
//part of the AnomicHTTPD caching proxy
//(C) by Michael Peter Christen; mc@yacy.net
//first published on http://www.anomic.de
//Frankfurt, Germany, 2004
//
//This File is contributed by Marc Nause
//last major change: 13.09.2008
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//You must compile this file with
//javac -classpath .:../Classes Message.java
//if the shell's current path is HTROOT
import de.anomic.http.httpRequestHeader;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
import de.anomic.server.servletProperties;
import java.util.Hashtable;
import java.util.Map;
public class Comparison_p{
public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch<?> env) {
final servletProperties prop = new servletProperties();
Map<String, String> searchengines = new Hashtable<String, String>();
searchengines.put("YaCy", "yacysearch.html?display=2&query=");
searchengines.put("google.de", "http://www.google.de/search?q=");
searchengines.put("metager.de", "http://www.metager.de/meta/cgi-bin/meta.ger1?eingabe=");
if (post != null) {
prop.put("search", 1);
prop.putHTML("search_query", post.get("query", ""));
prop.putHTML("search_left", searchengines.get(post.get("left", searchengines.get("YaCy"))));
prop.putHTML("search_right", searchengines.get(post.get("right", searchengines.get("YaCy"))));
} else {
prop.put("search", 0);
prop.put("search_query", "");
}
prop.put("searchengines", searchengines.size());
int i = 0;
for(String name : searchengines.keySet()){
prop.putHTML("searchengines_" + i + "_searchengine", name);
if(post != null && post.get("left").equals(name)) {
prop.put("searchengines_" + i + "_leftengine", 1);
} else {
prop.put("searchengines_" + i + "_leftengine", 0);
}
if(post != null && post.get("right").equals(name)) {
prop.put("searchengines_" + i + "_rightengine", 1);
} else {
prop.put("searchengines_" + i + "_rightengine", 0);
}
i++;
}
// return rewrite properties
return prop;
}
}

106
htroot/Comparison_p.html → htroot/compare_yacy.html Normal file → Executable file
View File

@ -1,50 +1,56 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>YaCy '#[clientname]#': Websearch Comparison</title>
#%env/templates/metas.template%#
</head>
<body>
#%env/templates/header.template%#
<h2>Websearch Comparison</h2>
<p>This page lets you compare two search engines. Please select search engines
and enter your searchword(s) below.</p>
<fieldset>
<legend>Parameters</legend>
<form action="" method="get">
<dl>
<dt>Left Search Engine</dt>
<dd>
<select name="left">
#{searchengines}#
<option #(leftengine)#::selected="selected"#(/leftengine)#>#[searchengine]#</option>
#{/searchengines}#
</select>
</dd>
<dt>Right Search Engine</dt>
<dd>
<select name="right">
#{searchengines}#
<option #(rightengine)#::selected="selected"#(/rightengine)#>#[searchengine]#</option>
#{/searchengines}#
</select>
</dd>
<dt>Query</dt>
<dd>
<input type="text" name="query" value="#[search_query]#" size="60">
</dd>
</dl>
<input type="submit" />
</form>
</fieldset>
#(search)#
::
<fieldset>
<legend>Search Result</legend>
<iframe src="#[left]##[query]#" width="49%" height="1600"></iframe>
<iframe src="#[right]##[query]#" width="49%" height="1600"></iframe>
</fieldset>
#(/search)#
#%env/templates/footer.template%#
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>YaCy '#[clientname]#': Websearch Comparison</title>
#%env/templates/metas.template%#
</head>
<body>
#(display)#
#%env/templates/simpleheader.template%#
::
#%env/templates/header.template%#
::
#%env/templates/embeddedheader.template%#
#(/display)#
<h2>Websearch Comparison</h2>
<p>This page lets you compare two search engines. Please select search engines
and enter your searchword(s) below.</p>
<fieldset>
<legend>Parameters</legend>
<form action="" method="get">
<dl>
<dt>Left Search Engine</dt>
<dd>
<select name="left">
#{searchengines}#
<option #(leftengine)#::selected="selected"#(/leftengine)#>#[searchengine]#</option>
#{/searchengines}#
</select>
</dd>
<dt>Right Search Engine</dt>
<dd>
<select name="right">
#{searchengines}#
<option #(rightengine)#::selected="selected"#(/rightengine)#>#[searchengine]#</option>
#{/searchengines}#
</select>
</dd>
<dt>Query</dt>
<dd>
<input type="text" name="query" value="#[search_query]#" size="60">
</dd>
</dl>
<input type="submit" />
</form>
</fieldset>
#(search)#
::
<fieldset>
<legend>Search Result</legend>
<iframe src="#[left]##[query]#" width="49%" height="1600"></iframe>
<iframe src="#[right]##[query]#" width="49%" height="1600"></iframe>
</fieldset>
#(/search)#
#%env/templates/footer.template%#
</body>
</html>

98
htroot/compare_yacy.java Executable file
View File

@ -0,0 +1,98 @@
// compare_yacy.java
// (C) 2008 by Marc Nause
// first published 13.09.2008 on http://yacy.net
//
// This is a part of YaCy, a peer-to-peer based web search engine
//
// $LastChangedDate: 2006-04-02 22:40:07 +0200 (So, 02 Apr 2006) $
// $LastChangedRevision: 1986 $
// $LastChangedBy: orbiter $
//
// LICENSE
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import de.anomic.http.httpRequestHeader;
import de.anomic.plasma.plasmaSwitchboard;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
import de.anomic.server.servletProperties;
import java.util.HashMap;
import java.util.Map;
public class compare_yacy {
private static final String defaultsearch = "YaCy";
private static final String[] order = {defaultsearch, "YaCy (local)", "google.de", "google.com", "metager.de", "yahoo.com", "romso.de", "search.live.com", "Wikipedia English", "Wikipedia Deutsch"};
private static final Map<String, String> searchengines = new HashMap<String, String>();
static {
searchengines.put(defaultsearch, "yacysearch.html?display=2&verify=true&resource=global&query=");
searchengines.put("YaCy (local)", "yacysearch.html?display=2&verify=true&resource=local&query=");
searchengines.put("google.de", "http://www.google.de/search?q=");
searchengines.put("google.com", "http://www.google.com/search?q=");
searchengines.put("metager.de", "http://www.metager.de/meta/cgi-bin/meta.ger1?eingabe=");
searchengines.put("yahoo.com", "http://search.yahoo.com/search?p=");
searchengines.put("romso.de", "http://romso.de/?q=");
searchengines.put("search.live.com", "http://search.live.com/results.aspx?q=");
searchengines.put("Wikipedia English", "http://en.wikipedia.org/wiki/");
searchengines.put("Wikipedia Deutsch", "http://de.wikipedia.org/wiki/");
}
public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch<?> env) {
final plasmaSwitchboard sb = (plasmaSwitchboard) env;
final boolean authenticated = sb.adminAuthenticated(header) >= 2;
final int display = ((post == null) || (!authenticated)) ? 0 : post.getInt("display", 0);
final servletProperties prop = new servletProperties();
prop.put("display", display);
String default_left = sb.getConfig("compare_yacy.left", defaultsearch);
String default_right = sb.getConfig("compare_yacy.right", defaultsearch);
if (post != null) {
prop.put("search", 1);
prop.putHTML("search_query", post.get("query", ""));
prop.putHTML("search_left", searchengines.get(post.get("left", default_left)));
prop.putHTML("search_right", searchengines.get(post.get("right", default_right)));
} else {
prop.put("search", 0);
prop.put("search_query", "");
}
prop.put("searchengines", order.length);
String name;
for (int i = 0; i < order.length; i++) {
name = order[i];
prop.putHTML("searchengines_" + i + "_searchengine", name);
if (post != null && post.get("left", default_left).equals(name)) {
prop.put("searchengines_" + i + "_leftengine", 1);
sb.setConfig("compare_yacy.left", name);
} else {
prop.put("searchengines_" + i + "_leftengine", 0);
}
if (post != null && post.get("right", default_right).equals(name)) {
prop.put("searchengines_" + i + "_rightengine", 1);
sb.setConfig("compare_yacy.right", name);
} else {
prop.put("searchengines_" + i + "_rightengine", 0);
}
}
// return rewrite properties
return prop;
}
}

View File

@ -8,7 +8,7 @@
<li><a href="/index.html?display=1" accesskey="s" class="MenuItemLink">Search Page (standard)</a></li>
<li><a href="/yacy/user/ysearch.html?display=1" accesskey="s" class="MenuItemLink">Search Page (alternative)</a></li>
<li><a href="/yacy/ui/" accesskey="s" class="MenuItemLink">Search Page (Rich Client)</a></li>
<li><a href="/Comparison_p.html" class="MenuItemLink lock">Compare Search</a></li>
<li><a href="/compare_yacy.html?display=1" class="MenuItemLink">Compare Search</a></li>
<li><a href="/Ranking_p.html" class="MenuItemLink lock">Ranking Config</a></li>
<li><a href="/Surftips.html?display=1" class="MenuItemLink">Surftips</a></li>
<li><a href="/Wiki.html?display=1" class="MenuItemLink">Publication</a></li>

View File

@ -1,12 +1,13 @@
<div class="SubMenu">
<ul class="SubMenu">
<li style="width:13%;"><a href="/Status.html" class="MenuItemLink">Peer Administration</a></li>
<li style="width:13%;"><a href="/Steering.html?shutdown=" class="MenuItemLink lock" onclick="return confirm('Confirm Shutdown')">Shutdown</a></li>
<li style="width:13%;"><a href="/index.html" onclick="this.href='/index.html?handover='+document.searchform.search.value" class="MenuItemLink">Web Search</a></li>
<li style="width:13%;"><a href="/Surftips.html" class="MenuItemLink">Surftips</a></li>
<li style="width:13%;"><a href="/ViewProfile.html?hash=localhash" class="MenuItemLink">Peer Owner Profile</a></li>
<li style="width:13%;"><a href="http://www.yacy-websearch.net/wiki/" class="MenuItemLink">Help / Wiki</a></li>
<li style="width:13%;"><a href="http://www.yacy.net/" class="MenuItemLink">Project Home</a></li>
<li style="width:12%;"><a href="/Status.html" class="MenuItemLink">Peer Administration</a></li>
<li style="width:12%;"><a href="/index.html" onclick="this.href='/index.html?handover='+document.searchform.search.value" class="MenuItemLink">Web Search</a></li>
<li style="width:12%;"><a href="/compare_yacy.html" onclick="this.href='/compare_yacy.html?display=0&handover='+document.searchform.search.value" class="MenuItemLink">Compare YaCy</a></li>
<li style="width:12%;"><a href="/Surftips.html" class="MenuItemLink">Surftips</a></li>
<li style="width:12%;"><a href="/ViewProfile.html?hash=localhash" class="MenuItemLink">Peer Owner Profile</a></li>
<li style="width:12%;"><a href="http://www.yacy-websearch.net/wiki/" class="MenuItemLink">Help / Wiki</a></li>
<li style="width:12%;"><a href="http://www.yacy.net/" class="MenuItemLink">Project Home</a></li>
<li style="width:12%;"><a href="/Steering.html?shutdown=" class="MenuItemLink lock" onclick="return confirm('Confirm Shutdown')">Shutdown</a></li>
</ul>
</div>
<div style="clear:left; padding:10px;">