Skip to content

Commit 74439f6

Browse files
committed
add extraction for support info and rename getLanguageInfo function
1 parent 1a15c0e commit 74439f6

7 files changed

Lines changed: 66 additions & 9 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public String getLicence() throws ParsingException {
248248
}
249249

250250
@Override
251-
public String getStreamInfoLanguage() throws ParsingException {
251+
public String getLanguageInfo() throws ParsingException {
252252
return "";
253253
}
254254

@@ -257,4 +257,10 @@ public String getStreamInfoLanguage() throws ParsingException {
257257
public List<String> getTags() throws ParsingException {
258258
return new ArrayList<>();
259259
}
260+
261+
@Nonnull
262+
@Override
263+
public String getSupportInfo() throws ParsingException {
264+
return "";
265+
}
260266
}

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import com.grack.nanojson.JsonParser;
3636
import com.grack.nanojson.JsonParserException;
3737

38+
import javax.annotation.Nonnull;
39+
3840
public class PeertubeStreamExtractor extends StreamExtractor {
3941

4042

@@ -250,7 +252,13 @@ public List<String> getTags(){
250252
return Collections.emptyList();
251253
}
252254
}
253-
255+
256+
@Nonnull
257+
@Override
258+
public String getSupportInfo() throws ParsingException {
259+
return JsonUtils.getString(json, "support");
260+
}
261+
254262
private String getRelatedStreamsUrl(List<String> tags) throws UnsupportedEncodingException {
255263
String url = baseUrl + PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT;
256264
StringBuilder params = new StringBuilder();
@@ -378,7 +386,7 @@ public String getLicence() throws ParsingException {
378386
}
379387

380388
@Override
381-
public String getStreamInfoLanguage() throws ParsingException {
389+
public String getLanguageInfo() throws ParsingException {
382390
return JsonUtils.getString(json, "language.label");
383391
}
384392
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudStreamExtractor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ public String getLicence() throws ParsingException {
276276
}
277277

278278
@Override
279-
public String getStreamInfoLanguage() throws ParsingException {
279+
public String getLanguageInfo() throws ParsingException {
280280
return "";
281281
}
282282

@@ -285,4 +285,10 @@ public String getStreamInfoLanguage() throws ParsingException {
285285
public List<String> getTags() throws ParsingException {
286286
return new ArrayList<>();
287287
}
288+
289+
@Nonnull
290+
@Override
291+
public String getSupportInfo() throws ParsingException {
292+
return "";
293+
}
288294
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1156,7 +1156,7 @@ public String getLicence() throws ParsingException {
11561156
}
11571157

11581158
@Override
1159-
public String getStreamInfoLanguage() throws ParsingException {
1159+
public String getLanguageInfo() throws ParsingException {
11601160
return "";
11611161
}
11621162

@@ -1165,4 +1165,10 @@ public String getStreamInfoLanguage() throws ParsingException {
11651165
public List<String> getTags() throws ParsingException {
11661166
return new ArrayList<>();
11671167
}
1168+
1169+
@Nonnull
1170+
@Override
1171+
public String getSupportInfo() throws ParsingException {
1172+
return "";
1173+
}
11681174
}

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ protected long getTimestampSeconds(String regexPattern) throws ParsingException
396396
* @throws ParsingException
397397
*/
398398
@Nonnull
399-
public abstract String getStreamInfoLanguage() throws ParsingException;
399+
public abstract String getLanguageInfo() throws ParsingException;
400400

401401
/**
402402
* The list of tags of the stream.
@@ -406,4 +406,16 @@ protected long getTimestampSeconds(String regexPattern) throws ParsingException
406406
*/
407407
@Nonnull
408408
public abstract List<String> getTags() throws ParsingException;
409+
410+
/**
411+
* The support information of the stream.
412+
* see: https://framatube.org/videos/watch/ee408ec8-07cd-4e35-b884-fb681a4b9d37
413+
* (support button).
414+
* If the support information are not available,
415+
* you can simply return an empty String.
416+
* @return the support information of the stream or an empty String.
417+
* @throws ParsingException
418+
*/
419+
@Nonnull
420+
public abstract String getSupportInfo() throws ParsingException;
409421
}

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ private static StreamInfo extractOptionalData(StreamInfo streamInfo, StreamExtra
292292
streamInfo.addError(e);
293293
}
294294
try {
295-
streamInfo.setLanguage(extractor.getStreamInfoLanguage());
295+
streamInfo.setLanguageInfo(extractor.getLanguageInfo());
296296
} catch (Exception e) {
297297
streamInfo.addError(e);
298298
}
@@ -301,6 +301,11 @@ private static StreamInfo extractOptionalData(StreamInfo streamInfo, StreamExtra
301301
} catch (Exception e) {
302302
streamInfo.addError(e);
303303
}
304+
try {
305+
streamInfo.setSupportInfo(extractor.getSupportInfo());
306+
} catch (Exception e) {
307+
streamInfo.addError(e);
308+
}
304309

305310
streamInfo.setRelatedStreams(ExtractorHelper.getRelatedVideosOrLogError(streamInfo, extractor));
306311

@@ -345,6 +350,7 @@ private static StreamInfo extractOptionalData(StreamInfo streamInfo, StreamExtra
345350
private String category = "";
346351
private String licence = "";
347352
private String language = "";
353+
private String support = "";
348354
private List<String> tags = new ArrayList<>();
349355

350356
/**
@@ -604,11 +610,11 @@ public void setLicence(String str) {
604610
this.licence = str;
605611
}
606612

607-
public String getLanguage() {
613+
public String getLanguageInfo() {
608614
return this.language;
609615
}
610616

611-
public void setLanguage(String lang) {
617+
public void setLanguageInfo(String lang) {
612618
this.language = lang;
613619
}
614620

@@ -620,5 +626,11 @@ public void setTags(List<String> tags) {
620626
this.tags = tags;
621627
}
622628

629+
public void setSupportInfo(String support) {
630+
this.support = support;
631+
}
623632

633+
public String getSupportInfo() {
634+
return this.support;
635+
}
624636
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,11 @@ public void testGetAgeLimit() throws ExtractionException, IOException {
147147
ageLimit.fetchPage();
148148
assertEquals(18, ageLimit.getAgeLimit());
149149
}
150+
151+
@Test
152+
public void testGetSupportInformation() throws ExtractionException, IOException {
153+
PeertubeStreamExtractor supportInfoExtractor = (PeertubeStreamExtractor) PeerTube.getStreamExtractor("https://framatube.org/videos/watch/ee408ec8-07cd-4e35-b884-fb681a4b9d37");
154+
supportInfoExtractor.fetchPage();
155+
assertEquals("https://utip.io/chatsceptique", supportInfoExtractor.getSupportInfo());
156+
}
150157
}

0 commit comments

Comments
 (0)