From 421d0565508ec1f8b48e7f083a9b981ffdb1af13 Mon Sep 17 00:00:00 2001 From: low012 Date: Wed, 12 Nov 2008 00:47:54 +0000 Subject: [PATCH] *) changed layout of blacklist adminstration (less cluttered) *) it is possible to move/edit/delete more than one entry at a time now *) it is easier to choose a target for blacklist import now *) fixed several bugs *) to be continued... git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5330 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/BlacklistCleaner_p.java | 2 +- htroot/BlacklistImpExp_p.html | 52 +++++ htroot/BlacklistImpExp_p.java | 95 +++++++++ htroot/BlacklistTest_p.html | 38 ++++ htroot/BlacklistTest_p.java | 83 ++++++++ htroot/Blacklist_p.html | 194 +++++++----------- htroot/Blacklist_p.java | 176 +++++++++------- htroot/env/base.css | 24 ++- .../env/templates/submenuBlacklist.template | 2 + htroot/sharedBlacklist_p.html | 12 +- htroot/sharedBlacklist_p.java | 34 ++- 11 files changed, 500 insertions(+), 212 deletions(-) create mode 100644 htroot/BlacklistImpExp_p.html create mode 100644 htroot/BlacklistImpExp_p.java create mode 100644 htroot/BlacklistTest_p.html create mode 100644 htroot/BlacklistTest_p.java diff --git a/htroot/BlacklistCleaner_p.java b/htroot/BlacklistCleaner_p.java index 1eec11270..3de3391d6 100644 --- a/htroot/BlacklistCleaner_p.java +++ b/htroot/BlacklistCleaner_p.java @@ -279,7 +279,7 @@ public class BlacklistCleaner_p { if (s.contains("\\\\")) { s = s.replaceAll(Pattern.quote("\\\\"), Matcher.quoteReplacement("\\")); } - + if (list.contains(s)) { list.remove(s); listChanged = true; diff --git a/htroot/BlacklistImpExp_p.html b/htroot/BlacklistImpExp_p.html new file mode 100644 index 000000000..d7dbf9b26 --- /dev/null +++ b/htroot/BlacklistImpExp_p.html @@ -0,0 +1,52 @@ + + + + YaCy '#[clientname]#': Blacklist Administration + #%env/templates/metas.template%# + + + #%env/templates/header.template%# + #%env/templates/submenuBlacklist.template%# + +

Blacklist Import

+

Used Blacklist engine: #[blacklistEngine]#

+ + #(disabled)# +
+ Import blacklist items from... + +
+
+ other YaCy peers: + + +
+
+ + +
+
+ URL: + + + +
+
+ + +
+
+ file: + + + +
+
+
::#(/disabled)# + #%env/templates/footer.template%# + + diff --git a/htroot/BlacklistImpExp_p.java b/htroot/BlacklistImpExp_p.java new file mode 100644 index 000000000..e51964444 --- /dev/null +++ b/htroot/BlacklistImpExp_p.java @@ -0,0 +1,95 @@ +// BlacklistImpExp_p.java +// ----------------------- +// part of YaCy +// (C) by Michael Peter Christen; mc@yacy.net +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004 +// +// This File is contributed by Alexander Schier +// +// $LastChangedDate: 2008-10-30 01:03:14 +0100 (Do, 30 Okt 2008) $ +// $LastChangedRevision: 5309 $ +// $LastChangedBy: low012 $ +// +// 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 Blacklist_p.java +// if the shell's current path is HTROOT + +import java.io.File; +import java.util.Iterator; +import java.util.TreeMap; + +import de.anomic.data.listManager; +import de.anomic.http.httpRequestHeader; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; +import de.anomic.yacy.yacySeed; +import java.util.List; + +public class BlacklistImpExp_p { + private final static String DISABLED = "disabled_"; + + public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch env) { + final plasmaSwitchboard sb = (plasmaSwitchboard) env; + + // initialize the list manager + listManager.switchboard = (plasmaSwitchboard) env; + listManager.listsPath = new File(listManager.switchboard.getRootPath(),listManager.switchboard.getConfig("listManager.listsPath", "DATA/LISTS")); + + // loading all blacklist files located in the directory + final List dirlist = listManager.getDirListing(listManager.listsPath); + + String blacklistToUse = null; + final serverObjects prop = new serverObjects(); + prop.putHTML("blacklistEngine", plasmaSwitchboard.urlBlacklist.getEngineInfo()); + + // if we have not chosen a blacklist until yet we use the first file + if (blacklistToUse == null && dirlist != null && dirlist.size() > 0) { + blacklistToUse = dirlist.get(0); + } + + + // List known hosts for BlackList retrieval + if (sb.webIndex.seedDB != null && sb.webIndex.seedDB.sizeConnected() > 0) { // no nullpointer error + int peerCount = 0; + try { + final TreeMap hostList = new TreeMap(); + final Iterator e = sb.webIndex.seedDB.seedsConnected(true, false, null, (float) 0.0); + while (e.hasNext()) { + final yacySeed seed = e.next(); + if (seed != null) hostList.put(seed.get(yacySeed.NAME, "nameless"),seed.hash); + } + + String peername; + while ((peername = hostList.firstKey()) != null) { + final String Hash = hostList.get(peername); + prop.putHTML(DISABLED + "otherHosts_" + peerCount + "_hash", Hash); + prop.putXML(DISABLED + "otherHosts_" + peerCount + "_name", peername); + hostList.remove(peername); + peerCount++; + } + } catch (final Exception e) {/* */} + prop.put(DISABLED + "otherHosts", peerCount); + } + + + prop.putXML(DISABLED + "currentBlacklist", (blacklistToUse==null) ? "" : blacklistToUse); + prop.put("disabled", (blacklistToUse == null) ? "1" : "0"); + return prop; + } +} diff --git a/htroot/BlacklistTest_p.html b/htroot/BlacklistTest_p.html new file mode 100644 index 000000000..48eddc8c2 --- /dev/null +++ b/htroot/BlacklistTest_p.html @@ -0,0 +1,38 @@ + + + + YaCy '#[clientname]#': Blacklist Test + #%env/templates/metas.template%# + + + #%env/templates/header.template%# + #%env/templates/submenuBlacklist.template%# + +

Blacklist Test

+

Used Blacklist engine: #[blacklistEngine]#

+ +
+ Test list: +
+   + + + #(testlist)#:: +
+ The tested URL was #[url]#
+ It is blocked for the following cases:
+
    + #(listedincrawler)#::
  • Crawling
  • #(/listedincrawler)# + #(listedindht)#::
  • DHT
  • #(/listedindht)# + #(listedinnews)#::
  • News
  • #(/listedinnews)# + #(listedinproxy)#::
  • Proxy
  • #(/listedinproxy)# + #(listedinsearch)#::
  • Search
  • #(/listedinsearch)# + #(listedinsurftips)#::
  • Surftips
  • #(/listedinsurftips)# +
+
+ #(/testlist)# +
+
+ #%env/templates/footer.template%# + + diff --git a/htroot/BlacklistTest_p.java b/htroot/BlacklistTest_p.java new file mode 100644 index 000000000..6d27427b6 --- /dev/null +++ b/htroot/BlacklistTest_p.java @@ -0,0 +1,83 @@ +// BlacklistTest_p.java +// ----------------------- +// part of YaCy +// (C) by Michael Peter Christen; mc@yacy.net +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004 +// +// This File is contributed by Alexander Schier +// +// $LastChangedDate: 2008-10-30 01:03:14 +0100 (Do, 30 Okt 2008) $ +// $LastChangedRevision: 5309 $ +// $LastChangedBy: low012 $ +// +// 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 Blacklist_p.java +// if the shell's current path is HTROOT + +import java.io.File; +import java.net.MalformedURLException; + +import de.anomic.data.listManager; +import de.anomic.http.httpRequestHeader; +import de.anomic.index.indexReferenceBlacklist; +import de.anomic.plasma.plasmaSwitchboard; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; +import de.anomic.yacy.yacyURL; + +public class BlacklistTest_p { + + public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch env) { + + // initialize the list manager + listManager.switchboard = (plasmaSwitchboard) env; + listManager.listsPath = new File(listManager.switchboard.getRootPath(),listManager.switchboard.getConfig("listManager.listsPath", "DATA/LISTS")); + + final serverObjects prop = new serverObjects(); + prop.putHTML("blacklistEngine", plasmaSwitchboard.urlBlacklist.getEngineInfo()); + + // do all post operations + if(post != null && post.containsKey("testList")) { + prop.put("testlist", "1"); + String urlstring = post.get("testurl", ""); + if(!urlstring.startsWith("http://")) urlstring = "http://"+urlstring; + yacyURL testurl = null; + try { + testurl = new yacyURL(urlstring, null); + } catch (final MalformedURLException e) { testurl = null; } + if(testurl != null) { + prop.putHTML("testlist_url",testurl.toString()); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_CRAWLER, testurl)) + prop.put("testlist_listedincrawler", "1"); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_DHT, testurl)) + prop.put("testlist_listedindht", "1"); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_NEWS, testurl)) + prop.put("testlist_listedinnews", "1"); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_PROXY, testurl)) + prop.put("testlist_listedinproxy", "1"); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_SEARCH, testurl)) + prop.put("testlist_listedinsearch", "1"); + if(plasmaSwitchboard.urlBlacklist.isListed(indexReferenceBlacklist.BLACKLIST_SURFTIPS, testurl)) + prop.put("testlist_listedinsurftips", "1"); + } + else prop.put("testlist_url","not valid"); + } + return prop; + } + +} diff --git a/htroot/Blacklist_p.html b/htroot/Blacklist_p.html index a9410e387..9c4374359 100644 --- a/htroot/Blacklist_p.html +++ b/htroot/Blacklist_p.html @@ -9,7 +9,6 @@ #%env/templates/submenuBlacklist.template%#

Blacklist Administration

-

Used Blacklist engine: #[blacklistEngine]#

This function provides an URL filter to the proxy; any blacklisted URL is blocked from being loaded. You can define several blacklists and activate them separately. @@ -17,46 +16,25 @@ collect blacklist entries from other peers.

Active list: #(disabled)##[currentBlacklist]#::No blacklist selected#(/disabled)#

+

Used Blacklist engine: #[blacklistEngine]#

-
- Test list: -
-   - - - #(testlist)#:: -
- The tested URL was #[url]#
- It is blocked for the following cases:
-
    - #(listedincrawler)#::
  • Crawling
  • #(/listedincrawler)# - #(listedindht)#::
  • DHT
  • #(/listedindht)# - #(listedinnews)#::
  • News
  • #(/listedinnews)# - #(listedinproxy)#::
  • Proxy
  • #(/listedinproxy)# - #(listedinsearch)#::
  • Search
  • #(/listedinsearch)# - #(listedinsurftips)#::
  • Surftips
  • #(/listedinsurftips)# -
-
- #(/testlist)# -
-
-
Select list: #(disabled)# -
- #{blackLists}# - + #{/blackLists}# - + +
:: #(/disabled)#
-
+
Create new list: #(error)# :: @@ -70,74 +48,59 @@ -
- +
+

#(disabled)# -
- Settings for this list -
-
- - - -
-
-
-
- Activate this list for ... -
- #{currentActiveFor}# -
-
- -
- #{/currentActiveFor}# -
- - -
-
-
-
Edit this list + #(edit)#
-

- These are the domain name / path patterns in this blacklist:
- You can select them here for deletion -

+

These are the domain name/path patterns in #[currentBlacklist]#:

- + #[item]# + #{/Itemlist}# - -
- -

- #(edit)# - - :: - - - - - - - #(/edit)# +
-
- + +   +   + +
+ + :: +
+
+ + #{editList}# + + + #{/editList}# + +
+ #(/edit)# +
  • domain/fullpath
  • @@ -154,10 +117,37 @@
+ +
+ Settings for this list +
+
+ + + +
+
+
+
+ Activate this list for ... +
+ #{currentActiveFor}# +
+
+ +
+ #{/currentActiveFor}# +
+ + +
+
+
::#(/disabled)# + + #(status)# :: #[item]# was removed from blacklist :: @@ -165,43 +155,7 @@ #(/status)#

- #(disabled)# -
- Import blacklist items from... - -
-
- other YaCy peers: - - - -
-
- - -
-
- URL: - - - -
-
- - -
-
- file: - - - -
-
-
::#(/disabled)# + --> #%env/templates/footer.template%# diff --git a/htroot/Blacklist_p.java b/htroot/Blacklist_p.java index 92925e265..f54525fd1 100644 --- a/htroot/Blacklist_p.java +++ b/htroot/Blacklist_p.java @@ -36,8 +36,7 @@ import java.io.PrintWriter; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; -import java.util.TreeMap; +import java.util.List; import de.anomic.data.listManager; import de.anomic.http.httpRequestHeader; @@ -47,17 +46,16 @@ import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; import de.anomic.server.serverSwitch; import de.anomic.server.logging.serverLog; -import de.anomic.yacy.yacySeed; import de.anomic.yacy.yacyURL; -import java.util.List; public class Blacklist_p { + private final static String EDIT = "edit_"; private final static String DISABLED = "disabled_"; private final static String BLACKLIST = "blackLists_"; + private final static String BLACKLIST_MOVE = "blackListsMove_"; private final static String BLACKLIST_SHARED = "BlackLists.Shared"; public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch env) { - final plasmaSwitchboard sb = (plasmaSwitchboard) env; // initialize the list manager listManager.switchboard = (plasmaSwitchboard) env; @@ -68,14 +66,16 @@ public class Blacklist_p { final String[] supportedBlacklistTypes = supportedBlacklistTypesStr.split(","); // loading all blacklist files located in the directory - final List dirlist = listManager.getDirListing(listManager.listsPath); + List dirlist = listManager.getDirListing(listManager.listsPath); String blacklistToUse = null; final serverObjects prop = new serverObjects(); prop.putHTML("blacklistEngine", plasmaSwitchboard.urlBlacklist.getEngineInfo()); - + // do all post operations if (post != null) { + + final String action = post.get("action", ""); if(post.containsKey("testList")) { prop.put("testlist", "1"); @@ -146,6 +146,9 @@ public class Blacklist_p { prop.putHTML("error_name", blacklistToUse); blacklistToUse = null; } + + // reload Blacklists + dirlist = listManager.getDirListing(listManager.listsPath); } } else if (post.containsKey("deleteList")) { @@ -173,7 +176,7 @@ public class Blacklist_p { blacklistToUse = null; // reload Blacklists - listManager.reloadBlacklists(); + dirlist = listManager.getDirListing(listManager.listsPath); } else if (post.containsKey("activateList")) { @@ -215,19 +218,26 @@ public class Blacklist_p { } else { // inactive list -> enable listManager.updateListSet(BLACKLIST_SHARED, blacklistToUse); } - } else if (post.containsKey("deleteBlacklistEntry")) { + } else if (action.equals("deleteBlacklistEntry")) { /* =========================================================== * Delete an entry from a blacklist * =========================================================== */ blacklistToUse = post.get("currentBlacklist"); + String temp = null; - final String temp = deleteBlacklistEntry(post.get("currentBlacklist"), - post.get("selectedEntry"), header, supportedBlacklistTypes); - if (temp != null) { - prop.put("LOCATION", temp); - return prop; + final String[] selectedBlacklistEntries = post.getAll("selectedEntry.*"); + + if (selectedBlacklistEntries.length > 0) { + for (int i = 0; i < selectedBlacklistEntries.length; i++) { + temp = deleteBlacklistEntry(blacklistToUse, + selectedBlacklistEntries[i], header, supportedBlacklistTypes); + if (temp != null) { + prop.put("LOCATION", temp); + return prop; + } + } } } else if (post.containsKey("addBlacklistEntry")) { @@ -245,31 +255,39 @@ public class Blacklist_p { return prop; } - } else if (post.containsKey("moveBlacklistEntry")) { + } else if (action.equals("moveBlacklistEntry")) { /* =========================================================== * Move an entry from one blacklist to another * =========================================================== */ blacklistToUse = post.get("currentBlacklist"); + String targetBlacklist = post.get("targetBlacklist"); + String temp = null; + + final String[] selectedBlacklistEntries = post.getAll("selectedEntry.*"); + + if (selectedBlacklistEntries.length > 0 && !targetBlacklist.equals(blacklistToUse)) { + for (int i = 0; i < selectedBlacklistEntries.length; i++) { - if (!post.get("targetBlacklist").equals(post.get("currentBlacklist"))) { - String temp = addBlacklistEntry(post.get("targetBlacklist"), - post.get("selectedEntry"), header, supportedBlacklistTypes); - if (temp != null) { - prop.put("LOCATION", temp); - return prop; - } - - temp = deleteBlacklistEntry(post.get("currentBlacklist"), - post.get("selectedEntry"), header, supportedBlacklistTypes); - if (temp != null) { - prop.put("LOCATION", temp); - return prop; + temp = addBlacklistEntry(targetBlacklist, + selectedBlacklistEntries[i], header, supportedBlacklistTypes); + if (temp != null) { + prop.put("LOCATION", temp); + return prop; + } + + temp = deleteBlacklistEntry(blacklistToUse, + selectedBlacklistEntries[i], header, supportedBlacklistTypes); + if (temp != null) { + prop.put("LOCATION", temp); + return prop; + + } } } - } else if (post.containsKey("editBlacklistEntry")) { + } else if (action.equals("editBlacklistEntry")) { /* =========================================================== * Edit entry of a blacklist @@ -277,33 +295,50 @@ public class Blacklist_p { blacklistToUse = post.get("currentBlacklist"); + final String[] editedBlacklistEntries = post.getAll("editedBlacklistEntry.*"); + // if edited entry has been posted, save changes - if(post.containsKey("editedBlacklistEntry")) { - - if (!post.get("selectedBlacklistEntry").equals(post.get("editedBlacklistEntry"))) { - String temp = deleteBlacklistEntry(post.get("currentBlacklist"), - post.get("selectedBlacklistEntry"), header, supportedBlacklistTypes); - if (temp != null) { - prop.put("LOCATION", temp); - return prop; - } - - temp = addBlacklistEntry(post.get("currentBlacklist"), - post.get("editedBlacklistEntry"), header, supportedBlacklistTypes); - if (temp != null) { - prop.put("LOCATION", temp); - return prop; + if (editedBlacklistEntries.length > 0) { + + final String[] selectedBlacklistEntries = post.getAll("selectedBlacklistEntry.*"); + + if (selectedBlacklistEntries.length != editedBlacklistEntries.length) { + prop.put("LOCATION", ""); + return prop; + } + + String temp = null; + + for (int i = 0; i < selectedBlacklistEntries.length; i++) { + + if (!selectedBlacklistEntries[i].equals(editedBlacklistEntries[i])) { + temp = deleteBlacklistEntry(blacklistToUse, selectedBlacklistEntries[i], header, supportedBlacklistTypes); + if (temp != null) { + prop.put("LOCATION", temp); + return prop; + } + + temp = addBlacklistEntry(blacklistToUse, editedBlacklistEntries[i], header, supportedBlacklistTypes); + if (temp != null) { + prop.put("LOCATION", temp); + return prop; + } } } + + prop.putHTML(DISABLED + EDIT + "currentBlacklist", blacklistToUse); + // else return entry to be edited } else { - - final String selectedEntry = post.get("selectedEntry"); - final String currentBlacklist = post.get("currentBlacklist"); - if (selectedEntry != null && currentBlacklist != null) { - prop.putHTML(DISABLED + "edit_item", selectedEntry); - prop.putHTML(DISABLED + "edit_currentBlacklist", currentBlacklist); - prop.put(DISABLED + "edit", "1"); + final String[] selectedEntries = post.getAll("selectedEntry.*"); + if (selectedEntries != null && blacklistToUse != null) { + for (int i = 0; i < selectedEntries.length; i++) { + prop.putHTML(DISABLED + EDIT + "editList_" + i + "_item", selectedEntries[i]); + prop.put(DISABLED + EDIT + "editList_" + i + "_count", i); + } + prop.putHTML(DISABLED + EDIT + "currentBlacklist", blacklistToUse); + prop.put(DISABLED + "edit", "1"); + prop.put(DISABLED + EDIT + "editList", selectedEntries.length); } } } @@ -325,44 +360,24 @@ public class Blacklist_p { Arrays.sort(list.toArray(sortedlist)); // display them + boolean dark = true; for (int j=0;j 0) { // no nullpointer error - int peerCount = 0; - try { - final TreeMap hostList = new TreeMap(); - final Iterator e = sb.webIndex.seedDB.seedsConnected(true, false, null, (float) 0.0); - while (e.hasNext()) { - final yacySeed seed = e.next(); - if (seed != null) hostList.put(seed.get(yacySeed.NAME, "nameless"),seed.hash); - } - - String peername; - while ((peername = hostList.firstKey()) != null) { - final String Hash = hostList.get(peername); - prop.putHTML(DISABLED + "otherHosts_" + peerCount + "_hash", Hash); - prop.putXML(DISABLED + "otherHosts_" + peerCount + "_name", peername); - hostList.remove(peername); - peerCount++; - } - } catch (final Exception e) {/* */} - prop.put(DISABLED + "otherHosts", peerCount); - } + prop.put(DISABLED + EDIT + "Itemlist", entryCount); } // List BlackLists int blacklistCount = 0; + int blacklistMoveCount = 0; if (dirlist != null) { for (String element : dirlist) { @@ -379,6 +394,9 @@ public class Blacklist_p { } prop.put(DISABLED + "currentActiveFor", supportedBlacklistTypes.length); + } else { + prop.putXML(DISABLED + EDIT + BLACKLIST_MOVE + blacklistMoveCount + "_name", element); + blacklistMoveCount++; } if (listManager.listSetContains(BLACKLIST_SHARED, element)) { @@ -399,8 +417,10 @@ public class Blacklist_p { } } prop.put(DISABLED + "blackLists", blacklistCount); + prop.put(DISABLED + EDIT + "blackListsMove", blacklistMoveCount); prop.putXML(DISABLED + "currentBlacklist", (blacklistToUse==null) ? "" : blacklistToUse); + prop.putXML(DISABLED + EDIT + "currentBlacklist", (blacklistToUse==null) ? "" : blacklistToUse); prop.put("disabled", (blacklistToUse == null) ? "1" : "0"); return prop; } diff --git a/htroot/env/base.css b/htroot/env/base.css index dbab5f0ef..0284d3c10 100644 --- a/htroot/env/base.css +++ b/htroot/env/base.css @@ -9,24 +9,24 @@ # use section names to jump ############ Sections: ######################## -## "global elements" ## +## "global elements" ## # all html elements without ".class" or "#id" ############################################### -## "global classes" ## +## "global classes" ## # i.e. ".strong"; ".left"; ".error"; ############################################### -## "privat classes" ## +## "privat classes" ## # all htnml-elements with a specific class # i.e. "div.content"; "span.left"; # and # "div.content span a."; "form.search fieldset legend"; # sorted by the last html-element ############################################### -## "site specific" ## +## "site specific" ## # all site specific elements # i.e. "body#search form"; "body#stats table td.strong"; ############################################### -## "other" ## +## "other" ## # all "other" elements # i.e. "#left"; "#myID.div"; */ @@ -675,9 +675,23 @@ img.bookmarkIcon { /* site specific ------------------------------------*/ +body#Blacklist fieldset.selectList { + float:left; + margin-top:0; + width:45%; +} +body#Blacklist fieldset.createList { + margin-top:0; + width:45%; +} body#Blacklist fieldset.editList { float:left; margin-top:0; + width:45%; +} +body#Blacklist fieldset.listSettings { + margin-top:0; + width:45%; } body#PerformanceQueues table, body#PerformanceQueues table input, body#PerformanceMemory table, body#PerformanceMemory table input { font-size:90%; diff --git a/htroot/env/templates/submenuBlacklist.template b/htroot/env/templates/submenuBlacklist.template index 52357d01c..a02bb6c1f 100644 --- a/htroot/env/templates/submenuBlacklist.template +++ b/htroot/env/templates/submenuBlacklist.template @@ -3,5 +3,7 @@ \ No newline at end of file diff --git a/htroot/sharedBlacklist_p.html b/htroot/sharedBlacklist_p.html index 62c71b705..c7ac0033a 100644 --- a/htroot/sharedBlacklist_p.html +++ b/htroot/sharedBlacklist_p.html @@ -24,6 +24,7 @@ #%env/templates/header.template%# + #%env/templates/submenuBlacklist.template%#

Add Items to Blacklist

@@ -50,7 +51,6 @@
- #(page)# @@ -59,7 +59,15 @@ - +
Blacklist target:#[target]# + + + +
diff --git a/htroot/sharedBlacklist_p.java b/htroot/sharedBlacklist_p.java index 62a85ef27..c750e1228 100644 --- a/htroot/sharedBlacklist_p.java +++ b/htroot/sharedBlacklist_p.java @@ -32,9 +32,9 @@ import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; -import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import de.anomic.crawler.HTTPLoader; import de.anomic.data.listManager; @@ -74,8 +74,27 @@ public class sharedBlacklist_p { prop.putHTML("page_target", selectedBlacklistName); if (post != null) { - ArrayList otherBlacklist = null; + // initialize the list manager + listManager.switchboard = (plasmaSwitchboard) env; + listManager.listsPath = new File(listManager.switchboard.getRootPath(),listManager.switchboard.getConfig("listManager.listsPath", "DATA/LISTS")); + + + // loading all blacklist files located in the directory + final List dirlist = listManager.getDirListing(listManager.listsPath); + + // List BlackLists + int blacklistCount = 0; + + if (dirlist != null) { + for (String element : dirlist) { + prop.putXML("page_blackLists_" + blacklistCount + "_name", element); + blacklistCount++; + } + } + prop.put("page_blackLists", blacklistCount); + + List otherBlacklist = null; if (post.containsKey("hash")) { /* ====================================================== * Import blacklist from other peer @@ -86,6 +105,7 @@ public class sharedBlacklist_p { // generate the download URL String downloadURL = null; + String downloadURLOld = null; if( sb.webIndex.seedDB != null ){ //no nullpointer error.. final yacySeed seed = sb.webIndex.seedDB.getConnected(Hash); if (seed != null) { @@ -94,7 +114,8 @@ public class sharedBlacklist_p { final String peerName = seed.get(yacySeed.NAME, "<" + IP + ":" + Port + ">"); prop.putHTML("page_source", peerName); - downloadURL = "http://" + IP + ":" + Port + "/yacy/list.html?col=black"; + downloadURL = "http://" + IP + ":" + Port + "/xml/blacklists.xml"; + downloadURLOld = "http://" + IP + ":" + Port + "/yacy/list.html?col=black"; } else { prop.put("status", STATUS_PEER_UNKNOWN);//YaCy-Peer not found prop.putHTML("status_name", Hash); @@ -106,7 +127,7 @@ public class sharedBlacklist_p { prop.put("page", "1"); } - if (downloadURL != null) { + if (downloadURLOld != null) { // download the blacklist try { final httpRequestHeader reqHeader = new httpRequestHeader(); @@ -115,8 +136,9 @@ public class sharedBlacklist_p { reqHeader.put(httpRequestHeader.USER_AGENT, HTTPLoader.yacyUserAgent); // get List - final yacyURL u = new yacyURL(downloadURL, null); - otherBlacklist = nxTools.strings(HttpClient.wget(u.toString(), reqHeader, 1000), "UTF-8"); + yacyURL u = new yacyURL(downloadURLOld, null); + + otherBlacklist = nxTools.strings(HttpClient.wget(u.toString(), reqHeader, 1000), "UTF-8"); } catch (final Exception e) { prop.put("status", STATUS_PEER_UNKNOWN); prop.putHTML("status_name", Hash);