package org.schabi.newpipe.extractor.services.peertube.linkHandler; import org.schabi.newpipe.extractor.ServiceList; import org.schabi.newpipe.extractor.exceptions.FoundAdException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory; import java.util.List; public final class PeertubeCommentsLinkHandlerFactory extends ListLinkHandlerFactory { private static final PeertubeCommentsLinkHandlerFactory INSTANCE = new PeertubeCommentsLinkHandlerFactory(); private static final String COMMENTS_ENDPOINT = "/api/v1/videos/%s/comment-threads"; private PeertubeCommentsLinkHandlerFactory() { } public static PeertubeCommentsLinkHandlerFactory getInstance() { return INSTANCE; } @Override public String getId(final String url) throws ParsingException, IllegalArgumentException { return PeertubeStreamLinkHandlerFactory.getInstance().getId(url); // the same id is needed } @Override public boolean onAcceptUrl(final String url) throws FoundAdException { return url.contains("/videos/") || url.contains("/w/"); } @Override public String getUrl(final String id, final List contentFilter, final String sortFilter) throws ParsingException { return getUrl(id, contentFilter, sortFilter, ServiceList.PeerTube.getBaseUrl()); } @Override public String getUrl(final String id, final List contentFilter, final String sortFilter, final String baseUrl) throws ParsingException { return baseUrl + String.format(COMMENTS_ENDPOINT, id); } }