NewPipeExtractor/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java

57 lines
1.9 KiB
Java
Raw Normal View History

2021-04-26 17:25:04 +02:00
package org.schabi.newpipe.extractor.services.bandcamp.extractors;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.schabi.newpipe.extractor.Page;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.comments.CommentsExtractor;
import org.schabi.newpipe.extractor.comments.CommentsInfoItem;
import org.schabi.newpipe.extractor.comments.CommentsInfoItemsCollector;
import org.schabi.newpipe.extractor.downloader.Downloader;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
import javax.annotation.Nonnull;
import java.io.IOException;
public class BandcampCommentsExtractor extends CommentsExtractor {
private Document document;
2022-03-18 17:50:25 +01:00
public BandcampCommentsExtractor(final StreamingService service,
final ListLinkHandler linkHandler) {
2021-04-26 17:25:04 +02:00
super(service, linkHandler);
}
@Override
2022-03-18 17:50:25 +01:00
public void onFetchPage(@Nonnull final Downloader downloader)
throws IOException, ExtractionException {
document = Jsoup.parse(downloader.get(getLinkHandler().getUrl()).responseBody());
2021-04-26 17:25:04 +02:00
}
@Nonnull
@Override
2022-03-18 17:50:25 +01:00
public InfoItemsPage<CommentsInfoItem> getInitialPage()
throws IOException, ExtractionException {
2021-04-26 17:25:04 +02:00
2022-03-18 17:50:25 +01:00
final CommentsInfoItemsCollector collector = new CommentsInfoItemsCollector(getServiceId());
2021-04-26 17:25:04 +02:00
2022-03-18 17:50:25 +01:00
final Elements writings = document.getElementsByClass("writing");
2021-04-26 17:25:04 +02:00
2022-03-18 17:50:25 +01:00
for (final Element writing : writings) {
2021-04-26 17:25:04 +02:00
collector.commit(new BandcampCommentsInfoItemExtractor(writing, getUrl()));
}
return new InfoItemsPage<>(collector, null);
}
@Override
2022-03-18 17:50:25 +01:00
public InfoItemsPage<CommentsInfoItem> getPage(final Page page)
throws IOException, ExtractionException {
2021-04-26 17:25:04 +02:00
return null;
}
}