From e4c40ae6d16c298a1e14ac368d6081bf2fccc3cd Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:43:57 +0100 Subject: [PATCH 01/10] Use List.isEmpty() --- .../org/schabi/newpipe/extractor/downloader/Response.java | 6 ++---- .../org/schabi/newpipe/extractor/playlist/PlaylistInfo.java | 2 +- .../bandcamp/extractors/BandcampSearchExtractor.java | 4 ++-- .../extractor/services/peertube/PeertubeService.java | 2 +- .../linkHandler/PeertubeSearchQueryHandlerFactory.java | 2 +- .../services/soundcloud/SoundcloudParsingHelper.java | 2 +- .../soundcloud/extractors/SoundcloudSearchExtractor.java | 2 +- .../newpipe/extractor/services/youtube/YoutubeService.java | 2 +- .../linkHandler/YoutubeSearchQueryHandlerFactory.java | 2 +- 9 files changed, 11 insertions(+), 13 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/downloader/Response.java b/extractor/src/main/java/org/schabi/newpipe/extractor/downloader/Response.java index b252d463..c986f72d 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/downloader/Response.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/downloader/Response.java @@ -69,10 +69,8 @@ public class Response { public String getHeader(String name) { for (Map.Entry> headerEntry : responseHeaders.entrySet()) { final String key = headerEntry.getKey(); - if (key != null && key.equalsIgnoreCase(name)) { - if (headerEntry.getValue().size() > 0) { - return headerEntry.getValue().get(0); - } + if (key != null && key.equalsIgnoreCase(name) && !headerEntry.getValue().isEmpty()) { + return headerEntry.getValue().get(0); } } 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 873d879e..cd6df374 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 @@ -106,7 +106,7 @@ public class PlaylistInfo extends ListInfo { info.addError(e); } // do not fail if everything but the uploader infos could be collected - if (uploaderParsingErrors.size() > 0 && + if (!uploaderParsingErrors.isEmpty() && (!info.getErrors().isEmpty() || uploaderParsingErrors.size() < 3)) { info.addAllErrors(uploaderParsingErrors); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java index 6888d693..a0648304 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java @@ -87,7 +87,7 @@ public class BandcampSearchExtractor extends SearchExtractor { // Count pages final Elements pageLists = d.getElementsByClass("pagelist"); - if (pageLists.size() == 0) + if (pageLists.isEmpty()) return new InfoItemsPage<>(collector, null); final Elements pages = pageLists.first().getElementsByTag("li"); @@ -96,7 +96,7 @@ public class BandcampSearchExtractor extends SearchExtractor { int currentPage = -1; for (int i = 0; i < pages.size(); i++) { final Element pageElement = pages.get(i); - if (pageElement.getElementsByTag("span").size() > 0) { + if (!pageElement.getElementsByTag("span").isEmpty()) { currentPage = i + 1; break; } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/PeertubeService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/PeertubeService.java index ea1a7844..9d86ca99 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/PeertubeService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/PeertubeService.java @@ -63,7 +63,7 @@ public class PeertubeService extends StreamingService { public SearchExtractor getSearchExtractor(SearchQueryHandler queryHandler) { final List contentFilters = queryHandler.getContentFilters(); boolean external = false; - if (contentFilters.size() > 0 && contentFilters.get(0).startsWith("sepia_")) { + if (!contentFilters.isEmpty() && contentFilters.get(0).startsWith("sepia_")) { external = true; } return new PeertubeSearchExtractor(this, queryHandler, external); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java index 87cf6ed8..a660a5bc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java @@ -24,7 +24,7 @@ public class PeertubeSearchQueryHandlerFactory extends SearchQueryHandlerFactory @Override public String getUrl(String searchString, List contentFilters, String sortFilter) throws ParsingException { String baseUrl; - if (contentFilters.size() > 0 && contentFilters.get(0).startsWith("sepia_")) { + if (!contentFilters.isEmpty() && contentFilters.get(0).startsWith("sepia_")) { baseUrl = SEPIA_BASE_URL; } else { baseUrl = ServiceList.PeerTube.getBaseUrl(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java index 52e7fdae..2afdc09b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java @@ -89,7 +89,7 @@ public class SoundcloudParsingHelper { SoundcloudStreamExtractor e = (SoundcloudStreamExtractor) SoundCloud .getStreamExtractor("https://soundcloud.com/liluzivert/do-what-i-want-produced-by-maaly-raw-don-cannon"); e.fetchPage(); - return e.getAudioStreams().size() >= 1; + return !e.getAudioStreams().isEmpty(); } catch (Exception ignored) { // No need to throw an exception here. If something went wrong, the client_id is wrong return false; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java index d5eebe98..20d7008a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java @@ -83,7 +83,7 @@ public class SoundcloudSearchExtractor extends SearchExtractor { throw new ParsingException("Could not parse json response", e); } - if (searchCollection.size() == 0) { + if (searchCollection.isEmpty()) { throw new SearchExtractor.NothingFoundException("Nothing found"); } } 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 6e7ab740..edd45953 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 @@ -123,7 +123,7 @@ public class YoutubeService extends StreamingService { public SearchExtractor getSearchExtractor(SearchQueryHandler query) { final List contentFilters = query.getContentFilters(); - if (contentFilters.size() > 0 && contentFilters.get(0).startsWith("music_")) { + if (!contentFilters.isEmpty() && contentFilters.get(0).startsWith("music_")) { return new YoutubeMusicSearchExtractor(this, query); } else { return new YoutubeSearchExtractor(this, query); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeSearchQueryHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeSearchQueryHandlerFactory.java index cb3933a0..17e117a4 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeSearchQueryHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeSearchQueryHandlerFactory.java @@ -32,7 +32,7 @@ public class YoutubeSearchQueryHandlerFactory extends SearchQueryHandlerFactory @Override public String getUrl(String searchString, List contentFilters, String sortFilter) throws ParsingException { try { - if (contentFilters.size() > 0) { + if (!contentFilters.isEmpty()) { switch (contentFilters.get(0)) { case ALL: default: From c3e23559d7183d378e3cd1e425290ffe6cea15f7 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:41:56 +0100 Subject: [PATCH 02/10] Remove unused imports --- .../media_ccc/extractors/MediaCCCLiveStreamKiosk.java | 2 -- .../media_ccc/extractors/MediaCCCParsingHelper.java | 1 - .../peertube/extractors/PeertubeCommentsExtractor.java | 6 +----- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java index cbaba661..14049bb3 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java @@ -2,8 +2,6 @@ package org.schabi.newpipe.extractor.services.media_ccc.extractors; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; -import com.grack.nanojson.JsonParser; -import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.downloader.Downloader; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java index a3aec1dd..1cb9d975 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java @@ -12,7 +12,6 @@ import org.schabi.newpipe.extractor.localization.Localization; import java.io.IOException; import java.time.OffsetDateTime; import java.time.format.DateTimeParseException; -import java.util.Locale; import java.util.regex.Pattern; public final class MediaCCCParsingHelper { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java index 7c51e740..5ba80134 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java @@ -3,7 +3,6 @@ package org.schabi.newpipe.extractor.services.peertube.extractors; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonParser; - import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.comments.CommentsExtractor; @@ -15,14 +14,11 @@ import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; import org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper; -import org.schabi.newpipe.extractor.utils.JsonUtils; import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.COUNT_KEY; -import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.ITEMS_PER_PAGE; -import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.START_KEY; +import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.*; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; public class PeertubeCommentsExtractor extends CommentsExtractor { From 46eab1ec17534902e811bf751030b2f146b22c0c Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:43:46 +0100 Subject: [PATCH 03/10] Remove declarations of exceptions which are not thrown from method signatures --- .../media_ccc/extractors/MediaCCCLiveStreamExtractor.java | 4 ++-- .../services/soundcloud/SoundcloudParsingHelper.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java index 889c3c9f..f38eb0fd 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java @@ -217,7 +217,7 @@ public class MediaCCCLiveStreamExtractor extends StreamExtractor { } @Override - public List getVideoOnlyStreams() throws IOException, ExtractionException { + public List getVideoOnlyStreams() { return null; } @@ -251,7 +251,7 @@ public class MediaCCCLiveStreamExtractor extends StreamExtractor { @Nonnull @Override - public String getHost() throws ParsingException { + public String getHost() { return null; } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java index 2afdc09b..1aac227a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java @@ -131,7 +131,7 @@ public class SoundcloudParsingHelper { * * @return the url resolved */ - public static String resolveUrlWithEmbedPlayer(String apiUrl) throws IOException, ReCaptchaException, ParsingException { + public static String resolveUrlWithEmbedPlayer(String apiUrl) throws IOException, ReCaptchaException { String response = NewPipe.getDownloader().get("https://w.soundcloud.com/player/?url=" + URLEncoder.encode(apiUrl, UTF_8), SoundCloud.getLocalization()).responseBody(); From b9282bbe94ec820606744ef4494e92987c25be1c Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:45:44 +0100 Subject: [PATCH 04/10] Remove checks which are always true --- .../services/peertube/extractors/PeertubeAccountExtractor.java | 2 +- .../services/peertube/extractors/PeertubeChannelExtractor.java | 2 +- .../services/peertube/extractors/PeertubeStreamExtractor.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java index c8d6258c..65f88b21 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java @@ -163,7 +163,7 @@ public class PeertubeAccountExtractor extends ChannelExtractor { } final Response response = downloader.get(accountUrl); - if (response != null && response.responseBody() != null) { + if (response != null) { setInitialData(response.responseBody()); } else { throw new ExtractionException("Unable to extract PeerTube account data"); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java index 67ef38c2..bcfa7d28 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java @@ -136,7 +136,7 @@ public class PeertubeChannelExtractor extends ChannelExtractor { public void onFetchPage(final Downloader downloader) throws IOException, ExtractionException { final Response response = downloader.get( baseUrl + PeertubeChannelLinkHandlerFactory.API_ENDPOINT + getId()); - if (response != null && response.responseBody() != null) { + if (response != null ) { setInitialData(response.responseBody()); } else { throw new ExtractionException("Unable to extract PeerTube channel data"); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java index 61183871..9959db19 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java @@ -364,7 +364,7 @@ public class PeertubeStreamExtractor extends StreamExtractor { @Override public void onFetchPage(final Downloader downloader) throws IOException, ExtractionException { final Response response = downloader.get(baseUrl + PeertubeStreamLinkHandlerFactory.VIDEO_API_ENDPOINT + getId()); - if (response != null && response.responseBody() != null) { + if (response != null) { setInitialData(response.responseBody()); } else { throw new ExtractionException("Unable to extract PeerTube channel data"); From 6a0f6e846ae90cf7ad93d7013a25aace1f19ae10 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:47:22 +0100 Subject: [PATCH 05/10] Fix possible bug when language.id field is not present and this the languageCode an empty String. --- .../services/peertube/extractors/PeertubeStreamExtractor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java index 9959db19..33d30f35 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java @@ -33,6 +33,7 @@ import java.util.List; import java.util.Locale; import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; +import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; public class PeertubeStreamExtractor extends StreamExtractor { private final String baseUrl; @@ -400,7 +401,7 @@ public class PeertubeStreamExtractor extends StreamExtractor { final String languageCode = JsonUtils.getString(caption, "language.id"); final String ext = url.substring(url.lastIndexOf(".") + 1); final MediaFormat fmt = MediaFormat.getFromSuffix(ext); - if (fmt != null && languageCode != null) + if (fmt != null && !isNullOrEmpty(languageCode)) subtitles.add(new SubtitlesStream(fmt, languageCode, url, false)); } } From 22bd16fca30fad09240be55158049716314b6c75 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:58:42 +0100 Subject: [PATCH 06/10] Make vars private, final and static --- .../newpipe/extractor/exceptions/ReCaptchaException.java | 2 +- .../media_ccc/extractors/MediaCCCLiveStreamKiosk.java | 2 +- .../services/soundcloud/SoundcloudParsingHelper.java | 2 +- .../linkHandler/SoundcloudChannelLinkHandlerFactory.java | 2 +- .../linkHandler/SoundcloudChartsLinkHandlerFactory.java | 4 ++-- .../linkHandler/SoundcloudPlaylistLinkHandlerFactory.java | 2 +- .../linkHandler/SoundcloudStreamLinkHandlerFactory.java | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/exceptions/ReCaptchaException.java b/extractor/src/main/java/org/schabi/newpipe/extractor/exceptions/ReCaptchaException.java index 504ea8fe..b077ae59 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/exceptions/ReCaptchaException.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/exceptions/ReCaptchaException.java @@ -21,7 +21,7 @@ package org.schabi.newpipe.extractor.exceptions; */ public class ReCaptchaException extends ExtractionException { - private String url; + private final String url; public ReCaptchaException(final String message, final String url) { super(message); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java index 14049bb3..260b04f3 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java @@ -16,7 +16,7 @@ import javax.annotation.Nonnull; import java.io.IOException; public class MediaCCCLiveStreamKiosk extends KioskExtractor { - public JsonArray doc; + private JsonArray doc; public MediaCCCLiveStreamKiosk(StreamingService streamingService, ListLinkHandler linkHandler, String kioskId) { super(streamingService, linkHandler, kioskId); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java index 1aac227a..2c377846 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java @@ -46,7 +46,7 @@ public class SoundcloudParsingHelper { private SoundcloudParsingHelper() { } - public synchronized static String clientId() throws ExtractionException, IOException { + public static synchronized String clientId() throws ExtractionException, IOException { if (!isNullOrEmpty(clientId)) return clientId; Downloader dl = NewPipe.getDownloader(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChannelLinkHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChannelLinkHandlerFactory.java index 4ef513b8..e49834eb 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChannelLinkHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChannelLinkHandlerFactory.java @@ -10,7 +10,7 @@ import java.util.List; public class SoundcloudChannelLinkHandlerFactory extends ListLinkHandlerFactory { private static final SoundcloudChannelLinkHandlerFactory instance = new SoundcloudChannelLinkHandlerFactory(); - private final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + + private static final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + "(/((tracks|albums|sets|reposts|followers|following)/?)?)?([#?].*)?$"; public static SoundcloudChannelLinkHandlerFactory getInstance() { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChartsLinkHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChartsLinkHandlerFactory.java index 546564e4..dfe1c80a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChartsLinkHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudChartsLinkHandlerFactory.java @@ -6,8 +6,8 @@ import org.schabi.newpipe.extractor.utils.Parser; import java.util.List; public class SoundcloudChartsLinkHandlerFactory extends ListLinkHandlerFactory { - private final String TOP_URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/charts(/top)?/?([#?].*)?$"; - private final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/charts(/top|/new)?/?([#?].*)?$"; + private static final String TOP_URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/charts(/top)?/?([#?].*)?$"; + private static final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/charts(/top|/new)?/?([#?].*)?$"; @Override diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudPlaylistLinkHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudPlaylistLinkHandlerFactory.java index 53a70d3a..3adade10 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudPlaylistLinkHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudPlaylistLinkHandlerFactory.java @@ -10,7 +10,7 @@ import java.util.List; public class SoundcloudPlaylistLinkHandlerFactory extends ListLinkHandlerFactory { private static final SoundcloudPlaylistLinkHandlerFactory instance = new SoundcloudPlaylistLinkHandlerFactory(); - private final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + + private static final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + "/sets/[0-9a-z_-]+/?([#?].*)?$"; public static SoundcloudPlaylistLinkHandlerFactory getInstance() { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudStreamLinkHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudStreamLinkHandlerFactory.java index e271345d..48aa836e 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudStreamLinkHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/linkHandler/SoundcloudStreamLinkHandlerFactory.java @@ -8,7 +8,7 @@ import org.schabi.newpipe.extractor.utils.Utils; public class SoundcloudStreamLinkHandlerFactory extends LinkHandlerFactory { private static final SoundcloudStreamLinkHandlerFactory instance = new SoundcloudStreamLinkHandlerFactory(); - private final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + + private static final String URL_PATTERN = "^https?://(www\\.|m\\.)?soundcloud.com/[0-9a-z_-]+" + "/(?!(tracks|albums|sets|reposts|followers|following)/?$)[0-9a-z_-]+/?([#?].*)?$"; private SoundcloudStreamLinkHandlerFactory() { From 48fd8ca7b39683870cc28993a416ee901d582872 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 00:58:17 +0100 Subject: [PATCH 07/10] Remove redundant type declaration --- .../extractor/linkhandler/SearchQueryHandlerFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/linkhandler/SearchQueryHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/linkhandler/SearchQueryHandlerFactory.java index 341803c9..3b891b30 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/linkhandler/SearchQueryHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/linkhandler/SearchQueryHandlerFactory.java @@ -37,7 +37,7 @@ public abstract class SearchQueryHandlerFactory extends ListLinkHandlerFactory { } public SearchQueryHandler fromQuery(String query) throws ParsingException { - return fromQuery(query, new ArrayList(0), EMPTY_STRING); + return fromQuery(query, new ArrayList<>(0), EMPTY_STRING); } /** From f2e7c7ebd604e9ab2e31a614b10af90c9d9bca30 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 01:05:58 +0100 Subject: [PATCH 08/10] Replace Vector with ArrayList for performance improvements I could not figure out, why these two methods are necessary. --- .../newpipe/extractor/comments/CommentsInfoItemsCollector.java | 3 ++- .../newpipe/extractor/stream/StreamInfoItemsCollector.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java index 2fc0faef..5a1b8848 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/comments/CommentsInfoItemsCollector.java @@ -4,6 +4,7 @@ import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.InfoItemsCollector; import org.schabi.newpipe.extractor.exceptions.ParsingException; +import java.util.ArrayList; import java.util.List; import java.util.Vector; @@ -95,7 +96,7 @@ public class CommentsInfoItemsCollector extends InfoItemsCollector getCommentsInfoItemList() { - List siiList = new Vector<>(); + List siiList = new ArrayList<>(); for (InfoItem ii : super.getItems()) { if (ii instanceof CommentsInfoItem) { siiList.add((CommentsInfoItem) ii); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfoItemsCollector.java b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfoItemsCollector.java index 1e6e6e91..464653a9 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfoItemsCollector.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfoItemsCollector.java @@ -5,6 +5,7 @@ import org.schabi.newpipe.extractor.InfoItemsCollector; import org.schabi.newpipe.extractor.exceptions.FoundAdException; import org.schabi.newpipe.extractor.exceptions.ParsingException; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Vector; @@ -111,7 +112,7 @@ public class StreamInfoItemsCollector extends InfoItemsCollector getStreamInfoItemList() { - List siiList = new Vector<>(); + List siiList = new ArrayList<>(); for (InfoItem ii : super.getItems()) { if (ii instanceof StreamInfoItem) { siiList.add((StreamInfoItem) ii); From 8fbd1a2bcf572f056d9ef13f2ee8433e8df12236 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 14 Mar 2021 01:06:26 +0100 Subject: [PATCH 09/10] FIx potential NullPointerException --- .../media_ccc/extractors/MediaCCCLiveStreamExtractor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java index f38eb0fd..b7123abc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java @@ -252,7 +252,7 @@ public class MediaCCCLiveStreamExtractor extends StreamExtractor { @Nonnull @Override public String getHost() { - return null; + return ""; } @Nonnull From 657b00ca113dd39d8638eb488e5eaaba301e65d9 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Tue, 30 Mar 2021 10:10:45 +0200 Subject: [PATCH 10/10] Smaller code improvements --- .../linkHandler/PeertubeSearchQueryHandlerFactory.java | 5 +---- .../newpipe/extractor/services/youtube/YoutubeService.java | 1 + .../org/schabi/newpipe/extractor/stream/StreamInfo.java | 7 ++++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java index a660a5bc..861ddcb6 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeSearchQueryHandlerFactory.java @@ -35,10 +35,7 @@ public class PeertubeSearchQueryHandlerFactory extends SearchQueryHandlerFactory @Override public String getUrl(String searchString, List contentFilters, String sortFilter, String baseUrl) throws ParsingException { try { - final String url = baseUrl + SEARCH_ENDPOINT - + "?search=" + URLEncoder.encode(searchString, UTF_8); - - return url; + return baseUrl + SEARCH_ENDPOINT + "?search=" + URLEncoder.encode(searchString, UTF_8); } catch (UnsupportedEncodingException e) { throw new ParsingException("Could not encode query", e); } 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 edd45953..07db99a3 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 @@ -221,6 +221,7 @@ public class YoutubeService extends StreamingService { return SUPPORTED_LANGUAGES; } + @Override public List getSupportedCountries() { return SUPPORTED_COUNTRIES; } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java index 7ff8ad9e..cadd69cc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java @@ -10,6 +10,7 @@ import org.schabi.newpipe.extractor.utils.ExtractorHelper; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Locale; @@ -153,11 +154,11 @@ public class StreamInfo extends Info { // Lists can be null if a exception was thrown during extraction if (streamInfo.getVideoStreams() == null) - streamInfo.setVideoStreams(new ArrayList()); + streamInfo.setVideoStreams(Collections.emptyList()); if (streamInfo.getVideoOnlyStreams() == null) - streamInfo.setVideoOnlyStreams(new ArrayList()); + streamInfo.setVideoOnlyStreams(Collections.emptyList()); if (streamInfo.getAudioStreams() == null) - streamInfo.setAudioStreams(new ArrayList()); + streamInfo.setAudioStreams(Collections.emptyList()); Exception dashMpdError = null; if (!isNullOrEmpty(streamInfo.getDashMpdUrl())) {