package eu.europeana.creative.dataset.culturecam;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import eu.europeana.api.client.thumbnails.processing.LargeThumbnailsetProcessing;
import eu.europeana.creative.dataset.culturecam.observer.FileSizeFilteringObserver;
import eu.europeana.creative.dataset.indexing.LocalImageIndexingTest;
import eu.europeana.service.ir.image.IRConfiguration;
public class CultureCamImageFilteringTest extends LocalImageIndexingTest{
@Before
public void init(){
String dataset = "culturecam";
setDataset(dataset);
}
public void indexThumbnails() throws FileNotFoundException, IOException{
//disable test
}
@Test
public void filterThumbnails() throws FileNotFoundException, IOException {
//ensureParamsInit();
IRConfiguration config = getConfig();
//File datasetFile = config.getDatasetFile(DATASET_EU_CREATIVE_COLOR);
File datasetFile = config.getDatasetFile(getDataset());
System.out.println("using configuration file : " + datasetFile.getAbsolutePath());
//setDataset("test");
LargeThumbnailsetProcessing datasetProcessor = new LargeThumbnailsetProcessing(datasetFile);
File imageFolder = config.getImageFolderAsFile(getDataset());
File outFile = getBadThumbnailsCvsFile();
if(!outFile.exists())
outFile.getParentFile().mkdirs();
else
outFile.delete();
int placeHolderSize = readPlaceHolderSize();
FileSizeFilteringObserver observer = new FileSizeFilteringObserver(imageFolder, outFile, 1000, placeHolderSize);
datasetProcessor.addObserver(observer);
datasetProcessor.processThumbnailset(0, -1, 1000);
System.out.println("Skipped items: " + datasetProcessor.getFailureCount());
}
private int readPlaceHolderSize() {
File placeholderFile = new File(getCollectionsCvsFolder() + "selection/img/placeholder_3583Bytes.jpg");
if(placeholderFile.exists())
return (int)placeholderFile.length();
else
return -1;
}
protected File getBadThumbnailsCvsFile() {
File outFile = new File(getCollectionsCvsFolder() + "filtering/badThumbnails.csv");
return outFile;
}
}