diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItem.java b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItem.java
index d27909276..822069b39 100644
--- a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItem.java
+++ b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItem.java
@@ -20,6 +20,10 @@ public class CommentsInfoItem extends InfoItem {
private String textualLikeCount;
private boolean heartedByUploader;
private boolean pinned;
+ private int streamPosition;
+
+ public static final int NO_LIKE_COUNT = -1;
+ public static final int NO_STREAM_POSITION = -1;
public CommentsInfoItem(int serviceId, String url, String name) {
super(InfoType.COMMENT, serviceId, url, name);
@@ -82,6 +86,10 @@ public class CommentsInfoItem extends InfoItem {
this.uploadDate = uploadDate;
}
+ /**
+ * @return the comment's like count
+ * or {@link CommentsInfoItem#NO_LIKE_COUNT} if it is unavailable
+ */
public int getLikeCount() {
return likeCount;
}
@@ -121,4 +129,17 @@ public class CommentsInfoItem extends InfoItem {
public boolean isUploaderVerified() {
return uploaderVerified;
}
+
+ public void setStreamPosition(final int streamPosition) {
+ this.streamPosition = streamPosition;
+ }
+
+ /**
+ * Get the playback position of the stream to which this comment belongs.
+ * This is not supported by all services.
+ * @return the playback position in seconds or {@link #NO_STREAM_POSITION} if not available
+ */
+ public int getStreamPosition() {
+ return streamPosition;
+ }
}
diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemExtractor.java
index 15266e2ee..4d70bf87d 100644
--- a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemExtractor.java
+++ b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemExtractor.java
@@ -12,15 +12,20 @@ import javax.annotation.Nullable;
public interface CommentsInfoItemExtractor extends InfoItemExtractor {
/**
- * Return the like count of the comment, or -1 if it's unavailable
+ * Return the like count of the comment,
+ * or {@link CommentsInfoItem#NO_LIKE_COUNT} if it is unavailable.
+ *
*
+ *
* NOTE: Currently only implemented for YT {@link YoutubeCommentsInfoItemExtractor#getLikeCount()}
* with limitations (only approximate like count is returned)
*
* @see StreamExtractor#getLikeCount()
+ * @return the comment's like count
+ * or {@link CommentsInfoItem#NO_LIKE_COUNT} if it is unavailable
*/
default int getLikeCount() throws ParsingException {
- return -1;
+ return CommentsInfoItem.NO_LIKE_COUNT;
}
/**
@@ -94,4 +99,12 @@ public interface CommentsInfoItemExtractor extends InfoItemExtractor {
default boolean isUploaderVerified() throws ParsingException {
return false;
}
+
+ /**
+ * The playback position of the stream to which this comment belongs.
+ * @see CommentsInfoItem#getStreamPosition()
+ */
+ default int getStreamPosition() throws ParsingException {
+ return CommentsInfoItem.NO_STREAM_POSITION;
+ }
}
diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java
index 97d394e10..3dc2d95f1 100644
--- a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java
+++ b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java
@@ -87,6 +87,12 @@ public class CommentsInfoItemsCollector extends InfoItemsCollector