57 lines
1.7 KiB
Java
57 lines
1.7 KiB
Java
package org.schabi.newpipe.extractor.services.bandcamp.extractors;
|
|
|
|
import org.jsoup.nodes.Element;
|
|
import org.schabi.newpipe.extractor.comments.CommentsInfoItemExtractor;
|
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
|
|
|
import java.util.Objects;
|
|
|
|
public class BandcampCommentsInfoItemExtractor implements CommentsInfoItemExtractor {
|
|
|
|
private final Element writing;
|
|
private final String url;
|
|
|
|
public BandcampCommentsInfoItemExtractor(final Element writing, final String url) {
|
|
this.writing = writing;
|
|
this.url = url;
|
|
}
|
|
|
|
@Override
|
|
public String getName() throws ParsingException {
|
|
return getCommentText();
|
|
}
|
|
|
|
@Override
|
|
public String getUrl() {
|
|
return url;
|
|
}
|
|
|
|
@Override
|
|
public String getThumbnailUrl() throws ParsingException {
|
|
return writing.getElementsByClass("thumb").attr("src");
|
|
}
|
|
|
|
@Override
|
|
public String getCommentText() throws ParsingException {
|
|
return writing.getElementsByClass("text").stream()
|
|
.filter(Objects::nonNull)
|
|
.map(Element::ownText)
|
|
.findFirst()
|
|
.orElseThrow(() -> new ParsingException("Could not get comment text"));
|
|
}
|
|
|
|
@Override
|
|
public String getUploaderName() throws ParsingException {
|
|
return writing.getElementsByClass("name").stream()
|
|
.filter(Objects::nonNull)
|
|
.map(Element::text)
|
|
.findFirst()
|
|
.orElseThrow(() -> new ParsingException("Could not get uploader name"));
|
|
}
|
|
|
|
@Override
|
|
public String getUploaderAvatarUrl() {
|
|
return writing.getElementsByClass("thumb").attr("src");
|
|
}
|
|
}
|