package eu.europeana.creative.dataset.culturecam.v2.download;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import eu.europeana.api.client.model.search.EuropeanaObject;
import eu.europeana.api.client.thumbnails.download.ThumbnailDownloader;
public class CimecThumbnailDownloader extends ThumbnailDownloader {
public CimecThumbnailDownloader(File downloadFolder) {
super(downloadFolder);
}
public void downloadCimecIds(Map<String, String> thumbnailMap) throws IOException {
int failureCount = 0;
boolean successful;
EuropeanaObject object;
String relation;
String imageUrl;
//final File downloadFolder = new File(getDownloadFolder().getParentFile(), "cimec/");
final File downloadFolder = new File("/tmp/eucreative/cimec/");
for (Map.Entry<String, String> thumbnail : thumbnailMap.entrySet()) {
object = getEuropeanaClient(). getObject(thumbnail.getKey());
relation = getRelation(object);
imageUrl = buildCimecUrl(relation);
successful = writeThumbnailToFolder(thumbnail.getKey(), imageUrl, downloadFolder);
if(!successful){
System.out.println("Cannot download: " + thumbnail.getKey() + ";" + thumbnail.getValue());
failureCount++;
}
}
System.out.println("Total items: " + thumbnailMap.size());
System.out.println("Failed for items: " + failureCount);
}
private String buildCimecUrl(String relation) {
return "http://clasate.cimec.ro/medium/" + relation+".jpg";
}
private String getRelation(EuropeanaObject object) {
// TODO Auto-generated method stub
List<String> relations = object.getProxies().get(0).getDcRelation().get("def");
for (String relation : relations) {
if(relation.indexOf(" ")< 0)
return relation;
}
return null;
}
}