Skip to content

Commit b218bf6

Browse files
committed
Implement PlaylistInfo.getDescription()
Implement PlaylistExtractor.getDescription() for PeerTube and SoundCloud. Anotate PlaylistExtractor.getDescription() as Nonnull
1 parent 81f2911 commit b218bf6

8 files changed

Lines changed: 36 additions & 2 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistExtractor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public PlaylistExtractor(final StreamingService service, final ListLinkHandler l
2222

2323
public abstract long getStreamCount() throws ParsingException;
2424

25+
@Nonnull
2526
public abstract Description getDescription() throws ParsingException;
2627

2728
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
99
import org.schabi.newpipe.extractor.exceptions.ParsingException;
1010
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
11+
import org.schabi.newpipe.extractor.stream.Description;
1112
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
1213
import org.schabi.newpipe.extractor.utils.ExtractorHelper;
1314

@@ -102,6 +103,11 @@ public static PlaylistInfo getInfo(final PlaylistExtractor extractor)
102103
} catch (final Exception e) {
103104
info.addError(e);
104105
}
106+
try {
107+
info.setDescription(extractor.getDescription());
108+
} catch (final Exception e) {
109+
info.addError(e);
110+
}
105111
try {
106112
info.setThumbnailUrl(extractor.getThumbnailUrl());
107113
} catch (final Exception e) {
@@ -174,6 +180,7 @@ public static PlaylistInfo getInfo(final PlaylistExtractor extractor)
174180
private String subChannelName;
175181
private String subChannelAvatarUrl;
176182
private long streamCount = 0;
183+
private Description description;
177184
private PlaylistType playlistType;
178185

179186
public String getThumbnailUrl() {
@@ -248,6 +255,14 @@ public void setStreamCount(final long streamCount) {
248255
this.streamCount = streamCount;
249256
}
250257

258+
public Description getDescription() {
259+
return description;
260+
}
261+
262+
public void setDescription(final Description description) {
263+
this.description = description;
264+
}
265+
251266
public PlaylistType getPlaylistType() {
252267
return playlistType;
253268
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampPlaylistExtractor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public long getStreamCount() {
109109
return trackInfo.size();
110110
}
111111

112+
@Nonnull
112113
@Override
113114
public Description getDescription() throws ParsingException {
114115
return Description.EMPTY_DESCRIPTION;

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,14 @@ public long getStreamCount() {
6666
return playlistInfo.getLong("videosLength");
6767
}
6868

69+
@Nonnull
6970
@Override
7071
public Description getDescription() throws ParsingException {
71-
return Description.EMPTY_DESCRIPTION;
72+
final String description = playlistInfo.getString("description");
73+
if (isNullOrEmpty(description)) {
74+
return Description.EMPTY_DESCRIPTION;
75+
}
76+
return new Description(description, Description.PLAIN_TEXT);
7277
}
7378

7479
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,14 @@ public long getStreamCount() {
119119
return playlist.getLong("track_count");
120120
}
121121

122+
@Nonnull
122123
@Override
123124
public Description getDescription() throws ParsingException {
124-
return Description.EMPTY_DESCRIPTION;
125+
final String description = playlist.getString("description");
126+
if (isNullOrEmpty(description)) {
127+
return Description.EMPTY_DESCRIPTION;
128+
}
129+
return new Description(description, Description.PLAIN_TEXT);
125130
}
126131

127132
@Nonnull

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ public long getStreamCount() {
170170
return ListExtractor.ITEM_COUNT_INFINITE;
171171
}
172172

173+
@Nonnull
173174
@Override
174175
public Description getDescription() throws ParsingException {
175176
return Description.EMPTY_DESCRIPTION;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ public long getStreamCount() throws ParsingException {
295295
return ITEM_COUNT_UNKNOWN;
296296
}
297297

298+
@Nonnull
298299
@Override
299300
public Description getDescription() throws ParsingException {
300301
final String description = getTextFromObject(

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ void testGetStreamCount() {
6060
ExtractorAsserts.assertGreaterOrEqual(39, extractor.getStreamCount());
6161
}
6262

63+
@Test
64+
void testGetDescription() throws ParsingException {
65+
ExtractorAsserts.assertContains("épisodes de Shocking", extractor.getDescription().getContent());
66+
}
67+
6368
@Test
6469
void testGetSubChannelUrl() {
6570
assertEquals("https://skeptikon.fr/video-channels/metadechoc_channel", extractor.getSubChannelUrl());

0 commit comments

Comments
 (0)