From: <bra...@us...> - 2008-12-05 22:46:34
|
Revision: 2649 http://archive-access.svn.sourceforge.net/archive-access/?rev=2649&view=rev Author: bradtofel Date: 2008-12-05 22:46:30 +0000 (Fri, 05 Dec 2008) Log Message: ----------- ACC-56: two new XML Query .jsp renderers that output RSS opensearch format. Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchCaptureResults.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchUrlResults.jsp trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/opensearchdescription.xml Added: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchCaptureResults.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchCaptureResults.jsp (rev 0) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchCaptureResults.jsp 2008-12-05 22:46:30 UTC (rev 2649) @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?><%@ + page language="java" pageEncoding="utf-8" contentType="text/xml;charset=utf-8" +%><%@ + page import="java.util.Iterator" +%><%@ + page import="java.util.ArrayList" +%><%@ + page import="java.util.Map" +%><%@ + page import="java.util.Enumeration" +%><%@ + page import="org.archive.wayback.core.CaptureSearchResult" +%><%@ + page import="org.archive.wayback.core.CaptureSearchResults" +%><%@ + page import="org.archive.wayback.core.SearchResults" +%><%@ + page import="org.archive.wayback.core.UIResults" +%><%@ + page import="org.archive.wayback.core.WaybackRequest" +%><%@ + page import="org.archive.wayback.requestparser.OpenSearchRequestParser" +%><%@ + page import="org.archive.wayback.util.StringFormatter" +%><% +UIResults uiResults = UIResults.extractCaptureQuery(request); + +WaybackRequest wbRequest = uiResults.getWbRequest(); +StringFormatter fmt = wbRequest.getFormatter(); +CaptureSearchResults results = uiResults.getCaptureResults(); +Iterator<CaptureSearchResult> itr = results.iterator(); +String contextRoot = wbRequest.getContextPrefix(); +String searchString = wbRequest.getRequestUrl(); +long firstResult = results.getFirstReturned(); +long shownResultCount = results.getReturnedCount(); +long lastResult = results.getReturnedCount() + firstResult; +long resultCount = results.getMatchingCount(); +String searchTerms = ""; +Map<String,String[]> queryMap = request.getParameterMap(); +String arr[] = queryMap.get(OpenSearchRequestParser.SEARCH_QUERY); +if(arr != null && arr.length > 1) { + searchTerms = arr[0]; +} +%> +<rss version="2.0" + xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" + xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Wayback OpenSearch Results</title> + <link><%= contextRoot %>></link> + <description><%= fmt.format("PathQueryClassic.searchedFor",searchString) %></description> + <opensearch:totalResults><%= resultCount %></opensearch:totalResults> + <opensearch:startIndex><%= firstResult %></opensearch:startIndex> + <opensearch:itemsPerPage><%= shownResultCount %></opensearch:itemsPerPage> + <atom:link rel="search" type="application/opensearchdescription+xml" href="<%= contextRoot %>/opensearchdescription.xml"/> + <opensearch:Query role="request" searchTerms="<%= UIResults.encodeXMLContent(searchTerms) %>" startPage="<%= wbRequest.getPageNum() %>" /> +<% + while(itr.hasNext()) { + %> + <item> + <% + CaptureSearchResult result = itr.next(); + + String replayUrl = UIResults.encodeXMLEntity( + uiResults.resultToReplayUrl(result)); + + String prettyDate = UIResults.encodeXMLEntity( + fmt.format("MetaReplay.captureDateDisplay",result.getCaptureDate())); + + String requestUrl = UIResults.encodeXMLEntity( + wbRequest.getRequestUrl()); + %> + <title><%= prettyDate %></title> + <link><%= replayUrl %></link> + <description><%= requestUrl %></description> + </item> + <% + } +%> + </channel> + </rss> Added: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchUrlResults.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchUrlResults.jsp (rev 0) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/query/OpenSearchUrlResults.jsp 2008-12-05 22:46:30 UTC (rev 2649) @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?><%@ + page language="java" pageEncoding="utf-8" contentType="text/xml;charset=utf-8" +%><%@ + page import="java.util.Iterator" +%><%@ + page import="java.util.ArrayList" +%><%@ + page import="java.util.Date" +%><%@ + page import="java.util.Map" +%><%@ + page import="java.util.Enumeration" +%><%@ + page import="org.archive.wayback.core.UrlSearchResult" +%><%@ + page import="org.archive.wayback.core.UrlSearchResults" +%><%@ + page import="org.archive.wayback.core.SearchResults" +%><%@ + page import="org.archive.wayback.core.UIResults" +%><%@ + page import="org.archive.wayback.core.WaybackRequest" +%><%@ + page import="org.archive.wayback.requestparser.OpenSearchRequestParser" +%><%@ + page import="org.archive.wayback.util.StringFormatter" +%><% +UIResults uiResults = UIResults.extractUrlQuery(request); + +WaybackRequest wbRequest = uiResults.getWbRequest(); +StringFormatter fmt = wbRequest.getFormatter(); +UrlSearchResults results = uiResults.getUrlResults(); +Iterator<UrlSearchResult> itr = results.iterator(); +String contextRoot = wbRequest.getContextPrefix(); +String searchString = wbRequest.getRequestUrl(); +long firstResult = results.getFirstReturned(); +long shownResultCount = results.getReturnedCount(); +long lastResult = results.getReturnedCount() + firstResult; +long resultCount = results.getMatchingCount(); +String searchTerms = ""; +Map<String,String[]> queryMap = request.getParameterMap(); +String arr[] = queryMap.get(OpenSearchRequestParser.SEARCH_QUERY); +if(arr != null && arr.length > 1) { + searchTerms = arr[0]; +} +%> +<rss version="2.0" + xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" + xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Wayback OpenSearch Results</title> + <link><%= contextRoot %>></link> + <description><%= fmt.format("PathQueryClassic.searchedFor",searchString) %></description> + <opensearch:totalResults><%= resultCount %></opensearch:totalResults> + <opensearch:startIndex><%= firstResult %></opensearch:startIndex> + <opensearch:itemsPerPage><%= shownResultCount %></opensearch:itemsPerPage> + <atom:link rel="search" type="application/opensearchdescription+xml" href="<%= contextRoot %>/opensearchdescription.xml"/> + <opensearch:Query role="request" searchTerms="<%= UIResults.encodeXMLContent(searchTerms) %>" startPage="<%= wbRequest.getPageNum() %>" /> +<% + while(itr.hasNext()) { + %> + <item> + <% + UrlSearchResult result = itr.next(); + + String originalUrl = result.getOriginalUrl(); + String title = UIResults.encodeXMLEntity(originalUrl); + + String queryUrl = UIResults.encodeXMLEntity( + uiResults.makeCaptureQueryUrl(originalUrl)); + + String requestUrl = UIResults.encodeXMLEntity( + wbRequest.getRequestUrl()); + long numCaptures = result.getNumCaptures(); + long numVersions = result.getNumVersions(); + + Date firstDate = result.getFirstCaptureDate(); + Date lastDate = result.getLastCaptureDate(); + %> + <title><%= title %></title> + <link><%= queryUrl %></link> + <description> + <%= requestUrl %> + <span class="mainSearchText"> + <%= fmt.format("PathPrefixQuery.versionCount",numVersions) %> + </span> + <span class="mainSearchText"> + <%= fmt.format("PathPrefixQuery.multiCaptureDate",numCaptures,firstDate,lastDate) %> + </span> + + </description> + </item> + <% + } +%> + </channel> + </rss> Added: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/opensearchdescription.xml =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/opensearchdescription.xml (rev 0) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/opensearchdescription.xml 2008-12-05 22:46:30 UTC (rev 2649) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> + <ShortName>Wayback</ShortName> + <Description>Wayback Search Result RSS feed.</Description> + <Tags>wayback rss</Tags> + <Contact>arc...@ar...</Contact> + <Url type="application/rss+xml" + template="http://wayback.archive-it.org/query?q={searchTerms}&start_page={startPage?}&count={count?}"/> +</OpenSearchDescription> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |