diff --git a/src/main/java/mServer/crawler/AddToFilmlist.java b/src/main/java/mServer/crawler/AddToFilmlist.java index aae368cd..f1cde752 100644 --- a/src/main/java/mServer/crawler/AddToFilmlist.java +++ b/src/main/java/mServer/crawler/AddToFilmlist.java @@ -138,6 +138,7 @@ private void performInitialCleanup() { updateAudioDescriptionSrf(listeEinsortieren); updateTitle(listeEinsortieren); updateArdWebsite(listeEinsortieren); + updateSenderTagesschau24(listeEinsortieren); updateFunkMissingHost(listeEinsortieren); removeSrfUrlParameter(listeEinsortieren); } @@ -196,6 +197,15 @@ private void updateArdWebsite(ListeFilme listeEinsortieren) { list.forEach(film -> film.arr[DatenFilm.FILM_WEBSEITE] = film.arr[DatenFilm.FILM_WEBSEITE].replace("/ard/player/", "/video/").trim()); } + private void updateSenderTagesschau24(ListeFilme listeEinsortieren) { + final List whiteListTagesschau24 = Arrays.stream(new String[] { "Ulrich Timm im Gespräch", "tagesschau in Einfacher Sprache", "tagesschau in 100 Sekunden", "tagesschau24" }).toList(); + final List list = listeEinsortieren.parallelStream() + .filter(film -> film.arr[DatenFilm.FILM_SENDER].equals(Const.ARD) && whiteListTagesschau24.contains(film.arr[DatenFilm.FILM_THEMA])) + .collect(Collectors.toList()); + Log.sysLog("ARD: set sender tagesschau24 für " + list.size() + " Einträge."); + + list.forEach(film -> film.arr[DatenFilm.FILM_SENDER] = Const.TAGESSCHAU24); + } private void updateAudioDescriptionOrf(ListeFilme listeEinsortieren) { final List list = listeEinsortieren.parallelStream() diff --git a/src/main/java/mServer/crawler/sender/ard/ArdCrawler.java b/src/main/java/mServer/crawler/sender/ard/ArdCrawler.java index a2c2d968..a4554da2 100644 --- a/src/main/java/mServer/crawler/sender/ard/ArdCrawler.java +++ b/src/main/java/mServer/crawler/sender/ard/ArdCrawler.java @@ -53,10 +53,11 @@ protected synchronized void meldungThreadUndFertig() { mlibFilmeSuchen.meldenFertig(Const.WDR); mlibFilmeSuchen.meldenFertig(Const.HR); mlibFilmeSuchen.meldenFertig(Const.BR); - mlibFilmeSuchen.meldenFertig("rbtv"); - mlibFilmeSuchen.meldenFertig("ONE"); - mlibFilmeSuchen.meldenFertig("ARD-alpha"); + mlibFilmeSuchen.meldenFertig(Const.RBTV); + mlibFilmeSuchen.meldenFertig(Const.ONE); + mlibFilmeSuchen.meldenFertig(Const.ARD_ALPHA); mlibFilmeSuchen.meldenFertig("Funk.net"); + mlibFilmeSuchen.meldenFertig(Const.TAGESSCHAU24); mlibFilmeSuchen.meldenFertig(Const.SR); mlibFilmeSuchen.meldenFertig(Const.PHOENIX); } diff --git a/src/main/java/mServer/crawler/sender/ard/json/ArdFilmDeserializer.java b/src/main/java/mServer/crawler/sender/ard/json/ArdFilmDeserializer.java index c3877c38..1115e3b1 100644 --- a/src/main/java/mServer/crawler/sender/ard/json/ArdFilmDeserializer.java +++ b/src/main/java/mServer/crawler/sender/ard/json/ArdFilmDeserializer.java @@ -97,11 +97,11 @@ public class ArdFilmDeserializer implements JsonDeserializer> { ADDITIONAL_SENDER.put("wdr", Const.WDR); ADDITIONAL_SENDER.put("hr", Const.HR); ADDITIONAL_SENDER.put("br", Const.BR); - ADDITIONAL_SENDER.put("radio_bremen", "rbtv"); - ADDITIONAL_SENDER.put("tagesschau24", Const.ARD); + ADDITIONAL_SENDER.put("radio_bremen", Const.RBTV); + ADDITIONAL_SENDER.put("tagesschau24", Const.TAGESSCHAU24); ADDITIONAL_SENDER.put("das_erste", Const.ARD); - ADDITIONAL_SENDER.put("one", Const.ARD); // ONE - ADDITIONAL_SENDER.put("ard-alpha", Const.ARD); // ARD-alpha + ADDITIONAL_SENDER.put("one", Const.ONE); // ONE + ADDITIONAL_SENDER.put("ard-alpha", Const.ARD_ALPHA); // ARD-alpha ADDITIONAL_SENDER.put("funk", "Funk.net"); // Funk.net ADDITIONAL_SENDER.put("sr", Const.SR); ADDITIONAL_SENDER.put("phoenix", Const.PHOENIX); diff --git a/src/test/developTest/java/mServer/crawler/AddToFilmlistTest.java b/src/test/developTest/java/mServer/crawler/AddToFilmlistTest.java index 0f43ed5a..f70254b4 100644 --- a/src/test/developTest/java/mServer/crawler/AddToFilmlistTest.java +++ b/src/test/developTest/java/mServer/crawler/AddToFilmlistTest.java @@ -477,6 +477,53 @@ public void testArdEntriesOfZdfArteKikaRemoved() { assertFalse(list.contains(testFilmZdf)); } + @Test + public void testArdEntriesNotAddedIfOneEntryExists() { + final DatenFilm testFilmOne = createTestFilm(Const.ARD, "one topic", "one title", FILM_NAME_ONLINE); + final DatenFilm testFilmArdOk = createTestFilm(Const.ARD, "ardtopic", "ard title", FILM_NAME_ONLINE2); + listToAdd.add(testFilmOne); + listToAdd.add(testFilmArdOk); + list.add(createTestFilm(Const.ONE, "one topic", "one title", FILM_NAME_ONLINE)); + + AddToFilmlist target =new AddToFilmlist(list, listToAdd); + target.addOldList(); + + assertEquals(list.size(),4); + assertFalse(list.contains(testFilmOne)); + assertTrue(list.contains(testFilmArdOk)); + assertEquals(Const.ARD, testFilmArdOk.arr[DatenFilm.FILM_SENDER]); + } + + @Test + public void testArdTagesschau24EntriesNotAdded() { + final DatenFilm testFilmArd24 = createTestFilm(Const.ARD, "tagesschau24", "film title", FILM_NAME_ONLINE); + final DatenFilm testFilmArdOk = createTestFilm(Const.ARD, "tagesschau", "film title", FILM_NAME_ONLINE2); + listToAdd.add(testFilmArd24); + listToAdd.add(testFilmArdOk); + list.add(createTestFilm(Const.TAGESSCHAU24, "tagesschau24", "film title", FILM_NAME_ONLINE)); + + AddToFilmlist target =new AddToFilmlist(list, listToAdd); + target.addOldList(); + + assertEquals(list.size(),4); + assertFalse(list.contains(testFilmArd24)); + assertTrue(list.contains(testFilmArdOk)); + assertEquals(Const.ARD, testFilmArdOk.arr[DatenFilm.FILM_SENDER]); + } + + @Test + public void testArdTagesschau24UpdateSender() { + final DatenFilm testFilmArd24 = createTestFilm(Const.ARD, "tagesschau24", "film title", FILM_NAME_ONLINE); + listToAdd.add(testFilmArd24); + + AddToFilmlist target =new AddToFilmlist(list, listToAdd); + target.addOldList(); + + assertEquals(list.size(),3); + assertTrue(list.contains(testFilmArd24)); + assertEquals(Const.TAGESSCHAU24, testFilmArd24.arr[DatenFilm.FILM_SENDER]); + } + private static DatenFilm createTestFilm(String sender, String topic, String title, String filmUrl) { DatenFilm film = new DatenFilm(sender, topic, "url", title, baseUrl + filmUrl, "", "", "", 12,