package eu.europeana.creative.dataset.demo;
import static org.junit.Assert.assertEquals;
import it.cnr.isti.indexer.IndexHelper;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import eu.europeana.api.client.thumbnails.download.ThumbnailDownloader;
import eu.europeana.api.client.thumbnails.processing.LargeThumbnailsetProcessing;
import eu.europeana.creative.dataset.BaseCreativeDatasetUtil;
import eu.europeana.creative.dataset.IRTestConfigurations;
import eu.europeana.service.ir.image.IRConfiguration;
import eu.europeana.service.ir.image.IRConfigurationImpl;
import eu.europeana.service.ir.image.api.ImageSearchingService;
import eu.europeana.service.ir.image.api.ImageSearchingServiceImpl;
import eu.europeana.service.ir.image.exceptions.ImageSearchingException;
public class EuCreativeDemoDatasetThumbnailsTest extends
BaseCreativeDatasetUtil implements IRTestConfigurations {
// public static String CLASS_WW1 = "ww1";
ImageSearchingService imageSearchingService;
IRConfiguration config = new IRConfigurationImpl();
public static void main(String[] args) throws Exception {
JUnitCore.main(
"eu.europeana.creative.dataset.pt.EuCreativeDemoDatasetThumbnailsTest");
}
@Test
public void downloadThumbnails() throws FileNotFoundException, IOException {
File datasetFile = getConfig().getDatasetFile(DATASET_EU_CREATIVE);
File downloadFolder = getConfig().getImageFolderAsFile(DATASET_EU_CREATIVE);
LargeThumbnailsetProcessing datasetDownloader = new LargeThumbnailsetProcessing(datasetFile);
datasetDownloader.addObserver(new ThumbnailDownloader(downloadFolder));
datasetDownloader.processThumbnailset(0, -1, 1000);
System.out.println("Skipped items: " + datasetDownloader.getFailureCount());
assertEquals(0, datasetDownloader.getFailureCount());
// for (String itemId : skippedItems) {
// System.out.println(itemId);
// }
}
protected IRConfiguration getConfig() {
return config;
}
//@Test
public void buildIndexedUrlsFile() throws FileNotFoundException,
IOException, ImageSearchingException {
IRConfiguration config = getConfig();
File datasetFile = config.getDatasetFile(getDataset());
IndexHelper ixHelper = new IndexHelper();
Map<String, String> thumbnailsMap = ixHelper
.getThumbnailsMap(datasetFile);
BufferedWriter indexedUrlsWriter = getDataSetFileWriter(true);
//EuropeanaId euId = new EuropeanaId();
int counter = 0;
for (Map.Entry<String, String> thumbnail : thumbnailsMap.entrySet()) {
//euId.setNewId(thumbnail.getKey());
try {
getImageSearchingService().searchSimilar(thumbnail.getKey());
if (getImageSearchingService().getTotalResults() > 0) {
// write to file
indexedUrlsWriter.append(thumbnail.getKey()).append("; ");
indexedUrlsWriter.append(thumbnail.getValue()).append("\n");
counter++;
} else {
// not indexed yet
System.out.println("Skipped item: " + thumbnail.getKey());
}
} catch (ImageSearchingException e) {
System.out.println(e.getMessage());
}
}
System.out.println("correct items: " + counter);
}
public ImageSearchingService getImageSearchingService() {
if (imageSearchingService == null) {
imageSearchingService = new ImageSearchingServiceImpl(getDataset(),
getConfig());
imageSearchingService.init();
}
return imageSearchingService;
}
}