@Override public WaybackRequest parse(HttpServletRequest httpRequest, AccessPoint wbContext) throws BadQueryException { if (isLocalRequest(httpRequest)) { // local means query: let the following RequestParsers have a go // at it. return null; } WaybackRequest wbRequest = null; String requestServer = httpRequest.getServerName(); String requestPath = httpRequest.getRequestURI(); //int port = httpRequest.getServerPort(); String requestQuery = httpRequest.getQueryString(); String requestScheme = httpRequest.getScheme(); if (requestQuery != null) { requestPath = requestPath + "?" + requestQuery; } String requestUrl = requestScheme + "://" + requestServer + requestPath; wbRequest = new WaybackRequest(); wbRequest.setRequestUrl(requestUrl); wbRequest.setReplayRequest(); wbRequest.setResultsPerPage(getMaxRecords()); return wbRequest; } public List<String> getLocalhostNames() {
/** * create WaybackRequet for URL-Query request. * @param url target URL * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequest */ public static WaybackRequest createUrlQueryRequest(String url, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setUrlQueryRequest(); r.setRequestUrl(url); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; }
/** * create WaybackRequet for URL-Query request. * @param url target URL * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequest */ public static WaybackRequest createUrlQueryRequest(String url, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setUrlQueryRequest(); r.setRequestUrl(url); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; }
/** * create WaybackRequest for Capture-Query request. * @param url target URL * @param replay highlight date * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequest */ public static WaybackRequest createCaptureQueryRequet(String url, String replay, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setCaptureQueryRequest(); r.setRequestUrl(url); r.setReplayTimestamp(replay); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; } /**
/** * Create a self-referencing URL that will perform a query for all copies * of the given URL. * <p>This method builds URL that passes target URL in CGI parameter, * along with other parameters unnecessary for making simple capture * query request. It is not suitable for simple links. * {@link #makePlainCaptureQueryUrl(String)} generates clean and * plain URL.</p> * @param url to search for copies of * @return String url that will make a query for all captures of an URL. */ public String makeCaptureQueryUrl(String url) { WaybackRequest newWBR = wbRequest.clone(); newWBR.setCaptureQueryRequest(); newWBR.setRequestUrl(url); return newWBR.getAccessPoint().getQueryPrefix() + "query?" + newWBR.getQueryArguments(1); }
/** * create WaybackRequet for Replay request. * @param url target URL * @param replay requested date * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequet */ public static WaybackRequest createReplayRequest(String url, String replay, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setReplayRequest(); r.setRequestUrl(url); r.setReplayTimestamp(replay); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; }
/** * create WaybackRequet for Replay request. * @param url target URL * @param replay requested date * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequet */ public static WaybackRequest createReplayRequest(String url, String replay, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setReplayRequest(); r.setRequestUrl(url); r.setReplayTimestamp(replay); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; }
/** * create WaybackRequest for Capture-Query request. * @param url target URL * @param replay highlight date * @param start start timestamp (14-digit) * @param end end timestamp (14-digit) * @return WaybackRequest */ public static WaybackRequest createCaptureQueryRequet(String url, String replay, String start, String end) { WaybackRequest r = new WaybackRequest(); r.setCaptureQueryRequest(); r.setRequestUrl(url); r.setReplayTimestamp(replay); r.setStartTimestamp(start); r.setEndTimestamp(end); return r; } /**
/** * Create a self-referencing URL that will perform a query for all copies * of the given URL. * <p>This method builds URL that passes target URL in CGI parameter, * along with other parameters unnecessary for making simple capture * query request. It is not suitable for simple links. * {@link #makePlainCaptureQueryUrl(String)} generates clean and * plain URL.</p> * @param url to search for copies of * @return String url that will make a query for all captures of an URL. */ public String makeCaptureQueryUrl(String url) { WaybackRequest newWBR = wbRequest.clone(); newWBR.setCaptureQueryRequest(); newWBR.setRequestUrl(url); return newWBR.getAccessPoint().getQueryPrefix() + "query?" + newWBR.getQueryArguments(1); }
private WaybackRequest createReplayWaybackRequest() { WaybackRequest wbr = new WaybackRequest(); wbr.setReplayRequest(); wbr.setReplayTimestamp("20010101000000"); wbr.setRequestUrl("http://www.yahoo.com/"); return wbr; } /**
/** * create new WaybackRequest set up as replay request for {@code requestUrl} * at {@code replayTimestamp}. created object is set to #wbRequest. * @param wbRequest * @param requestUrl * @param replayTimestamp */ public void setReplayRequest(String requestUrl, String replayTimestamp) { wbRequest = new WaybackRequest(); wbRequest.setReplayRequest(); wbRequest.setRequestUrl(requestUrl); wbRequest.setReplayTimestamp(replayTimestamp); }
/** * create new WaybackRequest set up as capture query request for URL * {@code requestUrl}, at time {@ode replayTimestamp}. * @param requestUrl * @param replayTimestamp */ public final void setCaptureQueryRequest(String requestUrl, String replayTimestamp) { wbRequest = new WaybackRequest(); wbRequest.setCaptureQueryRequest(); wbRequest.setRequestUrl(requestUrl); wbRequest.setReplayTimestamp(replayTimestamp); }
/** * create new WaybackRequest set up as URL query request for URL * {@code requestUrl} at time {@code replayTimestamp}. created object is set * to {@link #wbRequest}. * @param requestUrl * @param replayTimestamp */ public void setUrlQueryRequest(String requestUrl, String replayTimestamp) { wbRequest = new WaybackRequest(); wbRequest.setUrlQueryRequest(); wbRequest.setRequestUrl(requestUrl); wbRequest.setReplayTimestamp(replayTimestamp); }
protected WaybackRequest handleDatelessRequest(AccessPoint accessPoint, String requestPath, Date mementoDate) throws BetterRequestException { // String nowTS = Timestamp.currentTimestamp().getDateStr(); // String newUrl = accessPoint.getUriConverter().makeReplayURI(nowTS, requestPath); // throw new BetterRequestException(newUrl); WaybackRequest wbRequest = new WaybackRequest(); if (wbRequest.getStartTimestamp() == null) { wbRequest.setStartTimestamp(getEarliestTimestamp()); } if (wbRequest.getEndTimestamp() == null) { wbRequest.setEndTimestamp(getLatestTimestamp()); } if (mementoDate == null) { mementoDate = new Date(); wbRequest.setBestLatestReplayRequest(); } wbRequest.setReplayDate(mementoDate); wbRequest.setAnchorDate(mementoDate); wbRequest.setReplayRequest(); wbRequest.setRequestUrl(requestPath); return wbRequest; } }
protected WaybackRequest handleDatelessRequest(AccessPoint accessPoint, String requestPath, Date mementoDate) throws BetterRequestException { // String nowTS = Timestamp.currentTimestamp().getDateStr(); // String newUrl = accessPoint.getUriConverter().makeReplayURI(nowTS, requestPath); // throw new BetterRequestException(newUrl); WaybackRequest wbRequest = new WaybackRequest(); if (wbRequest.getStartTimestamp() == null) { wbRequest.setStartTimestamp(getEarliestTimestamp()); } if (wbRequest.getEndTimestamp() == null) { wbRequest.setEndTimestamp(getLatestTimestamp()); } if (mementoDate == null) { mementoDate = new Date(); wbRequest.setBestLatestReplayRequest(); } wbRequest.setReplayDate(mementoDate); wbRequest.setAnchorDate(mementoDate); wbRequest.setReplayRequest(); wbRequest.setRequestUrl(requestPath); return wbRequest; } }
/** * for those SURT prefixes in {@code ignoreRobotsPaths}, * {@link AuthToken#isIgnoreRobots()} flag is set. * @throws Exception */ public void testIgnoreRobotPaths() throws Exception { cut.setIgnoreRobotPaths(Arrays.asList(new String[]{ "com,norobots" })); WaybackRequest wbr = new WaybackRequest(); wbr.setRequestUrl("http://norobots.com/"); wbr.setCaptureQueryRequest(); // urlkey, timestamp, original, mimetype, statuscode, digest, redirect, robotflags, // length, offset, filename. setCdxLines(CDXLINE2); @SuppressWarnings("unused") SearchResults sr = cut.query(wbr); assertEquals(1, testCDXServer.capturedArgs.size()); Object[] args = testCDXServer.capturedArgs.get(0); //CDXQuery query = (CDXQuery)args[0]; AuthToken authToken = (AuthToken)args[1]; assertTrue(authToken.isIgnoreRobots()); }
private void testFindRange(final AlphaPartitionedIndex apIndex, final String url, final String wantGroup) throws URIException, BadQueryException, ResourceIndexNotAvailableException { WaybackRequest r = new WaybackRequest(); r.setRequestUrl(apIndex.canonicalize(url)); RangeGroup g = apIndex.getRangeGroupForRequest(r); assertEquals(g.getName(),wantGroup); }
/** * Test method for {@link org.archive.wayback.archivalurl.ArchivalUrl#toPrefixQueryString(java.lang.String)}. */ public void testToString_PrefixQuery() { WaybackRequest wbr = new WaybackRequest(); wbr.setUrlQueryRequest(); wbr.setRequestUrl("http://www.yahoo.com/"); ArchivalUrl au = new ArchivalUrl(wbr); assertEquals("*/http://www.yahoo.com/*", au.toString()); }
/** * Test method for {@link org.archive.wayback.archivalurl.ArchivalUrl#toQueryString(java.lang.String)}. */ public void testToString_CaptureQuery() { WaybackRequest wbr = new WaybackRequest(); wbr.setCaptureQueryRequest(); wbr.setRequestUrl("http://www.yahoo.com/"); ArchivalUrl au = new ArchivalUrl(wbr); assertEquals("*/http://www.yahoo.com/",au.toString()); }
public void testToString_CaptureQuery_SpecificDateRange() { WaybackRequest wbr = new WaybackRequest(); wbr.setCaptureQueryRequest(); wbr.setRequestUrl("http://www.yahoo.com/"); wbr.setStartTimestamp("20100101000000"); wbr.setEndTimestamp("20101231235959"); ArchivalUrl au = new ArchivalUrl(wbr); assertEquals("20100101000000-20101231235959*/http://www.yahoo.com/", au.toString()); // Open ended date ranges wbr.setEndTimestamp(null); assertEquals("20100101000000-*/http://www.yahoo.com/", au.toString()); wbr.setStartTimestamp(null); wbr.setEndTimestamp("20101231235959"); assertEquals("-20101231235959*/http://www.yahoo.com/", au.toString()); // Query for exact date wbr.put(WaybackRequest.REQUEST_EXACT_DATE, "20100101000000"); assertEquals("20100101000000*/http://www.yahoo.com/", au.toString()); }