Skip to content

Commit 4234740

Browse files
Royosefwb9688
authored andcommitted
Add parent channel info to ChannelExtractor: name, url & avatar url
1 parent 665c69b commit 4234740

7 files changed

Lines changed: 134 additions & 0 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,7 @@ public ChannelExtractor(StreamingService service, ListLinkHandler linkHandler) {
3737
public abstract String getFeedUrl() throws ParsingException;
3838
public abstract long getSubscriberCount() throws ParsingException;
3939
public abstract String getDescription() throws ParsingException;
40+
public abstract String getParentChannelName() throws ParsingException;
41+
public abstract String getParentChannelUrl() throws ParsingException;
42+
public abstract String getParentChannelAvatarUrl() throws ParsingException;
4043
}

extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,61 @@ public static ChannelInfo getInfo(ChannelExtractor extractor) throws IOException
9494
info.addError(e);
9595
}
9696

97+
try {
98+
info.setParentChannelName(extractor.getParentChannelName());
99+
} catch (Exception e) {
100+
info.addError(e);
101+
}
102+
103+
try {
104+
info.setParentChannelUrl(extractor.getParentChannelUrl());
105+
} catch (Exception e) {
106+
info.addError(e);
107+
}
108+
109+
try {
110+
info.setParentChannelAvatarUrl(extractor.getParentChannelAvatarUrl());
111+
} catch (Exception e) {
112+
info.addError(e);
113+
}
114+
97115
return info;
98116
}
99117

100118
private String avatarUrl;
119+
private String parentChannelName;
120+
private String parentChannelUrl;
121+
private String parentChannelAvatarUrl;
101122
private String bannerUrl;
102123
private String feedUrl;
103124
private long subscriberCount = -1;
104125
private String description;
105126
private String[] donationLinks;
106127

128+
public String getParentChannelName() {
129+
return parentChannelName;
130+
}
131+
132+
public void setParentChannelName(String parentChannelName) {
133+
this.parentChannelName = parentChannelName;
134+
}
135+
136+
public String getParentChannelUrl() {
137+
return parentChannelUrl;
138+
}
139+
140+
public void setParentChannelUrl(String parentChannelUrl) {
141+
this.parentChannelUrl = parentChannelUrl;
142+
}
143+
144+
public String getParentChannelAvatarUrl() {
145+
return parentChannelAvatarUrl;
146+
}
147+
148+
public void setParentChannelAvatarUrl(String parentChannelAvatarUrl) {
149+
this.parentChannelAvatarUrl = parentChannelAvatarUrl;
150+
}
151+
107152
public String getAvatarUrl() {
108153
return avatarUrl;
109154
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,21 @@ public String getDescription() {
5252
return null;
5353
}
5454

55+
@Override
56+
public String getParentChannelName() throws ParsingException {
57+
return "";
58+
}
59+
60+
@Override
61+
public String getParentChannelUrl() throws ParsingException {
62+
return "";
63+
}
64+
65+
@Override
66+
public String getParentChannelAvatarUrl() throws ParsingException {
67+
return "";
68+
}
69+
5570
@Nonnull
5671
@Override
5772
public InfoItemsPage<StreamInfoItem> getInitialPage() {

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,27 @@ public String getDescription() throws ParsingException {
7575
}
7676
}
7777

78+
@Override
79+
public String getParentChannelName() throws ParsingException {
80+
return JsonUtils.getString(json, "ownerAccount.name");
81+
}
82+
83+
@Override
84+
public String getParentChannelUrl() throws ParsingException {
85+
return JsonUtils.getString(json, "ownerAccount.url");
86+
}
87+
88+
@Override
89+
public String getParentChannelAvatarUrl() throws ParsingException {
90+
String value;
91+
try {
92+
value = JsonUtils.getString(json, "ownerAccount.avatar.path");
93+
} catch (Exception e) {
94+
value = "/client/assets/images/default-avatar.png";
95+
}
96+
return baseUrl + value;
97+
}
98+
7899
@Override
79100
public InfoItemsPage<StreamInfoItem> getInitialPage() throws IOException, ExtractionException {
80101
super.fetchPage();

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,21 @@ public String getDescription() {
8383
return user.getString("description", EMPTY_STRING);
8484
}
8585

86+
@Override
87+
public String getParentChannelName() throws ParsingException {
88+
return "";
89+
}
90+
91+
@Override
92+
public String getParentChannelUrl() throws ParsingException {
93+
return "";
94+
}
95+
96+
@Override
97+
public String getParentChannelAvatarUrl() throws ParsingException {
98+
return "";
99+
}
100+
86101
@Nonnull
87102
@Override
88103
public InfoItemsPage<StreamInfoItem> getInitialPage() throws ExtractionException {

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,21 @@ public String getDescription() throws ParsingException {
212212
}
213213
}
214214

215+
@Override
216+
public String getParentChannelName() throws ParsingException {
217+
return "";
218+
}
219+
220+
@Override
221+
public String getParentChannelUrl() throws ParsingException {
222+
return "";
223+
}
224+
225+
@Override
226+
public String getParentChannelAvatarUrl() throws ParsingException {
227+
return "";
228+
}
229+
215230
@Nonnull
216231
@Override
217232
public InfoItemsPage<StreamInfoItem> getInitialPage() throws ExtractionException {

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@ public void testDescription() throws ParsingException {
8484
assertNotNull(extractor.getDescription());
8585
}
8686

87+
@Test
88+
public void testParentChannelName() throws ParsingException {
89+
assertEquals("libux", extractor.getParentChannelName());
90+
}
91+
92+
@Test
93+
public void testParentChannelUrl() throws ParsingException {
94+
assertEquals("https://peertube.mastodon.host/accounts/libux", extractor.getParentChannelUrl());
95+
}
96+
8797
@Test
8898
public void testAvatarUrl() throws ParsingException {
8999
assertIsSecureUrl(extractor.getAvatarUrl());
@@ -181,6 +191,16 @@ public void testDescription() throws ParsingException {
181191
assertNotNull(extractor.getDescription());
182192
}
183193

194+
@Test
195+
public void testParentChannelName() throws ParsingException {
196+
assertEquals("booteille", extractor.getParentChannelName());
197+
}
198+
199+
@Test
200+
public void testParentChannelUrl() throws ParsingException {
201+
assertEquals("https://peertube.mastodon.host/accounts/booteille", extractor.getParentChannelUrl());
202+
}
203+
184204
@Test
185205
public void testAvatarUrl() throws ParsingException {
186206
assertIsSecureUrl(extractor.getAvatarUrl());

0 commit comments

Comments
 (0)