From b6790bbe6b7bc68ad6ebae0ad29ebe22ebcad62f Mon Sep 17 00:00:00 2001 From: Kunal Sareen Date: Fri, 18 Jan 2019 21:47:34 +1100 Subject: [PATCH 1/3] Updating regex --- .../services/youtube/extractors/YoutubeStreamExtractor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 e5208d5ad..4801fa461 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 @@ -568,9 +568,9 @@ public class YoutubeStreamExtractor extends StreamExtractor { private final static String DECYRYPTION_SIGNATURE_FUNCTION_REGEX = "(\\w+)\\s*=\\s*function\\((\\w+)\\)\\{\\s*\\2=\\s*\\2\\.split\\(\"\"\\)\\s*;"; private final static String DECRYPTION_AKAMAIZED_STRING_REGEX = - "yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\("; + "yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*(:encodeURIComponent\\s*\\()([a-zA-Z0-9$]+)\\("; private final static String DECRYPTION_AKAMAIZED_SHORT_STRING_REGEX = - "\\bc\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\("; + "\\bc\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*(:encodeURIComponent\\s*\\()([a-zA-Z0-9$]+)\\("; private volatile String decryptionCode = ""; From 09bafe0660bb6c1510e22b2ed8f6449c091b280d Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Fri, 18 Jan 2019 12:24:30 +0100 Subject: [PATCH 2/3] fix failing viewcount test --- .../services/youtube/YoutubeStreamExtractorDefaultTest.java | 3 +++ .../services/youtube/search/YoutubeSearchCountTest.java | 5 ++++- .../youtube/search/YoutubeSearchExtractorDefaultTest.java | 4 +++- gradle/wrapper/gradle-wrapper.properties | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java index 27b54c54c..24e8b7fae 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java @@ -43,6 +43,9 @@ import static org.schabi.newpipe.extractor.ServiceList.YouTube; */ public class YoutubeStreamExtractorDefaultTest { + /** + * Test for {@link StreamExtractor} + */ public static class AdeleHello { private static YoutubeStreamExtractor extractor; diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchCountTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchCountTest.java index 92349c85e..35b138e42 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchCountTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchCountTest.java @@ -13,6 +13,9 @@ import static java.util.Collections.singletonList; import static junit.framework.TestCase.assertTrue; import static org.schabi.newpipe.extractor.ServiceList.YouTube; +/** + * Test for {@link YoutubeSearchExtractor} + */ public class YoutubeSearchCountTest { public static class YoutubeChannelViewCountTest extends YoutubeSearchExtractorBaseTest { @BeforeClass @@ -28,7 +31,7 @@ public class YoutubeSearchCountTest { public void testViewCount() { ChannelInfoItem ci = (ChannelInfoItem) itemsPage.getItems().get(0); assertTrue("Count does not fit: " + Long.toString(ci.getSubscriberCount()), - 69043316 < ci.getSubscriberCount() && ci.getSubscriberCount() < 73043316); + 69043316 < ci.getSubscriberCount() && ci.getSubscriberCount() < 103043316); } } } diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchExtractorDefaultTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchExtractorDefaultTest.java index 3e7d33114..63cd349a1 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchExtractorDefaultTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/search/YoutubeSearchExtractorDefaultTest.java @@ -62,7 +62,9 @@ public class YoutubeSearchExtractorDefaultTest extends YoutubeSearchExtractorBas @Test public void testResultList_FirstElement() { - InfoItem firstInfoItem = itemsPage.getItems().get(1); + InfoItem firstInfoItem = itemsPage.getItems().get(0); + if(! (firstInfoItem instanceof ChannelInfoItem)) + firstInfoItem = itemsPage.getItems().get(1); // The channel should be the first item assertTrue(firstInfoItem instanceof ChannelInfoItem); diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 74bb77845..ade732376 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Fri Jan 18 11:51:40 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip From 99915e4527c0a7ea264f952c182871b73f7bbbe8 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Fri, 18 Jan 2019 12:44:34 +0100 Subject: [PATCH 3/3] fix failing tests --- .../newpipe/extractor/stream/StreamInfo.java | 30 ++++----- .../YoutubeStreamExtractorDASHTest.java | 67 ------------------- 2 files changed, 15 insertions(+), 82 deletions(-) delete mode 100644 extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDASHTest.java 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 6b3afb970..8adf4dc58 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 @@ -254,8 +254,8 @@ public class StreamInfo extends Info { } private StreamType streamType; - private String thumbnailUrl; - private String uploadDate; + private String thumbnailUrl = ""; + private String uploadDate = ""; private long duration = -1; private int ageLimit = -1; private String description; @@ -264,26 +264,26 @@ public class StreamInfo extends Info { private long likeCount = -1; private long dislikeCount = -1; - private String uploaderName; - private String uploaderUrl; - private String uploaderAvatarUrl; + private String uploaderName = ""; + private String uploaderUrl = ""; + private String uploaderAvatarUrl = ""; - private List videoStreams; - private List audioStreams; - private List videoOnlyStreams; + private List videoStreams = new ArrayList<>(); + private List audioStreams = new ArrayList<>(); + private List videoOnlyStreams = new ArrayList<>(); - private String dashMpdUrl; - private List segmentedVideoStreams; - private List segmentedAudioStreams; - private List segmentedVideoOnlyStreams; + private String dashMpdUrl = ""; + private List segmentedVideoStreams = new ArrayList<>(); + private List segmentedAudioStreams = new ArrayList<>(); + private List segmentedVideoOnlyStreams = new ArrayList<>(); - private String hlsUrl; + private String hlsUrl = ""; private StreamInfoItem nextVideo; - private List relatedStreams; + private List relatedStreams = new ArrayList<>(); private long startPosition = 0; - private List subtitles; + private List subtitles = new ArrayList<>(); /** * Get the stream type diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDASHTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDASHTest.java deleted file mode 100644 index ceba6092d..000000000 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDASHTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.schabi.newpipe.extractor.services.youtube; - - -/* - * Created by Christian Schabesberger on 30.12.15. - * - * Copyright (C) Christian Schabesberger 2015 - * YoutubeVideoExtractorDefault.java is part of NewPipe. - * - * NewPipe is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * NewPipe is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with NewPipe. If not, see . - */ - -import org.junit.BeforeClass; -import org.junit.Test; -import org.schabi.newpipe.Downloader; -import org.schabi.newpipe.extractor.NewPipe; -import org.schabi.newpipe.extractor.stream.StreamExtractor; -import org.schabi.newpipe.extractor.stream.StreamInfo; -import org.schabi.newpipe.extractor.utils.Localization; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.schabi.newpipe.extractor.ServiceList.YouTube; - -/** - * Test for {@link StreamExtractor} - */ -public class YoutubeStreamExtractorDASHTest { - private static StreamInfo info; - - @BeforeClass - public static void setUp() throws Exception { - NewPipe.init(Downloader.getInstance(), new Localization("GB", "en")); - info = StreamInfo.getInfo(YouTube, "https://www.youtube.com/watch?v=00Q4SUnVQK4"); - } - - @Test - public void testGetDashMpd() { - assertTrue(info.getDashMpdUrl(), - info.getDashMpdUrl() != null && !info.getDashMpdUrl().isEmpty()); - } - - @Test - public void testRegularStreams() { - assertEquals(0, info.getAudioStreams().size()); - assertEquals(0, info.getVideoOnlyStreams().size()); - assertEquals(4, info.getVideoStreams().size()); - } - - @Test - public void testSegmentedStreams() { - assertEquals(2, info.getSegmentedAudioStreams().size()); - assertEquals(3, info.getSegmentedVideoOnlyStreams().size()); - assertEquals(0, info.getSegmentedVideoStreams().size()); - } -}