package org.schabi.newpipe.extractor.services.media_ccc; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.comments.CommentsExtractor; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; import org.schabi.newpipe.extractor.kiosk.KioskList; import org.schabi.newpipe.extractor.linkhandler.*; import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; import org.schabi.newpipe.extractor.search.SearchExtractor; import org.schabi.newpipe.extractor.services.media_ccc.extractors.MediaCCCConferenceExtractor; import org.schabi.newpipe.extractor.services.media_ccc.extractors.MediaCCCConferenceKiosk; import org.schabi.newpipe.extractor.services.media_ccc.extractors.MediaCCCSearchExtractor; import org.schabi.newpipe.extractor.services.media_ccc.extractors.MediaCCCStreamExtractor; import org.schabi.newpipe.extractor.services.media_ccc.linkHandler.MediaCCCConferenceLinkHandlerFactory; import org.schabi.newpipe.extractor.services.media_ccc.linkHandler.MediaCCCConferencesListLinkHandlerFactory; import org.schabi.newpipe.extractor.services.media_ccc.linkHandler.MediaCCCSearchQueryHandlerFactory; import org.schabi.newpipe.extractor.services.media_ccc.linkHandler.MediaCCCStreamLinkHandlerFactory; import org.schabi.newpipe.extractor.stream.StreamExtractor; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; import org.schabi.newpipe.extractor.suggestion.SuggestionExtractor; import java.io.IOException; import static java.util.Arrays.asList; import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO; import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.VIDEO; public class MediaCCCService extends StreamingService { public MediaCCCService(int id) { super(id, "MediaCCC", asList(AUDIO, VIDEO)); } @Override public SearchExtractor getSearchExtractor(SearchQueryHandler query) { return new MediaCCCSearchExtractor(this, query); } @Override public LinkHandlerFactory getStreamLHFactory() { return new MediaCCCStreamLinkHandlerFactory(); } @Override public ListLinkHandlerFactory getChannelLHFactory() { return new MediaCCCConferenceLinkHandlerFactory(); } @Override public ListLinkHandlerFactory getPlaylistLHFactory() { return null; } @Override public SearchQueryHandlerFactory getSearchQHFactory() { return new MediaCCCSearchQueryHandlerFactory(); } @Override public StreamExtractor getStreamExtractor(LinkHandler linkHandler) { return new MediaCCCStreamExtractor(this, linkHandler); } @Override public ChannelExtractor getChannelExtractor(ListLinkHandler linkHandler) { return new MediaCCCConferenceExtractor(this, linkHandler); } @Override public PlaylistExtractor getPlaylistExtractor(ListLinkHandler linkHandler) { return null; } @Override public SuggestionExtractor getSuggestionExtractor() { return null; } @Override public KioskList getKioskList() throws ExtractionException { KioskList list = new KioskList(this); // add kiosks here e.g.: try { list.addKioskEntry(new KioskList.KioskExtractorFactory() { @Override public KioskExtractor createNewKiosk(StreamingService streamingService, String url, String kioskId) throws ExtractionException, IOException { return new MediaCCCConferenceKiosk(MediaCCCService.this, new MediaCCCConferencesListLinkHandlerFactory().fromUrl(url), kioskId); } }, new MediaCCCConferencesListLinkHandlerFactory(), "conferences"); list.setDefaultKiosk("conferences"); } catch (Exception e) { throw new ExtractionException(e); } return list; } @Override public SubscriptionExtractor getSubscriptionExtractor() { return null; } @Override public ListLinkHandlerFactory getCommentsLHFactory() { return null; } @Override public CommentsExtractor getCommentsExtractor(ListLinkHandler linkHandler) throws ExtractionException { return null; } }