64 lines
2.1 KiB
Java
64 lines
2.1 KiB
Java
package org.schabi.newpipe.extractor;
|
|
|
|
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
|
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
|
import org.schabi.newpipe.extractor.playlist.PlaylistExtractor;
|
|
import org.schabi.newpipe.extractor.search.SearchEngine;
|
|
import org.schabi.newpipe.extractor.stream.StreamExtractor;
|
|
|
|
import java.io.IOException;
|
|
|
|
public abstract class StreamingService {
|
|
public class ServiceInfo {
|
|
public String name = "";
|
|
}
|
|
|
|
public enum LinkType {
|
|
NONE,
|
|
STREAM,
|
|
CHANNEL,
|
|
PLAYLIST
|
|
}
|
|
|
|
private int serviceId;
|
|
|
|
public StreamingService(int id) {
|
|
serviceId = id;
|
|
}
|
|
|
|
public abstract ServiceInfo getServiceInfo();
|
|
|
|
public abstract UrlIdHandler getStreamUrlIdHandlerInstance();
|
|
public abstract UrlIdHandler getChannelUrlIdHandlerInstance();
|
|
public abstract UrlIdHandler getPlaylistUrlIdHandlerInstance();
|
|
public abstract SearchEngine getSearchEngineInstance();
|
|
public abstract SuggestionExtractor getSuggestionExtractorInstance();
|
|
public abstract StreamExtractor getStreamExtractorInstance(String url) throws IOException, ExtractionException;
|
|
public abstract ChannelExtractor getChannelExtractorInstance(String url) throws ExtractionException, IOException;
|
|
public abstract PlaylistExtractor getPlaylistExtractorInstance(String url) throws ExtractionException, IOException;
|
|
|
|
|
|
public final int getServiceId() {
|
|
return serviceId;
|
|
}
|
|
|
|
/**
|
|
* figure out where the link is pointing to (a channel, video, playlist, etc.)
|
|
*/
|
|
public final LinkType getLinkTypeByUrl(String url) {
|
|
UrlIdHandler sH = getStreamUrlIdHandlerInstance();
|
|
UrlIdHandler cH = getChannelUrlIdHandlerInstance();
|
|
UrlIdHandler pH = getPlaylistUrlIdHandlerInstance();
|
|
|
|
if (sH.acceptUrl(url)) {
|
|
return LinkType.STREAM;
|
|
} else if (cH.acceptUrl(url)) {
|
|
return LinkType.CHANNEL;
|
|
} else if (pH.acceptUrl(url)) {
|
|
return LinkType.PLAYLIST;
|
|
} else {
|
|
return LinkType.NONE;
|
|
}
|
|
}
|
|
}
|