Skip to content

Commit 4c19c19

Browse files
committed
add attribute to filter
1 parent 993a23a commit 4c19c19

File tree

4 files changed

+15
-31
lines changed

4 files changed

+15
-31
lines changed

src/main/java/de/mediathekview/mserver/crawler/orfon/OrfOnVideoInfoDTO.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class OrfOnVideoInfoDTO {
2020
private Optional<String> titleWithDate;
2121
private Optional<String> topic;
2222
private Optional<String> topicForArchive;
23+
private Optional<String> drmProtected;
2324
private Optional<LocalDateTime> aired;
2425
private Optional<Duration> duration;
2526
private Optional<String> description;
@@ -36,6 +37,7 @@ public OrfOnVideoInfoDTO(
3637
Optional<String> titleWithDate,
3738
Optional<String> topic,
3839
Optional<String> topicForArchive,
40+
Optional<String> drmProtected,
3941
Optional<LocalDateTime> aired,
4042
Optional<Duration> duration,
4143
Optional<String> description,
@@ -51,6 +53,7 @@ public OrfOnVideoInfoDTO(
5153
this.titleWithDate = titleWithDate;
5254
this.topic = topic;
5355
this.topicForArchive = topicForArchive;
56+
this.drmProtected = drmProtected;
5457
this.aired = aired;
5558
this.duration = duration;
5659
this.description = description;
@@ -79,6 +82,9 @@ public Optional<String> getTopic() {
7982
public Optional<String> getTopicForArchive() {
8083
return topicForArchive;
8184
}
85+
public Optional<String> getDrmProtected() {
86+
return drmProtected;
87+
}
8288
public Optional<LocalDateTime> getAired() {
8389
return aired;
8490
}

src/main/java/de/mediathekview/mserver/crawler/orfon/json/OrfOnEpisodeDeserializer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class OrfOnEpisodeDeserializer implements JsonDeserializer<OrfOnVideoInfo
5151
private static final String TAG_VIDEO_QUALITY = "quality";
5252
private static final String TAG_VIDEO_FALLBACK = "sources";
5353
private static final String TAG_VIDEO_FALLBACK_URL = "src";
54+
private static final String TAG_DRM_PROTECTED = "is_drm_protected";
5455

5556
private static final String[] TAG_SUBTITLE_SECTION = {"_embedded", "subtitle"};
5657
private static final String TAG_SUBTITLE_SMI = "sami_url";
@@ -78,6 +79,7 @@ public OrfOnVideoInfoDTO deserialize(
7879
JsonUtils.getElementValueAsString(jsonElement, TAG_TITLE_WITH_DATE),
7980
JsonUtils.getElementValueAsString(jsonElement, TAG_TOPIC),
8081
JsonUtils.getElementValueAsString(jsonElement, TAG_TOPIC_ARCHIVE),
82+
JsonUtils.getElementValueAsString(jsonElement, TAG_DRM_PROTECTED),
8183
parseAiredDate(JsonUtils.getElementValueAsString(jsonElement, TAG_AIRED)),
8284
parseDuration(JsonUtils.getElementValueAsString(jsonElement, TAG_DURATION)),
8385
JsonUtils.getElementValueAsString(jsonElement, TAG_DESCRIPTION),

src/main/java/de/mediathekview/mserver/crawler/orfon/task/OrfOnEpisodeTask.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ protected void postProcessing(OrfOnVideoInfoDTO aResponseObj, OrfOnBreadCrumsUrl
6262
crawler.incrementAndGetErrorCount();
6363
return;
6464
}
65+
if (aResponseObj.getDrmProtected().orElse("false").equalsIgnoreCase("true")) {
66+
LOG.warn("Ignore DRM Protected {}", aDTO);
67+
crawler.incrementAndGetErrorCount();
68+
return;
69+
}
6570
if (aResponseObj.getDuration().isEmpty()) {
6671
LOG.warn("Missing duration for {}", aDTO);
6772
}

src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodeTaskTest.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ Resolution.VERY_SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-worldwid
190190
}
191191

192192
@Test
193-
public void testDummyUrls() {
193+
public void testIgnoreDRM() {
194194
setupSuccessfulJsonResponse("/episodeDummyUrl", "/orfOn/episode_noDrm.json");
195195
setupSuccessfulJsonResponse("/cms-austria/online/6b2d672267c81e196472b564abf8c8fe/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q8C.mp4", "/orfOn/episode_noDrm.json");
196196
setupSuccessfulJsonResponse("/cms-austria/online/de9bd8775f46ea293a9db4b0711d4de5/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q6A.mp4", "/orfOn/episode_noDrm.json");
@@ -199,36 +199,7 @@ public void testDummyUrls() {
199199
setupHeadRequestForFileSize();
200200
//
201201
Set<Film> result = executeTask("/episodeDummyUrl");
202-
assertTrue(result.size() == 1);
203-
Film actual = result.toArray(new Film[1])[0];
204-
//
205-
try {
206-
assertEquals("Spektakuläre Raubüberfälle mit Pierce Brosnan: Bankeinbruch in Kalifornien",actual.getTitel());
207-
assertEquals("Spektakuläre Raubüberfälle mit Pierce Brosnan",actual.getThema());
208-
assertEquals(LocalDateTime.of(2024,03,13,23,49,50),actual.getTime());
209-
assertEquals("Pierce Brosnan präsentiert in der spannenden Krimi-Doku-Reihe die spektakulärsten Raubüberfälle der Geschichte.",actual.getBeschreibung());
210-
assertEquals(Duration.parse("PT40M46S"),actual.getDuration());
211-
assertEquals(Optional.of(new URL("https://tvthek.orf.at/profile/Spektakulaere-Raubueberfaelle-mit-Pierce-Brosnan/13896153/Spektakulaere-Raubueberfaelle-mit-Pierce-Brosnan-Bankeinbruch-in-Kalifornien/14216629")),actual.getWebsite());
212-
assertTrue(List.of(GeoLocations.GEO_AT).containsAll(actual.getGeoLocations()));
213-
assertTrue(Set.of(
214-
new URL("https://api-tvthek.orf.at/assets/subtitles/0171/15/e83f6eabbdbcf49e894d1a58d77fcf3a9b951f3c.smi"),
215-
new URL("https://api-tvthek.orf.at/assets/subtitles/0171/15/c95472a931fe3ea8407734f95df242bce2f06b09.ttml"),
216-
new URL("https://api-tvthek.orf.at/assets/subtitles/0171/15/13759cf0d408fe11965ff16d03a564bbabbf5bc1.vtt"),
217-
new URL("https://api-tvthek.orf.at/assets/subtitles/0171/15/e2536ac2b80a5152e54b047073ab327c223579ec.srt"),
218-
new URL("https://api-tvthek.orf.at/assets/subtitles/0171/15/be922c3765a25ec3d7fa13e9265dabad7f986b75.xml")
219-
).containsAll(actual.getSubtitles()));
220-
assertEquals(Map.of(
221-
Resolution.HD, new FilmUrl(getWireMockBaseUrlSafe()+"/cms-austria/online/6b2d672267c81e196472b564abf8c8fe/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q8C.mp4", 0L),
222-
Resolution.NORMAL, new FilmUrl(getWireMockBaseUrlSafe()+"/cms-austria/online/de9bd8775f46ea293a9db4b0711d4de5/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q6A.mp4", 0L),
223-
Resolution.SMALL, new FilmUrl(getWireMockBaseUrlSafe()+"/cms-austria/online/a96476a0eab40b11ef517feefe0d2973/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q4A.mp4", 0L),
224-
Resolution.VERY_SMALL, new FilmUrl(getWireMockBaseUrlSafe()+"/cms-austria/online/440102b9f68434fbb577d17114dd9182/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q1A.3gp", 0L)
225-
), actual.getUrls());
226-
} catch (Exception e) {
227-
assertTrue(false);
228-
}
229-
230-
231-
202+
assertTrue(result.size() == 0);
232203
}
233204

234205
private Set<Film> executeTask(String... requestUrl) {

0 commit comments

Comments
 (0)