Skip to content

Commit e740cd7

Browse files
committed
fix sender erkennung
1 parent 5490ba4 commit e740cd7

File tree

4 files changed

+7594
-1
lines changed

4 files changed

+7594
-1
lines changed

src/main/java/de/mediathekview/mserver/crawler/zdf/json/ZdfTopicBaseClass.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ private JsonArray getMediaNodes(JsonObject episodeObject) {
140140

141141
private Optional<String> parseSender(JsonObject episodeObject) {
142142

143+
if (episodeObject.has("contentOwner") && !episodeObject.get("contentOwner").isJsonNull()) {
144+
final JsonObject contentOwner = episodeObject.getAsJsonObject("contentOwner");
145+
final Optional<String> details = JsonUtils.getAttributeAsString(contentOwner, "details");
146+
if (details.isPresent()) {
147+
return details;
148+
}
149+
}
150+
143151
if (!episodeObject.has("tracking")) {
144152
return Optional.empty();
145153
}

src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfPubFormDeserializerTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55
import static org.junit.jupiter.api.Assertions.*;
66

77
import com.google.gson.JsonObject;
8+
import de.mediathekview.mlib.daten.Sender;
9+
import de.mediathekview.mserver.crawler.zdf.ZdfFilmDto;
810
import de.mediathekview.mserver.crawler.zdf.ZdfPubFormResult;
911
import de.mediathekview.mserver.testhelper.JsonFileReader;
12+
import java.util.HashMap;
13+
import java.util.Map;
1014
import java.util.Optional;
1115
import java.util.Set;
1216
import org.junit.jupiter.api.Test;
@@ -40,4 +44,52 @@ void testFilmsPage() {
4044
"aW5kZXgtcGFnZS1hcmQtY29sbGVjdGlvbl9hcmRfZHhqdW9tZnl6ZHB6YWc5M29qZm16amF5bmRqa3ltaXptZHU0eW1xLQ=="),
4145
actual.getTopics().getNextPage());
4246
}
47+
48+
@Test
49+
void testFilmPageSenderCorrect() {
50+
final JsonObject json = JsonFileReader.readJson("/zdf/zdf_pub_form_page_filme.json");
51+
52+
final Map<String, Sender> expectedSenders = new HashMap<>();
53+
expectedSenders.put("A Bigger Splash", Sender.ZDF);
54+
expectedSenders.put("2 Guns", Sender.ZDF);
55+
expectedSenders.put("Hollow Man - Unsichtbare Gefahr", Sender.ZDF_NEO);
56+
expectedSenders.put("Gattaca", Sender.ZDF_NEO);
57+
expectedSenders.put("OSS 117 - Liebesgrüße aus Afrika", Sender.ZDF);
58+
expectedSenders.put("Nicht schuldig", Sender.ZDF_NEO);
59+
expectedSenders.put("Die Agentin", Sender.ZDF);
60+
expectedSenders.put("Stand by Me - Das Geheimnis eines Sommers", Sender.ZDF_NEO);
61+
expectedSenders.put("La Maison - Haus der Lust", Sender.ZDF);
62+
expectedSenders.put("Paradise Highway - Straße der Angst", Sender.ZDF);
63+
expectedSenders.put("Rogue Agent - Er liebt nur dich", Sender.ZDF);
64+
expectedSenders.put("Mortal - Mut ist unsterblich", Sender.ZDF);
65+
expectedSenders.put("The Commuter - Die Fremde im Zug", Sender.ZDF);
66+
expectedSenders.put("Verschwunden auf Sardinien", Sender.ZDF);
67+
expectedSenders.put("Halt nicht an!", Sender.ZDF);
68+
expectedSenders.put("The break-up club", Sender.ZDF);
69+
expectedSenders.put("Maigret und das tote Mädchen", Sender.ZDF);
70+
expectedSenders.put("Aline - The Voice of Love", Sender.ZDF);
71+
expectedSenders.put("Black Box - Gefährliche Wahrheit", Sender.ZDF);
72+
expectedSenders.put("Blutroter Sommer", Sender.ZDF);
73+
expectedSenders.put("Marinette - Kämpferin. Fußballerin. Legende.", Sender.ZDF);
74+
expectedSenders.put("Freies Land", Sender.ZDF);
75+
expectedSenders.put("Geheimsache Malta", Sender.ZDF);
76+
77+
final ZdfPubFormResult actual = target.deserialize(json, Set.class, null);
78+
79+
assertThat(actual, notNullValue());
80+
assertEquals(0, actual.getTopics().getElements().size());
81+
assertEquals(expectedSenders.size(), actual.getFilms().size());
82+
expectedSenders.forEach((expectedTitle, expectedSender) -> {
83+
final Optional<Sender> actualSender = actual.getFilms().stream()
84+
.filter(film -> film.getTitle().equalsIgnoreCase(expectedTitle))
85+
.map(ZdfFilmDto::getSender)
86+
.findFirst();
87+
assertTrue(actualSender.isPresent(), "Film not found: " + expectedTitle);
88+
assertEquals(expectedSender, actualSender.get(), "Sender mismatch for film: " + expectedTitle);
89+
});
90+
assertEquals(
91+
Optional.of(
92+
"MmYzMzlmYWUtMGJlNi00NmIzLWI1NDctNzVlY2QwZTRhM2NiLW1vdmll"),
93+
actual.getTopics().getNextPage());
94+
}
4395
}

0 commit comments

Comments
 (0)