Skip to content

Commit 3eeb86c

Browse files
committed
Improve SpringerLink fetcher
1 parent 15c7981 commit 3eeb86c

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

src/main/java/org/jabref/logic/importer/fetcher/SpringerLink.java

+18-18
Original file line numberDiff line numberDiff line change
@@ -33,32 +33,32 @@ public class SpringerLink implements FulltextFetcher {
3333
@Override
3434
public Optional<URL> findFullText(BibEntry entry) throws IOException {
3535
Objects.requireNonNull(entry);
36-
Optional<URL> pdfLink = Optional.empty();
3736

3837
// Try unique DOI first
3938
Optional<DOI> doi = entry.getField(StandardField.DOI).flatMap(DOI::parse);
4039

41-
if (doi.isPresent()) {
42-
// Available in catalog?
43-
try {
44-
HttpResponse<JsonNode> jsonResponse = Unirest.get(API_URL)
45-
.queryString("api_key", API_KEY)
46-
.queryString("q", String.format("doi:%s", doi.get().getDOI()))
47-
.asJson();
48-
if (jsonResponse.getBody() != null) {
49-
JSONObject json = jsonResponse.getBody().getObject();
50-
int results = json.getJSONArray("result").getJSONObject(0).getInt("total");
40+
if (!doi.isPresent()) {
41+
return Optional.empty();
42+
}
43+
// Available in catalog?
44+
try {
45+
HttpResponse<JsonNode> jsonResponse = Unirest.get(API_URL)
46+
.queryString("api_key", API_KEY)
47+
.queryString("q", String.format("doi:%s", doi.get().getDOI()))
48+
.asJson();
49+
if (jsonResponse.getBody() != null) {
50+
JSONObject json = jsonResponse.getBody().getObject();
51+
int results = json.getJSONArray("result").getJSONObject(0).getInt("total");
5152

52-
if (results > 0) {
53-
LOGGER.info("Fulltext PDF found @ Springer.");
54-
pdfLink = Optional.of(new URL("http", CONTENT_HOST, String.format("/content/pdf/%s.pdf", doi.get().getDOI())));
55-
}
53+
if (results > 0) {
54+
LOGGER.info("Fulltext PDF found @ Springer.");
55+
return Optional.of(new URL("http", CONTENT_HOST, String.format("/content/pdf/%s.pdf", doi.get().getDOI())));
5656
}
57-
} catch (UnirestException e) {
58-
LOGGER.warn("SpringerLink API request failed", e);
5957
}
58+
} catch (UnirestException e) {
59+
LOGGER.warn("SpringerLink API request failed", e);
6060
}
61-
return pdfLink;
61+
return Optional.empty();
6262
}
6363

6464
@Override

src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,14 @@ public void notFoundByDOI() throws IOException {
5353

5454
assertEquals(Optional.empty(), finder.findFullText(entry));
5555
}
56+
57+
@Test
58+
void entityWithoutDoi() throws IOException {
59+
assertEquals(Optional.empty(), finder.findFullText(entry));
60+
}
61+
62+
@Test
63+
void trustLevel() {
64+
assertEquals(TrustLevel.PUBLISHER, finder.getTrustLevel());
65+
}
5666
}

0 commit comments

Comments
 (0)