Skip to content

Commit 1a15c0e

Browse files
committed
agelimit now returns 18 if the video is marked as nsfw, 0 otherwise
+ created getBoolean method in JsonUtils.java
1 parent bcfe7be commit 1a15c0e

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ public String getDescription() throws ParsingException {
9292

9393
@Override
9494
public int getAgeLimit() throws ParsingException {
95-
return NO_AGE_LIMIT;
95+
boolean isNSFW = JsonUtils.getBoolean(json, "nsfw");
96+
if (isNSFW) {
97+
return 18;
98+
} else {
99+
return NO_AGE_LIMIT;
100+
}
96101
}
97102

98103
@Override
@@ -352,7 +357,6 @@ public String getOriginalUrl() throws ParsingException {
352357
return baseUrl + "/videos/watch/" + getId();
353358
}
354359

355-
//TODO: change privacy, category, licence by getting ID, therefore we will be able to translate it
356360
@Override
357361
public String getHost() throws ParsingException {
358362
return JsonUtils.getString(json, "account.host");

extractor/src/main/java/org/schabi/newpipe/extractor/utils/JsonUtils.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ public static String getString(@Nonnull JsonObject object, @Nonnull String path)
3737
throw new ParsingException("Unable to get " + path);
3838
}
3939
}
40+
41+
@Nonnull
42+
public static Boolean getBoolean(@Nonnull JsonObject object, @Nonnull String path) throws ParsingException{
43+
Object value = getValue(object, path);
44+
if(value instanceof Boolean) {
45+
return (Boolean) value;
46+
}else {
47+
throw new ParsingException("Unable to get " + path);
48+
}
49+
}
4050

4151
@Nonnull
4252
public static Number getNumber(@Nonnull JsonObject object, @Nonnull String path) throws ParsingException{

extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeStreamExtractorDefaultTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,12 @@ public void testGetSubtitlesListDefault() throws IOException, ExtractionExceptio
139139
public void testGetSubtitlesList() throws IOException, ExtractionException {
140140
assertFalse(extractor.getSubtitlesDefault().isEmpty());
141141
}
142+
143+
@Test
144+
public void testGetAgeLimit() throws ExtractionException, IOException {
145+
assertEquals(0, extractor.getAgeLimit());
146+
PeertubeStreamExtractor ageLimit = (PeertubeStreamExtractor) PeerTube.getStreamExtractor("https://peertube.co.uk/videos/watch/6762bb04-cad5-407b-81ee-c18eac4715a7");
147+
ageLimit.fetchPage();
148+
assertEquals(18, ageLimit.getAgeLimit());
149+
}
142150
}

0 commit comments

Comments
 (0)