Project

General

Profile

1
package eu.dnetlib.download.plugin;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import com.google.common.base.Function;
7
import com.google.common.collect.Iterables;
8
import com.google.gson.Gson;
9

    
10
import eu.dnetlib.data.download.rmi.DownloadItem;
11
import eu.dnetlib.data.download.rmi.DownloadPlugin;
12

    
13
public class ArxivDownloadPlugin extends AbstractDownloadPlugin implements DownloadPlugin {
14

    
15
	@Override
16
	public DownloadItem retrieveUrl(final DownloadItem input) {
17
		if (checkOpenAccess(input) == null) return null;
18
		String url = input.getOriginalUrl();
19
		if ((url == null) || (url.trim().length() == 0)) return input;
20
		@SuppressWarnings("unchecked")
21
		List<String> urls = new Gson().fromJson(url, ArrayList.class);
22
		if ((urls == null) || (urls.size() == 0)) return input;
23
		for (String s : urls) {
24
			if (s.startsWith("http")) {
25
				input.setOriginalUrl(s);
26
				String correctUrl = s.replace("abs", "pdf");
27
				correctUrl += ".pdf";
28
				input.setUrl(correctUrl);
29
			}
30
		}
31
		return input;
32
	}
33

    
34
	@Override
35
	public Iterable<DownloadItem> retireveUrls(final Iterable<DownloadItem> urls) {
36
		return Iterables.transform(urls, new Function<DownloadItem, DownloadItem>() {
37

    
38
			@Override
39
			public DownloadItem apply(final DownloadItem input) {
40
				return retrieveUrl(input);
41
			}
42
		});
43
	}
44

    
45
	@Override
46
	public String getPluginName() {
47
		return "ArxivDownloadPlugin";
48
	}
49
}
(2-2/8)