Reimplemented likeCount
This commit is contained in:
parent
01cfb55505
commit
2174685c5c
|
@ -16,6 +16,7 @@ public class CommentsInfoItem extends InfoItem {
|
||||||
private String textualUploadDate;
|
private String textualUploadDate;
|
||||||
@Nullable
|
@Nullable
|
||||||
private DateWrapper uploadDate;
|
private DateWrapper uploadDate;
|
||||||
|
private int likeCount;
|
||||||
private String textualVoteCount;
|
private String textualVoteCount;
|
||||||
private boolean heartedByUploader;
|
private boolean heartedByUploader;
|
||||||
private boolean pinned;
|
private boolean pinned;
|
||||||
|
@ -81,6 +82,14 @@ public class CommentsInfoItem extends InfoItem {
|
||||||
this.uploadDate = uploadDate;
|
this.uploadDate = uploadDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLikeCount() {
|
||||||
|
return likeCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLikeCount(int likeCount) {
|
||||||
|
this.likeCount = likeCount;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTextualVoteCount() {
|
public String getTextualVoteCount() {
|
||||||
return textualVoteCount;
|
return textualVoteCount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.schabi.newpipe.extractor.comments;
|
||||||
import org.schabi.newpipe.extractor.InfoItemExtractor;
|
import org.schabi.newpipe.extractor.InfoItemExtractor;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
import org.schabi.newpipe.extractor.localization.DateWrapper;
|
import org.schabi.newpipe.extractor.localization.DateWrapper;
|
||||||
|
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeCommentsInfoItemExtractor;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamExtractor;
|
import org.schabi.newpipe.extractor.stream.StreamExtractor;
|
||||||
import org.schabi.newpipe.extractor.utils.Utils;
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
|
@ -11,8 +12,18 @@ import javax.annotation.Nullable;
|
||||||
public interface CommentsInfoItemExtractor extends InfoItemExtractor {
|
public interface CommentsInfoItemExtractor extends InfoItemExtractor {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The formatted text (e.g. 420, 4K, 4.2M) of the votes
|
* Return the like count of the comment, or -1 if it's unavailable<br/>
|
||||||
|
* NOTE: Currently only implemented for YT {@link YoutubeCommentsInfoItemExtractor#getLikeCount()}
|
||||||
|
* with limitations
|
||||||
*
|
*
|
||||||
|
* @see StreamExtractor#getLikeCount()
|
||||||
|
*/
|
||||||
|
default int getLikeCount() throws ParsingException {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The formatted text (e.g. 420, 4K, 4.2M) of the votes<br/>
|
||||||
* May be language dependent
|
* May be language dependent
|
||||||
*/
|
*/
|
||||||
default String getTextualVoteCount() throws ParsingException {
|
default String getTextualVoteCount() throws ParsingException {
|
||||||
|
|
|
@ -59,6 +59,11 @@ public class CommentsInfoItemsCollector extends InfoItemsCollector<CommentsInfoI
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
addError(e);
|
addError(e);
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
resultItem.setLikeCount(extractor.getLikeCount());
|
||||||
|
} catch (Exception e) {
|
||||||
|
addError(e);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
resultItem.setTextualVoteCount(extractor.getTextualVoteCount());
|
resultItem.setTextualVoteCount(extractor.getTextualVoteCount());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -70,6 +70,29 @@ public class YoutubeCommentsInfoItemExtractor implements CommentsInfoItemExtract
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @implNote The method is parsing internally a localized string.<br/>
|
||||||
|
* This will fail for other languages than English.
|
||||||
|
* However as long as the Extractor only uses "en-GB"
|
||||||
|
* (as seen in {@link org.schabi.newpipe.extractor.services.youtube.YoutubeService#SUPPORTED_LANGUAGES})
|
||||||
|
* everything will work fine.<br/>
|
||||||
|
* Consider using {@link #getTextualVoteCount()}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLikeCount() throws ParsingException {
|
||||||
|
// This may return a language dependent version, e.g. in German: 3,3 Mio
|
||||||
|
String voteCount = getTextualVoteCount();
|
||||||
|
try {
|
||||||
|
if (Utils.isBlank(voteCount)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) Utils.mixedNumberWordToLong(voteCount);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ParsingException("Unexpected error while converting vote count", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTextualVoteCount() throws ParsingException {
|
public String getTextualVoteCount() throws ParsingException {
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue