Skip to content

Commit 442fc32

Browse files
committed
Merge branch 'hotfix/963' into hotfix/3.1.229
2 parents cd33467 + 699bf4a commit 442fc32

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

src/main/java/mServer/crawler/sender/ard/json/ArdTopicsLetterDeserializer.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import mServer.crawler.sender.base.JsonUtils;
1111

1212
import java.lang.reflect.Type;
13+
import java.util.Arrays;
1314
import java.util.HashSet;
1415
import java.util.Optional;
1516
import java.util.Set;
@@ -23,9 +24,13 @@ public class ArdTopicsLetterDeserializer implements JsonDeserializer<PaginationU
2324
private static final String ELEMENT_TOTAL_ELEMENTS = "totalElements";
2425
private static final String ELEMENT_PAGE_SIZE = "pageSize";
2526
private static final String ELEMENT_PAGINATION = "pagination";
27+
private static final String ELEMENT_PUBLICATION_SERVICE = "publicationService";
28+
private static final String ATTRIBUTE_NAME = "name";
2629

2730
private static final String ATTRIBUTE_ID = "id";
2831

32+
private static final String[] IGNORED_SENDER = new String[] {"zdf", "kika", "3sat", "arte"};
33+
2934
@Override
3035
public PaginationUrlDto deserialize(
3136
final JsonElement jsonElement, final Type type, final JsonDeserializationContext context) {
@@ -79,13 +84,31 @@ private Set<CrawlerUrlDTO> parseTeaser(final JsonObject teaserObject) {
7984
id = JsonUtils.getAttributeAsString(teaserObject, ATTRIBUTE_ID);
8085
}
8186

82-
id.ifPresent(
83-
nonNullId ->
84-
results.add(
85-
new CrawlerUrlDTO(
86-
String.format(
87-
ArdConstants.TOPIC_URL, nonNullId, ArdConstants.TOPIC_PAGE_SIZE))));
87+
if (isRelevant(teaserObject)) {
88+
id.ifPresent(
89+
nonNullId ->
90+
results.add(
91+
new CrawlerUrlDTO(
92+
String.format(
93+
ArdConstants.TOPIC_URL, nonNullId, ArdConstants.TOPIC_PAGE_SIZE))));
94+
}
8895

8996
return results;
9097
}
98+
99+
private boolean isRelevant(final JsonObject teaserObject) {
100+
if (teaserObject.has(ELEMENT_PUBLICATION_SERVICE)) {
101+
final JsonObject publicationService =
102+
teaserObject.get(ELEMENT_PUBLICATION_SERVICE).getAsJsonObject();
103+
final Optional<String> attributeAsString =
104+
JsonUtils.getAttributeAsString(publicationService, ATTRIBUTE_NAME);
105+
if (attributeAsString.isPresent()) {
106+
107+
return !Arrays.stream(IGNORED_SENDER)
108+
.anyMatch(sender -> sender.equalsIgnoreCase(attributeAsString.get()));
109+
}
110+
}
111+
112+
return true;
113+
}
91114
}

0 commit comments

Comments
 (0)