@Override protected WaybackRequest parseDateUrl(String dateStr, String urlStr) { if (urlStr.endsWith("*")) return null; Matcher matcher = TIMESTAMP_REGEX.matcher(dateStr); if (!matcher.matches()) return null; String startDateStr = matcher.group(1); String endDateStr = matcher.group(2); String startDate = Timestamp.parseBefore(startDateStr).getDateStr(); String endDate = Timestamp.parseAfter(endDateStr).getDateStr(); return WaybackRequest.createCaptureQueryRequet(urlStr, null, startDate, endDate); }
@Override protected WaybackRequest parseDateUrl(String dateStr, String urlStr) { if (urlStr.endsWith("*")) return null; Matcher matcher = TIMESTAMP_REGEX.matcher(dateStr); if (!matcher.matches()) return null; String startDateStr = matcher.group(1); String endDateStr = matcher.group(2); String startDate = Timestamp.parseBefore(startDateStr).getDateStr(); String endDate = Timestamp.parseAfter(endDateStr).getDateStr(); return WaybackRequest.createCaptureQueryRequet(urlStr, null, startDate, endDate); }
@Override protected WaybackRequest parseDateUrl(String dateStr, String urlStr) { if (urlStr.endsWith("*")) return null; Matcher matcher = TIMESTAMP_REGEX.matcher(dateStr); if (!matcher.matches()) return null; dateStr = matcher.group(1); String startDate; String endDate; String requestDate; if (dateStr.length() == 0) { startDate = getEarliestTimestamp(); endDate = getLatestTimestamp(); requestDate = endDate; } else if (dateStr.length() == 14) { startDate = getEarliestTimestamp(); endDate = getLatestTimestamp(); requestDate = Timestamp.parseAfter(dateStr).getDateStr(); } else { startDate = Timestamp.parseBefore(dateStr).getDateStr(); endDate = Timestamp.parseAfter(dateStr).getDateStr(); requestDate = endDate; } return WaybackRequest.createCaptureQueryRequet(urlStr, requestDate, startDate, endDate); } }
@Override protected WaybackRequest parseDateUrl(String dateStr, String urlStr) { if (urlStr.endsWith("*")) return null; Matcher matcher = TIMESTAMP_REGEX.matcher(dateStr); if (!matcher.matches()) return null; dateStr = matcher.group(1); String startDate; String endDate; String requestDate; if (dateStr.length() == 0) { startDate = getEarliestTimestamp(); endDate = getLatestTimestamp(); requestDate = endDate; } else if (dateStr.length() == 14) { startDate = getEarliestTimestamp(); endDate = getLatestTimestamp(); requestDate = Timestamp.parseAfter(dateStr).getDateStr(); } else { startDate = Timestamp.parseBefore(dateStr).getDateStr(); endDate = Timestamp.parseAfter(dateStr).getDateStr(); requestDate = endDate; } return WaybackRequest.createCaptureQueryRequet(urlStr, requestDate, startDate, endDate); } }
/** * test of timestamp-collapsing. * <p>Actual processing happens in {@link CDXServer}. {@link EmbeddedCDXServerIndex} * simply passes {@link WaybackRequest#getCollapseTime()} to {@link CDXQuery#setCollapse(String[])}. * if {@code collapseTime} is unspecified in {@code WaybackRequest} (-1), default value * {@code timestampDedupLength} will be used. * @throws Exception */ public void testCollapseTime() throws Exception { WaybackRequest wbr = WaybackRequest.createCaptureQueryRequet( "http://example.com/", null, null, null); setCdxLines(CDXLINE1); { cut.setTimestampDedupLength(10); @SuppressWarnings("unused") SearchResults sr = cut.query(wbr); Object[] args = testCDXServer.capturedArgs.get(0); assertEquals(10, ((CDXQuery)args[0]).getCollapseTime()); } testCDXServer.clearCapturedArgs(); { wbr.setCollapseTime(8); @SuppressWarnings("unused") SearchResults sr = cut.query(wbr); Object[] args = testCDXServer.capturedArgs.get(0); assertEquals(8, ((CDXQuery)args[0]).getCollapseTime()); } }