Skip to content

Commit fc4bf1f

Browse files
committed
ignore certain partners
1 parent aeb33aa commit fc4bf1f

File tree

4 files changed

+46
-17
lines changed

4 files changed

+46
-17
lines changed

src/main/java/de/mediathekview/mserver/crawler/ard/ArdConstants.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ public class ArdConstants {
3636
"swr",
3737
"wdr",
3838
"one",
39+
"funk",
3940
"alpha",
4041
"tagesschau24",
41-
"funk",
42-
"phoenix",
43-
"arte"
42+
"phoenix"
4443
};
4544

4645
public static final Map<String, Sender> PARTNER_TO_SENDER = new HashMap<>();

src/main/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializer.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,16 @@ public List<ArdFilmDto> deserialize(
172172
final Sender sender = ArdConstants.PARTNER_TO_SENDER.get(partner.orElse(""));
173173
final Optional<ArdVideoInfoDto> videoInfo = parseVideos(itemObject, title.orElse(""));
174174

175-
if(title.orElse("").contains("- Die Antwort auf fast")) {
176-
177-
System.out.println("stop");
178-
}
179-
180175
if (title.isEmpty() || topic.isEmpty() || videoInfo.isEmpty()) {
181176
return films;
182177
}
183178

184179
if (sender == null) {
185-
LOG.error("Missing Partner {}", partner.orElse(""));
186180
if (partner.isEmpty()) {
187181
LOG.error("Missing Partner Element {}", jsonElement);
182+
} else {
183+
LOG.error("Ignore Partner {}", partner.get());
188184
}
189-
190185
return films;
191186
}
192187

src/main/java/de/mediathekview/mserver/crawler/ard/json/ArdTeasersDeserializer.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ abstract class ArdTeasersDeserializer {
2121
private static final String ATTRIBUTE_ID = "id";
2222
private static final String ATTRIBUTE_NUMBER_OF_CLIPS = "numberOfClips";
2323

24+
private static final String ELEMENT_PUBLICATION_SERVICE = "publicationService";
25+
private static final String ATTRIBUTE_PARTNER = "partner";
26+
2427
Set<ArdFilmInfoDto> parseTeasers(final JsonArray teasers) {
2528
return StreamSupport.stream(teasers.spliterator(), true)
2629
.map(JsonElement::getAsJsonObject)
30+
.filter(this::isRelevant)
2731
.map(this::toFilmInfo)
2832
.filter(Objects::nonNull)
2933
.collect(Collectors.toSet());
@@ -55,4 +59,18 @@ private ArdFilmInfoDto createFilmInfo(final String id, final int numberOfClips)
5559
final String url = String.format(ArdConstants.ITEM_URL, id);
5660
return new ArdFilmInfoDto(id, url, numberOfClips);
5761
}
62+
63+
private boolean isRelevant(final JsonObject teaserObject) {
64+
if (teaserObject.has(ELEMENT_PUBLICATION_SERVICE)) {
65+
final JsonObject publicationService =
66+
teaserObject.get(ELEMENT_PUBLICATION_SERVICE).getAsJsonObject();
67+
final Optional<String> attributeAsString =
68+
JsonUtils.getAttributeAsString(publicationService, ATTRIBUTE_PARTNER);
69+
if (attributeAsString.isPresent()) {
70+
return ArdConstants.PARTNER_TO_SENDER.get(attributeAsString.get()) != null;
71+
}
72+
}
73+
74+
return true;
75+
}
5876
}

src/main/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsLetterDeserializer.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public class ArdTopicsLetterDeserializer implements JsonDeserializer<PaginationU
2323
private static final String ELEMENT_TOTAL_ELEMENTS = "totalElements";
2424
private static final String ELEMENT_PAGE_SIZE = "pageSize";
2525
private static final String ELEMENT_PAGINATION = "pagination";
26+
private static final String ELEMENT_PUBLICATION_SERVICE = "publicationService";
27+
private static final String ATTRIBUTE_PARTNER = "partner";
2628

2729
private static final String ATTRIBUTE_ID = "id";
2830

@@ -78,14 +80,29 @@ private Set<CrawlerUrlDTO> parseTeaser(final JsonObject teaserObject) {
7880
} else {
7981
id = JsonUtils.getAttributeAsString(teaserObject, ATTRIBUTE_ID);
8082
}
81-
82-
id.ifPresent(
83-
nonNullId ->
84-
results.add(
85-
new CrawlerUrlDTO(
86-
String.format(
87-
ArdConstants.TOPIC_URL, nonNullId, ArdConstants.TOPIC_PAGE_SIZE))));
83+
if (isRelevant(teaserObject)) {
84+
id.ifPresent(
85+
nonNullId ->
86+
results.add(
87+
new CrawlerUrlDTO(
88+
String.format(
89+
ArdConstants.TOPIC_URL, nonNullId, ArdConstants.TOPIC_PAGE_SIZE))));
90+
}
8891

8992
return results;
9093
}
94+
95+
private boolean isRelevant(final JsonObject teaserObject) {
96+
if (teaserObject.has(ELEMENT_PUBLICATION_SERVICE)) {
97+
final JsonObject publicationService =
98+
teaserObject.get(ELEMENT_PUBLICATION_SERVICE).getAsJsonObject();
99+
final Optional<String> attributeAsString =
100+
JsonUtils.getAttributeAsString(publicationService, ATTRIBUTE_PARTNER);
101+
if (attributeAsString.isPresent()) {
102+
return ArdConstants.PARTNER_TO_SENDER.get(attributeAsString.get()) != null;
103+
}
104+
}
105+
106+
return true;
107+
}
91108
}

0 commit comments

Comments
 (0)