Skip to content

Commit 2c9f126

Browse files
committed
Fix wb9688 review comments
* Rename PeertubeUserExtractor to PeertubeAccountExtractor * Add test for video-channels in PeertubeChannelLinkHandlerFactoryTest * Compatibility support for older versions (use "accounts/" as default)
1 parent b6e6f40 commit 2c9f126

5 files changed

Lines changed: 22 additions & 13 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/PeertubeService.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,11 @@ public SubscriptionExtractor getSubscriptionExtractor() {
7878
public ChannelExtractor getChannelExtractor(ListLinkHandler linkHandler)
7979
throws ExtractionException {
8080

81-
return linkHandler.getUrl().matches("^.*\\/accounts\\/[^\\/]*$") ?
82-
new PeertubeUserExtractor(this, linkHandler) :
83-
new PeertubeChannelExtractor(this, linkHandler);
81+
if (linkHandler.getUrl().contains("/video-channels/")) {
82+
return new PeertubeChannelExtractor(this, linkHandler);
83+
} else {
84+
return new PeertubeAccountExtractor(this, linkHandler);
85+
}
8486
}
8587

8688
@Override

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeUserExtractor.java renamed to extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
import java.io.IOException;
2323

24-
public class PeertubeUserExtractor extends ChannelExtractor {
24+
public class PeertubeAccountExtractor extends ChannelExtractor {
2525

2626
private static final String START_KEY = "start";
2727
private static final String COUNT_KEY = "count";
@@ -34,7 +34,7 @@ public class PeertubeUserExtractor extends ChannelExtractor {
3434
private JsonObject json;
3535
private final String baseUrl;
3636

37-
public PeertubeUserExtractor(StreamingService service, ListLinkHandler linkHandler) throws ParsingException {
37+
public PeertubeAccountExtractor(StreamingService service, ListLinkHandler linkHandler) throws ParsingException {
3838
super(service, linkHandler);
3939
this.baseUrl = getBaseUrl();
4040
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeChannelLinkHandlerFactory.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ public String getUrl(String id, List<String> contentFilters, String searchFilter
3131
@Override
3232
public String getUrl(String id, List<String> contentFilter, String sortFilter, String baseUrl)
3333
throws ParsingException {
34-
return baseUrl + API_ENDPOINT + id;
34+
35+
if (id.matches(ID_PATTERN)) {
36+
return baseUrl + API_ENDPOINT + id;
37+
} else {
38+
// This is needed for compatibility with older versions were we didn't support video channels yet
39+
return baseUrl + API_ENDPOINT + "accounts/" + id;
40+
}
3541
}
3642

3743
@Override

extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeUserExtractorTest.java renamed to extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeAccountExtractorTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,26 @@
88
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
99
import org.schabi.newpipe.extractor.exceptions.ParsingException;
1010
import org.schabi.newpipe.extractor.services.BaseChannelExtractorTest;
11-
import org.schabi.newpipe.extractor.services.peertube.extractors.PeertubeUserExtractor;
11+
import org.schabi.newpipe.extractor.services.peertube.extractors.PeertubeAccountExtractor;
1212

1313
import static org.junit.Assert.*;
1414
import static org.schabi.newpipe.extractor.ExtractorAsserts.assertIsSecureUrl;
1515
import static org.schabi.newpipe.extractor.ServiceList.PeerTube;
1616
import static org.schabi.newpipe.extractor.services.DefaultTests.*;
1717

1818
/**
19-
* Test for {@link PeertubeUserExtractor}
19+
* Test for {@link PeertubeAccountExtractor}
2020
*/
21-
public class PeertubeUserExtractorTest {
21+
public class PeertubeAccountExtractorTest {
2222
public static class KDE implements BaseChannelExtractorTest {
23-
private static PeertubeUserExtractor extractor;
23+
private static PeertubeAccountExtractor extractor;
2424

2525
@BeforeClass
2626
public static void setUp() throws Exception {
2727
NewPipe.init(DownloaderTestImpl.getInstance());
2828
// setting instance might break test when running in parallel
2929
PeerTube.setInstance(new PeertubeInstance("https://peertube.mastodon.host", "PeerTube on Mastodon.host"));
30-
extractor = (PeertubeUserExtractor) PeerTube
30+
extractor = (PeertubeAccountExtractor) PeerTube
3131
.getChannelExtractor("https://peertube.mastodon.host/api/v1/accounts/kde");
3232
extractor.fetchPage();
3333
}
@@ -107,14 +107,14 @@ public void testSubscriberCount() throws ParsingException {
107107
}
108108

109109
public static class Booteille implements BaseChannelExtractorTest {
110-
private static PeertubeUserExtractor extractor;
110+
private static PeertubeAccountExtractor extractor;
111111

112112
@BeforeClass
113113
public static void setUp() throws Exception {
114114
NewPipe.init(DownloaderTestImpl.getInstance());
115115
// setting instance might break test when running in parallel
116116
PeerTube.setInstance(new PeertubeInstance("https://peertube.mastodon.host", "PeerTube on Mastodon.host"));
117-
extractor = (PeertubeUserExtractor) PeerTube
117+
extractor = (PeertubeAccountExtractor) PeerTube
118118
.getChannelExtractor("https://peertube.mastodon.host/accounts/booteille");
119119
extractor.fetchPage();
120120
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@ public void acceptUrlTest() throws ParsingException {
3232
public void getIdFromUrl() throws ParsingException {
3333
assertEquals("accounts/kranti@videos.squat.net", linkHandler.fromUrl("https://peertube.mastodon.host/accounts/kranti@videos.squat.net").getId());
3434
assertEquals("accounts/kranti@videos.squat.net", linkHandler.fromUrl("https://peertube.mastodon.host/accounts/kranti@videos.squat.net/videos").getId());
35+
assertEquals("video-channels/7682d9f2-07be-4622-862e-93ec812e2ffa", linkHandler.fromUrl("https://peertube.mastodon.host/video-channels/7682d9f2-07be-4622-862e-93ec812e2ffa/videos").getId());
3536
}
3637
}

0 commit comments

Comments
 (0)