From 818745b7e4173147227fa7f49789cd9d6c76c198 Mon Sep 17 00:00:00 2001 From: Zsombor Gegesy Date: Sat, 16 Apr 2022 23:49:08 +0200 Subject: [PATCH 1/2] Make it really old Android compatible --- .../extractor/services/youtube/YoutubeParsingHelper.java | 8 ++++---- .../YoutubeDashManifestCreatorsUtils.java | 4 ++-- .../youtube/extractors/YoutubeCommentsExtractor.java | 9 +++++---- .../youtube/extractors/YoutubeMixPlaylistExtractor.java | 6 +++--- .../youtube/extractors/YoutubePlaylistExtractor.java | 6 +++--- .../youtube/extractors/YoutubeStreamExtractor.java | 8 ++++---- .../java/org/schabi/newpipe/extractor/utils/Utils.java | 6 +++--- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java index 81e9fdc605..44629b3bf8 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java @@ -25,6 +25,7 @@ import static org.schabi.newpipe.extractor.utils.Utils.HTTPS; import static org.schabi.newpipe.extractor.utils.Utils.getStringResultFromRegexArray; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonBuilder; @@ -53,7 +54,6 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.security.SecureRandom; import java.time.LocalDate; import java.time.OffsetDateTime; @@ -553,7 +553,7 @@ public static boolean areHardcodedClientVersionAndKeyValid() .end() .value("fetchLiveState", true) .end() - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final var headers = getClientHeaders("1", HARDCODED_CLIENT_VERSION); @@ -794,7 +794,7 @@ public static boolean isHardcodedYoutubeMusicKeyValid() throws IOException, .end() .end() .value("input", "") - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final var headers = new HashMap<>(getOriginReferrerHeaders(YOUTUBE_MUSIC_URL)); @@ -1376,7 +1376,7 @@ public static byte[] createDesktopPlayerBody( .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java index d7a385ac4a..070d2c9ef1 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java @@ -8,6 +8,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isTvHtml5SimplyEmbeddedPlayerStreamingUrl; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isWebStreamingUrl; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.NewPipe; @@ -24,7 +25,6 @@ import java.io.IOException; import java.io.StringWriter; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Locale; import java.util.Map; @@ -585,7 +585,7 @@ public static Response getInitializationResponse(@Nonnull String baseStreamingUr final var headers = Map.of("User-Agent", List.of(isAndroidStreamingUrl ? getAndroidUserAgent(null) : getIosUserAgent(null))); - final byte[] emptyBody = "".getBytes(StandardCharsets.UTF_8); + final byte[] emptyBody = "".getBytes(UTF_8); return downloader.post(baseStreamingUrl, headers, emptyBody); } catch (final IOException | ExtractionException e) { throw new CreationException("Could not get the " diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java index 385ee6eb8b..ac4401c74c 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java @@ -3,6 +3,7 @@ import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonWriter; + import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.comments.CommentsExtractor; @@ -19,13 +20,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonPostResponse; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextFromObject; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; public class YoutubeCommentsExtractor extends CommentsExtractor { @@ -176,7 +177,7 @@ public InfoItemsPage getPage(final Page page) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("continuation", page.getId()) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on final JsonObject jsonObject = getJsonPostResponse("next", body, localization); @@ -257,7 +258,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("videoId", getId()) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on final String initialToken = @@ -272,7 +273,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("continuation", initialToken) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on ajaxJson = getJsonPostResponse("next", ajaxBody, localization); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java index fb574e294d..2ead8e37b9 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java @@ -11,6 +11,7 @@ import static org.schabi.newpipe.extractor.utils.Utils.getQueryValue; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; import static org.schabi.newpipe.extractor.utils.Utils.stringToURL; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonBuilder; @@ -37,7 +38,6 @@ import java.io.IOException; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,7 +86,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) jsonBody.value("playlistIndex", Integer.parseInt(playlistIndexString)); } - final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(StandardCharsets.UTF_8); + final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(UTF_8); // Cookie is required due to consent final var headers = getYouTubeHeaders(); @@ -205,7 +205,7 @@ private Page getNextPageFrom(@Nonnull final JsonObject playlistJson, .value("playlistIndex", index) .value("params", params) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); return new Page(YOUTUBEI_V1_URL + "next?key=" + getKey(), null, null, cookies, body); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java index 38f1dabbb0..2325e08a95 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java @@ -10,6 +10,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getUrlFromNavigationEndpoint; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; @@ -31,7 +32,6 @@ import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -65,7 +65,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) throws IOException .value("browseId", "VL" + getId()) .value("params", "wgYCCAA%3D") // Show unavailable videos .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); browseResponse = getJsonPostResponse("browse", body, localization); YoutubeParsingHelper.defaultAlertsCheck(browseResponse); @@ -375,7 +375,7 @@ private Page getNextPageFrom(final JsonArray contents) getExtractorLocalization(), getExtractorContentCountry()) .value("continuation", continuation) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); return new Page(YOUTUBEI_V1_URL + "browse?key=" + getKey() + DISABLE_PRETTY_PRINT_PARAMETER, body); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java index 150acf87bf..4f8749e534 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java @@ -39,6 +39,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareIosMobileJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; @@ -87,7 +88,6 @@ import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; @@ -887,7 +887,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); nextResponse = getJsonPostResponse(NEXT, body, localization); // streamType can only have LIVE_STREAM, POST_LIVE_STREAM and VIDEO_STREAM values (see @@ -996,7 +996,7 @@ private void fetchAndroidMobileJsonPlayer(@Nonnull final ContentCountry contentC // 10.29.2022 .value("params", "8AEB") .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject androidPlayerResponse = getJsonAndroidPostResponse(PLAYER, mobileBody, localization, "&t=" + generateTParameter() @@ -1031,7 +1031,7 @@ private void fetchIosMobileJsonPlayer(@Nonnull final ContentCountry contentCount .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject iosPlayerResponse = getJsonIosPostResponse(PLAYER, mobileBody, localization, "&t=" + generateTParameter() diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java index dd990c0ead..18a613258b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java @@ -7,7 +7,6 @@ import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collection; import java.util.Map; @@ -23,6 +22,7 @@ public final class Utils { public static final String HTTPS = "https://"; private static final Pattern M_PATTERN = Pattern.compile("(https?)?://m\\."); private static final Pattern WWW_PATTERN = Pattern.compile("(https?)?://www\\."); + public static final String UTF_8 = "UTF-8"; private Utils() { // no instance @@ -37,7 +37,7 @@ private Utils() { */ public static String encodeUrlUtf8(final String string) throws UnsupportedEncodingException { // TODO: Switch to URLEncoder.encode(String, Charset) in Java 10. - return URLEncoder.encode(string, StandardCharsets.UTF_8.name()); + return URLEncoder.encode(string, UTF_8); } /** @@ -48,7 +48,7 @@ public static String encodeUrlUtf8(final String string) throws UnsupportedEncodi */ public static String decodeUrlUtf8(final String url) throws UnsupportedEncodingException { // TODO: Switch to URLDecoder.decode(String, Charset) in Java 10. - return URLDecoder.decode(url, StandardCharsets.UTF_8.name()); + return URLDecoder.decode(url, UTF_8); } /** From 412b35ddbe258f264f10902a9ed74a9a4dedff0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 12:01:43 +0000 Subject: [PATCH 2/2] Bump com.puppycrawl.tools:checkstyle from 10.4 to 10.8.1 Bumps [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) from 10.4 to 10.8.1. - [Release notes](https://github.com/checkstyle/checkstyle/releases) - [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-10.4...checkstyle-10.8.1) --- updated-dependencies: - dependency-name: com.puppycrawl.tools:checkstyle dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7472c40dbe..3afc2bc929 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ allprojects { nanojsonVersion = "1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751" spotbugsVersion = "4.7.3" junitVersion = "5.9.2" - checkstyleVersion = "10.4" + checkstyleVersion = "10.8.1" } }