From b4544a67e85e32616d6025defb288d1f804c2cbe Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Sun, 13 May 2018 21:28:51 +0200 Subject: [PATCH] add SearchExtractor --- .../schabi/newpipe/extractor/Extractor.java | 3 +- .../org/schabi/newpipe/extractor/Info.java | 14 +++++- .../newpipe/extractor/ListExtractor.java | 5 ++ .../schabi/newpipe/extractor/ListInfo.java | 28 ++++++++++- .../newpipe/extractor/ListUrlIdHandler.java | 9 ++++ .../newpipe/extractor/StreamingService.java | 2 + .../extractor/channel/ChannelExtractor.java | 6 --- .../extractor/channel/ChannelInfo.java | 17 +++---- .../newpipe/extractor/kiosk/KioskInfo.java | 20 +++----- .../extractor/playlist/PlaylistExtractor.java | 6 --- .../extractor/playlist/PlaylistInfo.java | 18 ++++---- .../search/InfoItemsSearchCollector.java | 2 +- .../extractor/search/SearchExtractor.java | 38 +++++++++++++++ .../newpipe/extractor/search/SearchInfo.java | 46 +++++++++++++++++++ .../search/SearchQuerryUrlHandler.java | 11 +++++ .../soundcloud/SoundcloudChartsExtractor.java | 6 --- .../soundcloud/SoundcloudService.java | 7 +++ .../services/youtube/YoutubeService.java | 6 +++ .../extractors/YoutubeTrendingExtractor.java | 6 --- .../extractor/stream/StreamExtractor.java | 6 --- .../youtube/YoutubePlaylistExtractorTest.java | 2 +- 21 files changed, 189 insertions(+), 69 deletions(-) create mode 100644 extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchExtractor.java create mode 100644 extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchInfo.java create mode 100644 extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchQuerryUrlHandler.java diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java index 832ec5624..266259894 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.extractor; -import edu.umd.cs.findbugs.annotations.NonNull; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -34,7 +33,7 @@ public abstract class Extractor { * @return The {@link UrlIdHandler} of the current extractor object (e.g. a ChannelExtractor should return a channel url handler). */ @Nonnull - protected UrlIdHandler getUrlIdHandler() { + public UrlIdHandler getUrlIdHandler() { return urlIdHandler; } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/Info.java b/extractor/src/main/java/org/schabi/newpipe/extractor/Info.java index 974c4555e..99b4d5551 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/Info.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/Info.java @@ -1,5 +1,7 @@ package org.schabi.newpipe.extractor; +import org.schabi.newpipe.extractor.exceptions.ParsingException; + import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; @@ -16,8 +18,8 @@ public abstract class Info implements Serializable { /** * Different than the {@link #originalUrl} in the sense that it may be set as a cleaned url. * - * @see UrlIdHandler#cleanUrl(String) - * @see Extractor#getCleanUrl() + * @see UrlIdHandler#getUrl() + * @see Extractor#getOriginalUrl() */ private final String url; /** @@ -46,6 +48,14 @@ public abstract class Info implements Serializable { this.name = name; } + public Info(int serviceId, UrlIdHandler urlIdHandler, String name) throws ParsingException { + this(serviceId, + urlIdHandler.getId(), + urlIdHandler.getUrl(), + urlIdHandler.getOriginalUrl(), + name); + } + @Override public String toString() { final String ifDifferentString = !url.equals(originalUrl) ? " (originalUrl=\"" + originalUrl + "\")" : ""; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/ListExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/ListExtractor.java index e1a790117..0f68707ba 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/ListExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/ListExtractor.java @@ -49,6 +49,11 @@ public abstract class ListExtractor extends Extractor { return nextPageUrl != null && !nextPageUrl.isEmpty(); } + @Override + public ListUrlIdHandler getUrlIdHandler() { + return (ListUrlIdHandler) super.getUrlIdHandler(); + } + /*////////////////////////////////////////////////////////////////////////// // Inner //////////////////////////////////////////////////////////////////////////*/ diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/ListInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/ListInfo.java index 1b8ce1d96..c676956cf 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/ListInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/ListInfo.java @@ -1,13 +1,31 @@ package org.schabi.newpipe.extractor; +import org.schabi.newpipe.extractor.exceptions.ParsingException; + import java.util.List; public abstract class ListInfo extends Info { private List relatedItems; private String nextPageUrl = null; + private String[] contentFilter = {}; + private String sortFilter = ""; - public ListInfo(int serviceId, String id, String url, String originalUrl, String name) { + public ListInfo(int serviceId, + String id, + String url, + String originalUrl, + String name, + String[] contentFilter, + String sortFilter) { super(serviceId, id, url, originalUrl, name); + this.contentFilter = contentFilter; + this.sortFilter = sortFilter; + } + + public ListInfo(int serviceId, ListUrlIdHandler listUrlIdHandler, String name) throws ParsingException { + super(serviceId, listUrlIdHandler, name); + this.contentFilter = listUrlIdHandler.getContentFilter(); + this.sortFilter = listUrlIdHandler.getSortFilter(); } public List getRelatedItems() { @@ -29,4 +47,12 @@ public abstract class ListInfo extends Info { public void setNextPageUrl(String pageUrl) { this.nextPageUrl = pageUrl; } + + public String[] getContentFilter() { + return contentFilter; + } + + public String getSortFilter() { + return sortFilter; + } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/ListUrlIdHandler.java b/extractor/src/main/java/org/schabi/newpipe/extractor/ListUrlIdHandler.java index 43ff19c8b..aca3e50dc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/ListUrlIdHandler.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/ListUrlIdHandler.java @@ -39,4 +39,13 @@ public abstract class ListUrlIdHandler extends UrlIdHandler { public String[] getAvailableSortFilter() { return new String[0]; } + + + public String[] getContentFilter() { + return contentFilter; + } + + public String getSortFilter() { + return sortFilter; + } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java index fc68dd30d..8349b10dc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java @@ -6,6 +6,7 @@ import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskList; import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; import org.schabi.newpipe.extractor.search.SearchEngine; +import org.schabi.newpipe.extractor.search.SearchExtractor; import org.schabi.newpipe.extractor.stream.StreamExtractor; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; @@ -75,6 +76,7 @@ public abstract class StreamingService { // Extractor //////////////////////////////////////////// public abstract SearchEngine getSearchEngine(); + public abstract SearchExtractor getSearchExtractor(); public abstract SuggestionExtractor getSuggestionExtractor(); public abstract SubscriptionExtractor getSubscriptionExtractor(); public abstract KioskList getKioskList() throws ExtractionException; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java index 625f63810..9d6bef522 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java @@ -36,12 +36,6 @@ public abstract class ChannelExtractor extends ListExtractor { super(service, urlIdHandler); } - @Nonnull - @Override - protected UrlIdHandler getUrlIdHandler() { - return getService().getChannelUrlIdHandler(); - } - public abstract String getAvatarUrl() throws ParsingException; public abstract String getBannerUrl() throws ParsingException; public abstract String getFeedUrl() throws ParsingException; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java index fd5868b27..38f2b6e42 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java @@ -2,9 +2,11 @@ package org.schabi.newpipe.extractor.channel; import org.schabi.newpipe.extractor.ListExtractor.InfoItemsPage; import org.schabi.newpipe.extractor.ListInfo; +import org.schabi.newpipe.extractor.ListUrlIdHandler; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.utils.ExtractorHelper; @@ -32,8 +34,8 @@ import java.io.IOException; public class ChannelInfo extends ListInfo { - public ChannelInfo(int serviceId, String id, String url, String originalUrl, String name) { - super(serviceId, id, url, originalUrl, name); + public ChannelInfo(int serviceId, ListUrlIdHandler urlIdHandler, String name) throws ParsingException { + super(serviceId, urlIdHandler, name); } public static ChannelInfo getInfo(String url) throws IOException, ExtractionException { @@ -52,14 +54,9 @@ public class ChannelInfo extends ListInfo { public static ChannelInfo getInfo(ChannelExtractor extractor) throws IOException, ExtractionException { - // important data - int serviceId = extractor.getServiceId(); - String url = extractor.getUrl(); - String originalUrl = extractor.getOriginalUrl(); - String id = extractor.getId(); - String name = extractor.getName(); - - ChannelInfo info = new ChannelInfo(serviceId, id, url, originalUrl, name); + ChannelInfo info = new ChannelInfo(extractor.getServiceId(), + extractor.getUrlIdHandler(), + extractor.getName()); try { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskInfo.java index f11ebb9f6..56feb40e7 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskInfo.java @@ -20,11 +20,9 @@ package org.schabi.newpipe.extractor.kiosk; * along with NewPipe. If not, see . */ -import org.schabi.newpipe.extractor.ListExtractor; -import org.schabi.newpipe.extractor.ListInfo; -import org.schabi.newpipe.extractor.NewPipe; -import org.schabi.newpipe.extractor.StreamingService; +import org.schabi.newpipe.extractor.*; import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.utils.ExtractorHelper; @@ -32,8 +30,8 @@ import java.io.IOException; public class KioskInfo extends ListInfo { - private KioskInfo(int serviceId, String id, String url, String originalUrl, String name) { - super(serviceId, id, url, originalUrl, name); + private KioskInfo(int serviceId, ListUrlIdHandler urlIdHandler, String name) throws ParsingException { + super(serviceId, urlIdHandler, name); } public static ListExtractor.InfoItemsPage getMoreItems(StreamingService service, @@ -68,13 +66,9 @@ public class KioskInfo extends ListInfo { */ public static KioskInfo getInfo(KioskExtractor extractor) throws ExtractionException { - int serviceId = extractor.getServiceId(); - String name = extractor.getName(); - String id = extractor.getId(); - String url = extractor.getUrl(); - String originalUrl = extractor.getOriginalUrl(); - - KioskInfo info = new KioskInfo(serviceId, id, url, originalUrl, name); + final KioskInfo info = new KioskInfo(extractor.getServiceId(), + extractor.getUrlIdHandler(), + extractor.getName()); final ListExtractor.InfoItemsPage itemsPage = ExtractorHelper.getItemsPageOrLogError(info, extractor); info.setRelatedItems(itemsPage.getItems()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistExtractor.java index cc7107f72..490367fe7 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistExtractor.java @@ -16,12 +16,6 @@ public abstract class PlaylistExtractor extends ListExtractor { super(service, urlIdHandler); } - @Nonnull - @Override - protected UrlIdHandler getUrlIdHandler() { - return getService().getPlaylistUrlIdHandler(); - } - public abstract String getThumbnailUrl() throws ParsingException; public abstract String getBannerUrl() throws ParsingException; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java index 29f7b1448..cdc6c5fe7 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java @@ -2,9 +2,11 @@ package org.schabi.newpipe.extractor.playlist; import org.schabi.newpipe.extractor.ListExtractor.InfoItemsPage; import org.schabi.newpipe.extractor.ListInfo; +import org.schabi.newpipe.extractor.ListUrlIdHandler; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.utils.ExtractorHelper; @@ -12,8 +14,8 @@ import java.io.IOException; public class PlaylistInfo extends ListInfo { - public PlaylistInfo(int serviceId, String id, String url, String originalUrl, String name) { - super(serviceId, id, url, originalUrl, name); + public PlaylistInfo(int serviceId, ListUrlIdHandler urlIdHandler, String name) throws ParsingException { + super(serviceId, urlIdHandler, name); } public static PlaylistInfo getInfo(String url) throws IOException, ExtractionException { @@ -35,14 +37,12 @@ public class PlaylistInfo extends ListInfo { * * @param extractor an extractor where fetchPage() was already got called on. */ - public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws IOException, ExtractionException { + public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws ExtractionException { - int serviceId = extractor.getServiceId(); - String url = extractor.getUrl(); - String originalUrl = extractor.getOriginalUrl(); - String id = extractor.getId(); - String name = extractor.getName(); - PlaylistInfo info = new PlaylistInfo(serviceId, id, url, originalUrl, name); + final PlaylistInfo info = new PlaylistInfo( + extractor.getServiceId(), + extractor.getUrlIdHandler(), + extractor.getName()); try { info.setStreamCount(extractor.getStreamCount()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/search/InfoItemsSearchCollector.java b/extractor/src/main/java/org/schabi/newpipe/extractor/search/InfoItemsSearchCollector.java index d8f4ca0f9..87735cd5e 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/search/InfoItemsSearchCollector.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/search/InfoItemsSearchCollector.java @@ -61,7 +61,7 @@ public class InfoItemsSearchCollector extends InfoItemsCollector { + + public static class NothingFoundException extends ExtractionException { + public NothingFoundException(String message) { + super(message); + } + } + + private final InfoItemsSearchCollector collector; + + public SearchExtractor(StreamingService service, SearchQuerryUrlHandler urlIdHandler) { + super(service, urlIdHandler); + collector = new InfoItemsSearchCollector(service.getServiceId()); + } + + public String getSearchQuerry() { + return getUrlIdHandler().getSearchQuerry(); + } + + public abstract String getSearchSuggestion() throws ParsingException; + protected InfoItemsSearchCollector getInfoItemSearchCollector() { + return collector; + } + + @Override + public SearchQuerryUrlHandler getUrlIdHandler() { + return (SearchQuerryUrlHandler) super.getUrlIdHandler(); + } + +} diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchInfo.java new file mode 100644 index 000000000..963890d12 --- /dev/null +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchInfo.java @@ -0,0 +1,46 @@ +package org.schabi.newpipe.extractor.search; + +import org.schabi.newpipe.extractor.InfoItem; +import org.schabi.newpipe.extractor.ListInfo; +import org.schabi.newpipe.extractor.ListUrlIdHandler; +import org.schabi.newpipe.extractor.exceptions.ExtractionException; +import org.schabi.newpipe.extractor.exceptions.ParsingException; + +public class SearchInfo extends ListInfo { + + private String searchQuerry = ""; + private String searchSuggestion = ""; + + + public SearchInfo(int serviceId, + ListUrlIdHandler urlIdHandler, + String searchQuerry) throws ParsingException { + super(serviceId, urlIdHandler, "Search"); + this.searchQuerry = searchQuerry; + } + + + public static SearchInfo getInfo(SearchExtractor extractor) throws ExtractionException { + final SearchInfo info = new SearchInfo( + extractor.getServiceId(), + extractor.getUrlIdHandler(), + extractor.getSearchQuerry()); + + try { + info.searchSuggestion = extractor.getSearchSuggestion(); + } catch (Exception e) { + info.addError(e); + } + + return info; + } + + // Getter + public String getSearchQuerry() { + return searchQuerry; + } + + public String getSearchSuggestion() { + return searchSuggestion; + } +} diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchQuerryUrlHandler.java b/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchQuerryUrlHandler.java new file mode 100644 index 000000000..dfaa64067 --- /dev/null +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/search/SearchQuerryUrlHandler.java @@ -0,0 +1,11 @@ +package org.schabi.newpipe.extractor.search; + +import org.schabi.newpipe.extractor.ListUrlIdHandler; + +public abstract class SearchQuerryUrlHandler extends ListUrlIdHandler { + String searchQuerry; + + public String getSearchQuerry() { + return searchQuerry; + } +} diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChartsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChartsExtractor.java index 655d4c065..d2423fcb7 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChartsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChartsExtractor.java @@ -32,12 +32,6 @@ public class SoundcloudChartsExtractor extends KioskExtractor { return getId(); } - @Nonnull - @Override - public UrlIdHandler getUrlIdHandler() { - return new SoundcloudChartsUrlIdHandler(); - } - @Override public InfoItemsPage getPage(String pageUrl) throws IOException, ExtractionException { if (pageUrl == null || pageUrl.isEmpty()) { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudService.java index b3e90e725..38cf7fb2a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudService.java @@ -10,6 +10,7 @@ import org.schabi.newpipe.extractor.kiosk.KioskExtractor; import org.schabi.newpipe.extractor.kiosk.KioskList; import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; import org.schabi.newpipe.extractor.search.SearchEngine; +import org.schabi.newpipe.extractor.search.SearchExtractor; import org.schabi.newpipe.extractor.stream.StreamExtractor; import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor; @@ -27,6 +28,12 @@ public class SoundcloudService extends StreamingService { return new SoundcloudSearchEngine(getServiceId()); } + @Override + public SearchExtractor getSearchExtractor() { + return null; + } + + @Override public UrlIdHandler getStreamUrlIdHandler() { return SoundcloudStreamUrlIdHandler.getInstance(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java index 77929139b..7b400d50a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java @@ -10,6 +10,7 @@ import org.schabi.newpipe.extractor.kiosk.KioskExtractor; import org.schabi.newpipe.extractor.kiosk.KioskList; import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; import org.schabi.newpipe.extractor.search.SearchEngine; +import org.schabi.newpipe.extractor.search.SearchExtractor; import org.schabi.newpipe.extractor.services.youtube.extractors.*; import org.schabi.newpipe.extractor.services.youtube.urlIdHandlers.YoutubeChannelUrlIdHandler; import org.schabi.newpipe.extractor.services.youtube.urlIdHandlers.YoutubePlaylistUrlIdHandler; @@ -53,6 +54,11 @@ public class YoutubeService extends StreamingService { return new YoutubeSearchEngine(getServiceId()); } + @Override + public SearchExtractor getSearchExtractor() { + return null; + } + @Override public UrlIdHandler getStreamUrlIdHandler() { return YoutubeStreamUrlIdHandler.getInstance(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java index 9c4cb0802..94b9cc6c0 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java @@ -59,12 +59,6 @@ public class YoutubeTrendingExtractor extends KioskExtractor { doc = Jsoup.parse(pageContent, url); } - @Nonnull - @Override - public UrlIdHandler getUrlIdHandler() { - return new YoutubeTrendingUrlIdHandler(); - } - @Override public String getNextPageUrl() { return ""; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java index a03bb6131..ff8c9f410 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java @@ -43,12 +43,6 @@ public abstract class StreamExtractor extends Extractor { super(service, urlIdHandler); } - @Nonnull - @Override - protected UrlIdHandler getUrlIdHandler() { - return getService().getStreamUrlIdHandler(); - } - @Nonnull public abstract String getUploadDate() throws ParsingException; @Nonnull diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java index 957ceacc9..2bfccbd0b 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubePlaylistExtractorTest.java @@ -46,7 +46,7 @@ public class YoutubePlaylistExtractorTest { @Test public void testName() throws Exception { String name = extractor.getName(); - assertTrue(name, name.startsWith("Pop Music Playlist: Timeless Pop Hits")); + assertTrue(name, name.startsWith("Pop Music Playlist")); } @Test