From d49f8411d7ae76b7802dbbedf23ac2c7273da926 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Mon, 9 Oct 2023 02:28:09 +0200 Subject: [PATCH] [PeerTube] Implement CommentsInfoItemExtractor.hasCreatorReply() --- .../PeertubeCommentsInfoItemExtractor.java | 6 ++++ .../PeertubeCommentsExtractorTest.java | 30 +++++++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsInfoItemExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsInfoItemExtractor.java index f2179cbde..0c9145af0 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsInfoItemExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsInfoItemExtractor.java @@ -148,4 +148,10 @@ public class PeertubeCommentsInfoItemExtractor implements CommentsInfoItemExtrac } return replyCount; } + + @Override + public boolean hasCreatorReply() { + return item.has("totalRepliesFromVideoAuthor") + && item.getInt("totalRepliesFromVideoAuthor") > 0; + } } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeCommentsExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeCommentsExtractorTest.java index ee2303706..38ffb1ee3 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeCommentsExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeCommentsExtractorTest.java @@ -127,26 +127,46 @@ public class PeertubeCommentsExtractorTest { */ public static class NestedComments { private static PeertubeCommentsExtractor extractor; + private static InfoItemsPage comments = null; @BeforeAll public static void setUp() throws Exception { NewPipe.init(DownloaderTestImpl.getInstance()); extractor = (PeertubeCommentsExtractor) PeerTube .getCommentsExtractor("https://share.tube/w/vxu4uTstUBAUromWwXGHrq"); + comments = extractor.getInitialPage(); } @Test void testGetComments() throws IOException, ExtractionException { - final InfoItemsPage comments = extractor.getInitialPage(); assertFalse(comments.getItems().isEmpty()); final Optional nestedCommentHeadOpt = - comments.getItems() - .stream() - .filter(c -> c.getCommentId().equals("9770")) - .findFirst(); + findCommentWithId("9770", comments.getItems()); assertTrue(nestedCommentHeadOpt.isPresent()); assertTrue(findNestedCommentWithId("9773", nestedCommentHeadOpt.get()), "The nested comment replies were not found"); } + + @Test + void testHasCreatorReply() { + assertCreatorReply("9770", true); + assertCreatorReply("9852", false); + assertCreatorReply("11239", false); + } + + private static void assertCreatorReply(final String id, final boolean expected) { + final Optional comment = + findCommentWithId(id, comments.getItems()); + assertTrue(comment.isPresent()); + assertEquals(expected, comment.get().hasCreatorReply()); + } + } + + private static Optional findCommentWithId( + final String id, final List comments) { + return comments + .stream() + .filter(c -> c.getCommentId().equals(id)) + .findFirst(); } private static boolean findNestedCommentWithId(final String id, final CommentsInfoItem comment)