Skip to content

Commit 38ad1ea

Browse files
committed
[PeerTube] Support /w/ short video links part 2
We also need to support it for comments
1 parent 0267516 commit 38ad1ea

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
public class PeertubeCommentsLinkHandlerFactory extends ListLinkHandlerFactory {
1212

1313
private static final PeertubeCommentsLinkHandlerFactory instance = new PeertubeCommentsLinkHandlerFactory();
14-
private static final String ID_PATTERN = "/videos/(watch/)?([^/?&#]*)";
1514
private static final String COMMENTS_ENDPOINT = "/api/v1/videos/%s/comment-threads";
1615

1716
public static PeertubeCommentsLinkHandlerFactory getInstance() {
@@ -20,12 +19,12 @@ public static PeertubeCommentsLinkHandlerFactory getInstance() {
2019

2120
@Override
2221
public String getId(String url) throws ParsingException, IllegalArgumentException {
23-
return Parser.matchGroup(ID_PATTERN, url, 2);
22+
return PeertubeStreamLinkHandlerFactory.getInstance().getId(url); // the same id is needed
2423
}
2524

2625
@Override
2726
public boolean onAcceptUrl(final String url) throws FoundAdException {
28-
return url.contains("/videos/");
27+
return url.contains("/videos/") || url.contains("/w/");
2928
}
3029

3130
@Override

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

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,32 @@ public static void setUp() {
2525

2626
@Test
2727
public void acceptUrlTest() throws ParsingException {
28-
assertTrue(linkHandler.acceptUrl("https://peertube.mastodon.host/api/v1/videos/19319/comment-threads?start=0&count=10&sort=-createdAt"));
28+
assertTrue(linkHandler.acceptUrl("https://framatube.org/videos/watch/kkGMgK9ZtnKfYAgnEtQxbv"));
29+
assertTrue(linkHandler.acceptUrl("https://framatube.org/w/kkGMgK9ZtnKfYAgnEtQxbv"));
30+
assertTrue(linkHandler.acceptUrl("https://framatube.org/api/v1/videos/kkGMgK9ZtnKfYAgnEtQxbv/comment-threads?start=0&count=10&sort=-createdAt"));
31+
assertTrue(linkHandler.acceptUrl("https://framatube.org/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d"));
32+
assertTrue(linkHandler.acceptUrl("https://framatube.org/w/9c9de5e8-0a1e-484a-b099-e80766180a6d"));
33+
assertTrue(linkHandler.acceptUrl("https://framatube.org/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180a6d/comment-threads?start=0&count=10&sort=-createdAt"));
2934
}
3035

3136
@Test
3237
public void getIdFromUrl() throws ParsingException {
33-
assertEquals("19319", linkHandler.fromUrl("https://peertube.mastodon.host/api/v1/videos/19319/comment-threads").getId());
34-
assertEquals("19319", linkHandler.fromUrl("https://peertube.mastodon.host/api/v1/videos/19319/comment-threads?start=0&count=10&sort=-createdAt").getId());
38+
assertEquals("kkGMgK9ZtnKfYAgnEtQxbv",
39+
linkHandler.fromUrl("https://framatube.org/w/kkGMgK9ZtnKfYAgnEtQxbv").getId());
40+
assertEquals("kkGMgK9ZtnKfYAgnEtQxbv",
41+
linkHandler.fromUrl("https://framatube.org/videos/watch/kkGMgK9ZtnKfYAgnEtQxbv").getId());
42+
assertEquals("kkGMgK9ZtnKfYAgnEtQxbv",
43+
linkHandler.fromUrl("https://framatube.org/api/v1/videos/kkGMgK9ZtnKfYAgnEtQxbv/comment-threads").getId());
44+
assertEquals("kkGMgK9ZtnKfYAgnEtQxbv",
45+
linkHandler.fromUrl("https://framatube.org/api/v1/videos/kkGMgK9ZtnKfYAgnEtQxbv/comment-threads?start=0&count=10&sort=-createdAt").getId());
46+
47+
assertEquals("9c9de5e8-0a1e-484a-b099-e80766180a6d",
48+
linkHandler.fromUrl("https://framatube.org/w/9c9de5e8-0a1e-484a-b099-e80766180a6d").getId());
49+
assertEquals("9c9de5e8-0a1e-484a-b099-e80766180a6d",
50+
linkHandler.fromUrl("https://framatube.org/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d").getId());
51+
assertEquals("9c9de5e8-0a1e-484a-b099-e80766180a6d",
52+
linkHandler.fromUrl("https://framatube.org/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180a6d/comment-threads").getId());
53+
assertEquals("9c9de5e8-0a1e-484a-b099-e80766180a6d",
54+
linkHandler.fromUrl("https://framatube.org/api/v1/videos/9c9de5e8-0a1e-484a-b099-e80766180a6d/comment-threads?start=0&count=10&sort=-createdAt").getId());
3555
}
3656
}

0 commit comments

Comments
 (0)