Skip to content

Commit 2e4b291

Browse files
committed
ARD: own sender for ONE, ARDalpha and tagesschau24
update thema with bindestrich
2 parents e2a7f0e + a320fd4 commit 2e4b291

File tree

5 files changed

+95
-10
lines changed

5 files changed

+95
-10
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ sourceCompatibility = JavaVersion.VERSION_17
2727
targetCompatibility = JavaVersion.VERSION_17
2828
group = 'de.mediathekview'
2929
archivesBaseName = "MServer"
30-
version = '3.1.254'
30+
version = '3.1.255'
3131

3232
def jarName = 'MServer.jar'
3333
def mainClass = 'mServer.Main'
3434

3535
dependencies {
36-
implementation 'de.mediathekview:MLib:3.0.16'
36+
implementation 'de.mediathekview:MLib:3.0.17'
3737
implementation 'commons-net:commons-net:3.9.0'
3838
implementation 'org.apache.commons:commons-compress:1.22'
3939
implementation 'org.apache.commons:commons-text:1.10.0'

src/main/java/mServer/crawler/AddToFilmlist.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,10 @@ private void performInitialCleanup() {
136136
removeTimeFromOrf(listeEinsortieren);
137137
updateAudioDescriptionOrf(listeEinsortieren);
138138
updateAudioDescriptionSrf(listeEinsortieren);
139+
updateThema(listeEinsortieren);
139140
updateTitle(listeEinsortieren);
140141
updateArdWebsite(listeEinsortieren);
142+
updateSenderTagesschau24(listeEinsortieren);
141143
updateFunkMissingHost(listeEinsortieren);
142144
removeSrfUrlParameter(listeEinsortieren);
143145
}
@@ -178,8 +180,17 @@ private void updateFunkMissingHost(ListeFilme listeEinsortieren) {
178180
list.forEach(film -> film.arr[DatenFilm.FILM_URL_HD] = film.arr[DatenFilm.FILM_URL_HD].replace("https://", "https://funk-02.akamaized.net/").trim());
179181
}
180182

183+
private void updateThema(ListeFilme listeEinsortieren) {
184+
listeEinsortieren.parallelStream().forEach(film -> {
185+
final String thema = film.arr[DatenFilm.FILM_THEMA].trim();
186+
if (thema.contains("–")) {
187+
film.arr[DatenFilm.FILM_THEMA] = thema.replace("–", "-").trim();
188+
}
189+
});
190+
}
191+
181192
private void updateTitle(ListeFilme listeEinsortieren) {
182-
listeEinsortieren.forEach(film -> {
193+
listeEinsortieren.parallelStream().forEach(film -> {
183194
final String title = film.arr[DatenFilm.FILM_TITEL].trim();
184195
if (title.endsWith("-")) {
185196
film.arr[DatenFilm.FILM_TITEL] = title.replaceAll("-+$", "").trim();
@@ -196,6 +207,15 @@ private void updateArdWebsite(ListeFilme listeEinsortieren) {
196207
list.forEach(film -> film.arr[DatenFilm.FILM_WEBSEITE] = film.arr[DatenFilm.FILM_WEBSEITE].replace("/ard/player/", "/video/").trim());
197208
}
198209

210+
private void updateSenderTagesschau24(ListeFilme listeEinsortieren) {
211+
final List<String> whiteListTagesschau24 = Arrays.stream(new String[] { "Ulrich Timm im Gespräch", "tagesschau in Einfacher Sprache", "tagesschau in 100 Sekunden", "tagesschau24" }).toList();
212+
final List<DatenFilm> list = listeEinsortieren.parallelStream()
213+
.filter(film -> film.arr[DatenFilm.FILM_SENDER].equals(Const.ARD) && whiteListTagesschau24.contains(film.arr[DatenFilm.FILM_THEMA]))
214+
.collect(Collectors.toList());
215+
Log.sysLog("ARD: set sender tagesschau24 für " + list.size() + " Einträge.");
216+
217+
list.forEach(film -> film.arr[DatenFilm.FILM_SENDER] = Const.TAGESSCHAU24);
218+
}
199219

200220
private void updateAudioDescriptionOrf(ListeFilme listeEinsortieren) {
201221
final List<DatenFilm> list = listeEinsortieren.parallelStream()

src/main/java/mServer/crawler/sender/ard/ArdCrawler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@ protected synchronized void meldungThreadUndFertig() {
5353
mlibFilmeSuchen.meldenFertig(Const.WDR);
5454
mlibFilmeSuchen.meldenFertig(Const.HR);
5555
mlibFilmeSuchen.meldenFertig(Const.BR);
56-
mlibFilmeSuchen.meldenFertig("rbtv");
57-
mlibFilmeSuchen.meldenFertig("ONE");
58-
mlibFilmeSuchen.meldenFertig("ARD-alpha");
56+
mlibFilmeSuchen.meldenFertig(Const.RBTV);
57+
mlibFilmeSuchen.meldenFertig(Const.ONE);
58+
mlibFilmeSuchen.meldenFertig(Const.ARD_ALPHA);
5959
mlibFilmeSuchen.meldenFertig("Funk.net");
60+
mlibFilmeSuchen.meldenFertig(Const.TAGESSCHAU24);
6061
mlibFilmeSuchen.meldenFertig(Const.SR);
6162
mlibFilmeSuchen.meldenFertig(Const.PHOENIX);
6263
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ public class ArdFilmDeserializer implements JsonDeserializer<List<ArdFilmDto>> {
9797
ADDITIONAL_SENDER.put("wdr", Const.WDR);
9898
ADDITIONAL_SENDER.put("hr", Const.HR);
9999
ADDITIONAL_SENDER.put("br", Const.BR);
100-
ADDITIONAL_SENDER.put("radio_bremen", "rbtv");
101-
ADDITIONAL_SENDER.put("tagesschau24", Const.ARD);
100+
ADDITIONAL_SENDER.put("radio_bremen", Const.RBTV);
101+
ADDITIONAL_SENDER.put("tagesschau24", Const.TAGESSCHAU24);
102102
ADDITIONAL_SENDER.put("das_erste", Const.ARD);
103-
ADDITIONAL_SENDER.put("one", Const.ARD); // ONE
104-
ADDITIONAL_SENDER.put("ard-alpha", Const.ARD); // ARD-alpha
103+
ADDITIONAL_SENDER.put("one", Const.ONE); // ONE
104+
ADDITIONAL_SENDER.put("ard-alpha", Const.ARD_ALPHA); // ARD-alpha
105105
ADDITIONAL_SENDER.put("funk", "Funk.net"); // Funk.net
106106
ADDITIONAL_SENDER.put("sr", Const.SR);
107107
ADDITIONAL_SENDER.put("phoenix", Const.PHOENIX);

src/test/developTest/java/mServer/crawler/AddToFilmlistTest.java

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,23 @@ public void testNotAddArteExtraits() {
416416
assertEquals(list.size(), 2);
417417
}
418418

419+
@Test
420+
public void testRefreshThemaWithBindestrich() {
421+
final DatenFilm testFilmNotUpdated = createTestFilm(Const.ARD, "My - Topic", "Film with normal", FILM_NAME_ONLINE);
422+
final DatenFilm testFilmUpdated = createTestFilm(Const.ARD, "My - Topic", "Film with wrong", FILM_NAME_ONLINE);
423+
testFilmUpdated.arr[DatenFilm.FILM_THEMA] = "My – Topic";
424+
425+
listToAdd.add(testFilmUpdated);
426+
listToAdd.add(testFilmNotUpdated);
427+
428+
AddToFilmlist target = new AddToFilmlist(list, listToAdd);
429+
target.addOldList();
430+
431+
assertEquals(list.size(), 4);
432+
assertEquals("My - Topic", testFilmUpdated.arr[DatenFilm.FILM_THEMA]);
433+
assertEquals("My - Topic", testFilmNotUpdated.arr[DatenFilm.FILM_THEMA]);
434+
}
435+
419436
@Test
420437
public void testRefreshTitleWithTrailingDash() {
421438
final DatenFilm testFilmUpdated = createTestFilm(Const.ARD, "My Topic", "Title - ", FILM_NAME_ONLINE);
@@ -477,6 +494,53 @@ public void testArdEntriesOfZdfArteKikaRemoved() {
477494
assertFalse(list.contains(testFilmZdf));
478495
}
479496

497+
@Test
498+
public void testArdEntriesNotAddedIfOneEntryExists() {
499+
final DatenFilm testFilmOne = createTestFilm(Const.ARD, "one topic", "one title", FILM_NAME_ONLINE);
500+
final DatenFilm testFilmArdOk = createTestFilm(Const.ARD, "ardtopic", "ard title", FILM_NAME_ONLINE2);
501+
listToAdd.add(testFilmOne);
502+
listToAdd.add(testFilmArdOk);
503+
list.add(createTestFilm(Const.ONE, "one topic", "one title", FILM_NAME_ONLINE));
504+
505+
AddToFilmlist target =new AddToFilmlist(list, listToAdd);
506+
target.addOldList();
507+
508+
assertEquals(list.size(),4);
509+
assertFalse(list.contains(testFilmOne));
510+
assertTrue(list.contains(testFilmArdOk));
511+
assertEquals(Const.ARD, testFilmArdOk.arr[DatenFilm.FILM_SENDER]);
512+
}
513+
514+
@Test
515+
public void testArdTagesschau24EntriesNotAdded() {
516+
final DatenFilm testFilmArd24 = createTestFilm(Const.ARD, "tagesschau24", "film title", FILM_NAME_ONLINE);
517+
final DatenFilm testFilmArdOk = createTestFilm(Const.ARD, "tagesschau", "film title", FILM_NAME_ONLINE2);
518+
listToAdd.add(testFilmArd24);
519+
listToAdd.add(testFilmArdOk);
520+
list.add(createTestFilm(Const.TAGESSCHAU24, "tagesschau24", "film title", FILM_NAME_ONLINE));
521+
522+
AddToFilmlist target =new AddToFilmlist(list, listToAdd);
523+
target.addOldList();
524+
525+
assertEquals(list.size(),4);
526+
assertFalse(list.contains(testFilmArd24));
527+
assertTrue(list.contains(testFilmArdOk));
528+
assertEquals(Const.ARD, testFilmArdOk.arr[DatenFilm.FILM_SENDER]);
529+
}
530+
531+
@Test
532+
public void testArdTagesschau24UpdateSender() {
533+
final DatenFilm testFilmArd24 = createTestFilm(Const.ARD, "tagesschau24", "film title", FILM_NAME_ONLINE);
534+
listToAdd.add(testFilmArd24);
535+
536+
AddToFilmlist target =new AddToFilmlist(list, listToAdd);
537+
target.addOldList();
538+
539+
assertEquals(list.size(),3);
540+
assertTrue(list.contains(testFilmArd24));
541+
assertEquals(Const.TAGESSCHAU24, testFilmArd24.arr[DatenFilm.FILM_SENDER]);
542+
}
543+
480544
private static DatenFilm createTestFilm(String sender, String topic, String title,
481545
String filmUrl) {
482546
DatenFilm film = new DatenFilm(sender, topic, "url", title, baseUrl + filmUrl, "", "", "", 12,

0 commit comments

Comments
 (0)