public ClosestTrackingCaptureFilterGroup(WaybackRequest request, UrlCanonicalizer canonicalizer) { chain = new ObjectFilterChain<CaptureSearchResult>(); if(request.isCaptureQueryRequest() || request.isReplayRequest()) { closestTracker = new ClosestResultTrackingFilter(request.getReplayDate().getTime()); chain.addFilter(closestTracker); } }
public ClosestTrackingCaptureFilterGroup(WaybackRequest request, UrlCanonicalizer canonicalizer) { chain = new ObjectFilterChain<CaptureSearchResult>(); if(request.isCaptureQueryRequest() || request.isReplayRequest()) { closestTracker = new ClosestResultTrackingFilter(request.getReplayDate().getTime()); chain.addFilter(closestTracker); } }
/** * * @return A string representation of this object. */ @Override public String toString() { if(wbRequest.isReplayRequest()) { return toReplayString(wbRequest.getRequestUrl()); } else if(wbRequest.isCaptureQueryRequest()) { return toQueryString(wbRequest.getRequestUrl()); } return toPrefixQueryString(wbRequest.getRequestUrl()); }
/** * * @return A string representation of this object. */ @Override public String toString() { if(wbRequest.isReplayRequest()) { return toReplayString(wbRequest.getRequestUrl()); } else if(wbRequest.isCaptureQueryRequest()) { return toQueryString(wbRequest.getRequestUrl()); } return toPrefixQueryString(wbRequest.getRequestUrl()); }
if(wbRequest.isReplayRequest() || wbRequest.isCaptureQueryRequest()) { results = new CaptureSearchResults(); } else {
if(wbRequest.isReplayRequest() || wbRequest.isCaptureQueryRequest()) { results = new CaptureSearchResults(); } else {
SearchResults searchResults = null; if (wbRequest.isReplayRequest() || wbRequest.isCaptureQueryRequest()) { resultWriter = this.getCaptureSearchWriter(wbRequest, waybackAuthToken, false); .isCaptureQueryRequest()) && tryFuzzyMatch) { resultWriter = this.getCaptureSearchWriter(wbRequest, waybackAuthToken, true);
public SearchResults query(WaybackRequest wbRequest) throws ResourceIndexNotAvailableException, ResourceNotInArchiveException, BadQueryException, AccessControlException { SearchResults results = null; // return value placeholder if (wbRequest.isReplayRequest()) { results = doCaptureQuery(wbRequest, TYPE_REPLAY); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_REPLAY_QUERY); } else if (wbRequest.isCaptureQueryRequest()) { results = doCaptureQuery(wbRequest, TYPE_CAPTURE); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_CAPTURE_QUERY); } else if (wbRequest.isUrlQueryRequest()) { results = doUrlQuery(wbRequest); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_URL_QUERY); } else { throw new BadQueryException("Unknown query type, must be " + WaybackRequest.REQUEST_REPLAY_QUERY + ", " + WaybackRequest.REQUEST_CAPTURE_QUERY + ", or " + WaybackRequest.REQUEST_URL_QUERY); } return results; }
public SearchResults query(WaybackRequest wbRequest) throws ResourceIndexNotAvailableException, ResourceNotInArchiveException, BadQueryException, AccessControlException { SearchResults results = null; // return value placeholder if (wbRequest.isReplayRequest()) { results = doCaptureQuery(wbRequest, TYPE_REPLAY); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_REPLAY_QUERY); } else if (wbRequest.isCaptureQueryRequest()) { results = doCaptureQuery(wbRequest, TYPE_CAPTURE); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_CAPTURE_QUERY); } else if (wbRequest.isUrlQueryRequest()) { results = doUrlQuery(wbRequest); results.putFilter(WaybackRequest.REQUEST_TYPE, WaybackRequest.REQUEST_URL_QUERY); } else { throw new BadQueryException("Unknown query type, must be " + WaybackRequest.REQUEST_REPLAY_QUERY + ", " + WaybackRequest.REQUEST_CAPTURE_QUERY + ", or " + WaybackRequest.REQUEST_URL_QUERY); } return results; }
SearchResults searchResults = null; if (wbRequest.isReplayRequest() || wbRequest.isCaptureQueryRequest()) { resultWriter = this.getCaptureSearchWriter(wbRequest, waybackAuthToken, false); .isCaptureQueryRequest()) && tryFuzzyMatch) { resultWriter = this.getCaptureSearchWriter(wbRequest, waybackAuthToken, true);
} else if (wbRequest.isCaptureQueryRequest()) {
} else if (wbRequest.isCaptureQueryRequest()) {
/** * test for {@link PathDateRangeQueryRequestParser}, %-encoded version. * @throws Exception */ public void testPathDateRangeEncoded() throws Exception { WaybackRequest wbr1 = parse("/web/20100101000000-20100630235959%2A/http://www.yahoo.com/"); assertNotNull(wbr1); assertTrue(wbr1.isCaptureQueryRequest()); assertEquals("20100101000000", wbr1.getStartTimestamp()); assertEquals("20100630235959", wbr1.getEndTimestamp()); // assertEquals("20100630235959", wbr1.getReplayTimestamp()); assertEquals(null, wbr1.getReplayTimestamp()); assertEquals("http://www.yahoo.com/", wbr1.getRequestUrl()); }
/** * Another test of {@link PathDatePrefixQueryRequestParser}: * URL is recognized even when "{@code *}" is %-encoded. * <p>this is a desired behavior to be implemented (assertion is disabled). * see issue <a href="https://webarchive.jira.com/browse/WWM-110">WWM-110</a></p> * @throws Exception */ public void testDatePrefixEncoded() throws Exception { WaybackRequest wbr1 = parse("/web/20100101%2A/http://www.yahoo.com/?p=%2A"); assertNotNull(wbr1); assertTrue(wbr1.isCaptureQueryRequest()); assertEquals("20100101000000", wbr1.getStartTimestamp()); assertEquals("20100101235959", wbr1.getEndTimestamp()); assertEquals("20100101235959", wbr1.getReplayTimestamp()); assertEquals("http://www.yahoo.com/?p=%2A", wbr1.getRequestUrl()); WaybackRequest wbr2 = parse("/web/%2A/http://www.yahoo.com/"); assertNotNull(wbr2); assertTrue(wbr2.isCaptureQueryRequest()); assertEquals(EXPECTED_START_TIMESTAMP, wbr2.getStartTimestamp()); assertEquals(EXPECTED_END_TIMESTAMP, wbr2.getEndTimestamp()); assertEquals(null, wbr2.getReplayTimestamp()); }
/** * test of {@link PathDatePreofixQueryRequestParser}. */ public void testDatePrefix() throws Exception { // less-than-14-digit timestamp with "*": narrowed time range, highlight // the latest within the range. WaybackRequest wbr1 = parse("/web/20100101*/http://www.yahoo.com/?p=2"); assertNotNull(wbr1); assertTrue(wbr1.isCaptureQueryRequest()); assertEquals("20100101000000", wbr1.getStartTimestamp()); assertEquals("20100101235959", wbr1.getEndTimestamp()); assertEquals("20100101235959", wbr1.getReplayTimestamp()); assertEquals("http://www.yahoo.com/?p=2", wbr1.getRequestUrl()); // just "*": entire time range, replay the latest. WaybackRequest wbr2 = parse("/web/*/http://www.yahoo.com/"); assertNotNull(wbr2); assertTrue(wbr2.isCaptureQueryRequest()); assertEquals(EXPECTED_START_TIMESTAMP, wbr2.getStartTimestamp()); assertEquals(EXPECTED_END_TIMESTAMP, wbr2.getEndTimestamp()); assertEquals(null, wbr2.getReplayTimestamp()); // full 14-digit timestamp with "*": entire time range, highlight the // closest to the specified date. WaybackRequest wbr3 = parse("/web/20100101000000*/http://www.yahoo.com/"); assertNotNull(wbr3); assertTrue(wbr3.isCaptureQueryRequest()); assertEquals(EXPECTED_START_TIMESTAMP, wbr3.getStartTimestamp()); assertEquals(EXPECTED_END_TIMESTAMP, wbr3.getEndTimestamp()); assertEquals("20100101000000", wbr3.getReplayTimestamp()); }
assertTrue(wbr1.isCaptureQueryRequest()); assertEquals("20100101000000", wbr1.getStartTimestamp()); assertEquals("20100630235959", wbr1.getEndTimestamp()); assertTrue(wbr1.isCaptureQueryRequest()); assertEquals("20100101000000", wbr2.getStartTimestamp()); assertEquals("20141231235959", wbr2.getEndTimestamp());
} else if(request.isCaptureQueryRequest()) { chain.addFilter(new UrlMatchFilter(keyUrl)); chain.addFilter(new SelfRedirectFilter(canonicalizer));
} else if(request.isCaptureQueryRequest()) { chain.addFilter(new UrlMatchFilter(keyUrl)); chain.addFilter(new SelfRedirectFilter(canonicalizer));
/** * test of {@link PathPrefixDatePrefixQueryRequestParser}. * <p>%-encoded timestamp.</p> * @throws Exception */ public void testPathPrefixDatePrefixEncoded() throws Exception { { WaybackRequest wbr = parse("/web/2010%2A/http://www.yahoo.com/*"); assertNotNull(wbr); assertTrue(wbr.isUrlQueryRequest()); assertEquals("20100101000000", wbr.getStartTimestamp()); assertEquals("20101231235959", wbr.getEndTimestamp()); assertEquals("http://www.yahoo.com/", wbr.getRequestUrl()); } // negative case - %2A doesn't make it path-prefix. { WaybackRequest wbr = parse("/web/2010%2A/http://www.yahoo.com/%2A"); assertNotNull(wbr); assertTrue(wbr.isCaptureQueryRequest()); assertEquals("20100101000000", wbr.getStartTimestamp()); assertEquals("20101231235959", wbr.getEndTimestamp()); assertEquals("http://www.yahoo.com/%2A", wbr.getRequestUrl()); } }
/** * test of {@link PathPrefixDateRangeQueryRequestParser}, * %-encoded version. * @throws Exception */ public void testPathPrefixdateRangeEncoded() throws Exception { { WaybackRequest wbr = parse("/web/20100101%2D20100531%2A/http://www.yahoo.com/*"); assertNotNull(wbr); assertTrue(wbr.isUrlQueryRequest()); assertEquals("20100101000000", wbr.getStartTimestamp()); assertEquals("20100531235959", wbr.getEndTimestamp()); assertEquals("http://www.yahoo.com/", wbr.getRequestUrl()); } { // URL part shall not be URL-decoded WaybackRequest wbr = parse("/web/20100101%2D20100531%2A/http%3a//www.yahoo.com/%2A"); assertNotNull(wbr); assertTrue(wbr.isCaptureQueryRequest()); assertEquals("20100101000000", wbr.getStartTimestamp()); assertEquals("20100531235959", wbr.getEndTimestamp()); // WaybackRequet#setRequestUrl() prepends "http://" if urlStr does // not begin with http:// assertEquals("http://http%3a//www.yahoo.com/%2A", wbr.getRequestUrl()); } }