From e4555cbee3ead1d1c253f85df67778a7bd848bdc Mon Sep 17 00:00:00 2001 From: cominch Date: Mon, 18 Jun 2012 15:44:01 +0200 Subject: [PATCH] Augmented browsing: Pass on additional action parameter --- htroot/interaction_elements/Document_part.java | 3 ++- .../interaction_elements/OverlayInteraction.html | 4 ++-- .../interaction_elements/OverlayInteraction.java | 2 ++ htroot/interaction_elements/Tag_part.java | 2 ++ .../de/anomic/http/server/HTTPDFileHandler.java | 15 ++++++++++++--- .../net/yacy/interaction/AugmentHtmlStream.java | 7 +++++-- 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/htroot/interaction_elements/Document_part.java b/htroot/interaction_elements/Document_part.java index 57b7258fd..48425f2a5 100644 --- a/htroot/interaction_elements/Document_part.java +++ b/htroot/interaction_elements/Document_part.java @@ -21,7 +21,8 @@ public class Document_part { final serverObjects prop = new serverObjects(); prop.put("hash", post.get("hash", "")); - prop.put("url", post.get("url", "")); + prop.put("url", post.get("url", "")); + prop.put("action", post.get("action", "")); return prop; } diff --git a/htroot/interaction_elements/OverlayInteraction.html b/htroot/interaction_elements/OverlayInteraction.html index 580354a5a..d2d2e7794 100644 --- a/htroot/interaction_elements/OverlayInteraction.html +++ b/htroot/interaction_elements/OverlayInteraction.html @@ -180,9 +180,9 @@ z-index:99999; - + - + diff --git a/htroot/interaction_elements/OverlayInteraction.java b/htroot/interaction_elements/OverlayInteraction.java index 237cdf8d3..21af427df 100644 --- a/htroot/interaction_elements/OverlayInteraction.java +++ b/htroot/interaction_elements/OverlayInteraction.java @@ -15,6 +15,8 @@ public class OverlayInteraction { prop.put("enabled_url", post.get("url", "")); prop.put("enabled_urlhash", post.get("urlhash", "")); + + prop.put("enabled_action", post.get("action", "")); return prop; } diff --git a/htroot/interaction_elements/Tag_part.java b/htroot/interaction_elements/Tag_part.java index 36f17ab9b..92c8946ba 100644 --- a/htroot/interaction_elements/Tag_part.java +++ b/htroot/interaction_elements/Tag_part.java @@ -16,6 +16,8 @@ public class Tag_part { final serverObjects prop = new serverObjects(); prop.put("hash", post.get("hash", "")); + prop.put("url", post.get("url", "")); + prop.put("action", post.get("action", "")); String vocabularies = ""; diff --git a/source/de/anomic/http/server/HTTPDFileHandler.java b/source/de/anomic/http/server/HTTPDFileHandler.java index 0f97cec05..f0961effb 100644 --- a/source/de/anomic/http/server/HTTPDFileHandler.java +++ b/source/de/anomic/http/server/HTTPDFileHandler.java @@ -1423,9 +1423,15 @@ public final class HTTPDFileHandler { private static void doURLProxy(final serverObjects args, final HashMap conProp, final RequestHeader requestHeader, final OutputStream out) throws IOException { final String httpVersion = (String) conProp.get(HeaderFramework.CONNECTION_PROP_HTTP_VER); URL proxyurl = null; + String action = ""; if(conProp != null && conProp.containsKey("ARGS")) { - final String strARGS = (String) conProp.get("ARGS"); + String strARGS = (String) conProp.get("ARGS"); + if(strARGS.startsWith("action=")) { + int detectnextargument = strARGS.indexOf("&"); + action = strARGS.substring (7, detectnextargument); + strARGS = strARGS.substring(detectnextargument+1); + } if(strARGS.startsWith("url=")) { final String strUrl = strARGS.substring(4); // strip url= @@ -1461,6 +1467,9 @@ public final class HTTPDFileHandler { requestHeader.remove("Authorization"); requestHeader.remove("Connection"); requestHeader.put(HeaderFramework.HOST, proxyurl.getHost()); + + // temporarily add argument to header to pass it on to augmented browsing + requestHeader.put("YACYACTION", action); final ByteArrayOutputStream o = new ByteArrayOutputStream(); HTTPDProxyHandler.doGet(prop, requestHeader, o); @@ -1494,9 +1503,9 @@ public final class HTTPDFileHandler { // rewrite location header location = outgoingHeader.get("Location"); if (location.startsWith("http")) { - location = "/proxy.html?url=" + location; + location = "/proxy.html?action="+action+"&url=" + location; } else { - location = "/proxy.html?url=http://" + proxyurl.getHost() + "/" + location; + location = "/proxy.html?action="+action+"&url=http://" + proxyurl.getHost() + "/" + location; } outgoingHeader.put("Location", location); } diff --git a/source/net/yacy/interaction/AugmentHtmlStream.java b/source/net/yacy/interaction/AugmentHtmlStream.java index 396dcbfe6..6d7bcf3a2 100644 --- a/source/net/yacy/interaction/AugmentHtmlStream.java +++ b/source/net/yacy/interaction/AugmentHtmlStream.java @@ -210,9 +210,12 @@ public class AugmentHtmlStream { } public static StringBuffer process (StringBuffer data, Charset charset, DigestURI url, RequestHeader requestHeader) { + + String action = requestHeader.get("YACYACTION"); + requestHeader.remove("YACYACTION"); globalrequestHeader = requestHeader; - + Switchboard sb = Switchboard.getSwitchboard(); boolean augmented = false; @@ -377,7 +380,7 @@ public class AugmentHtmlStream { NodeList bodychildren = bt.getChildren(); - bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction_elements/OverlayInteraction.html?urlhash="+ ASCII.String(url.hash()) +"&url="+url.toNormalform(false, true), requestHeader))); + bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction_elements/OverlayInteraction.html?action="+action+"&urlhash="+ ASCII.String(url.hash()) +"&url="+url.toNormalform(false, true), requestHeader))); bt.setChildren(bodychildren);