From 91c0ec7ceabf643f67234c23d4a70b76f9e6ed82 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Sun, 22 Dec 2019 01:14:35 +0100 Subject: [PATCH] Bandcamp stream extractor: catch NullPointerException --- .../bandcamp/extractors/BandcampStreamExtractor.java | 6 +++++- .../services/bandcamp/BandcampStreamExtractorTest.java | 5 +++++ .../bandcamp/BandcampStreamLinkHandlerFactoryTest.java | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java index a8fa30004..be4c03729 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java @@ -109,7 +109,11 @@ public class BandcampStreamExtractor extends StreamExtractor { @Nonnull @Override public String getUploaderAvatarUrl() { - return document.getElementsByClass("band-photo").first().attr("src"); + try { + return document.getElementsByClass("band-photo").first().attr("src"); + } catch (NullPointerException e) { + return ""; + } } @Nonnull diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamExtractorTest.java index 49b7c6f15..2f7a03bff 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamExtractorTest.java @@ -61,6 +61,11 @@ public class BandcampStreamExtractorTest { assertTrue(url.contains("://f4.bcbits.com/img/") && url.endsWith(".jpg")); } + @Test + public void testNoArtistProfilePicture() throws ExtractionException { + assertEquals("", bandcamp.getStreamExtractor("https://powertothequeerkids.bandcamp.com/track/human-nature").getUploaderAvatarUrl()); + } + @Test public void testAudioStream() { assertTrue(extractor.getAudioStreams().get(0).getUrl().contains("bcbits.com/stream")); diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java index 0eb760776..ba4c26727 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampStreamLinkHandlerFactoryTest.java @@ -38,6 +38,7 @@ public class BandcampStreamLinkHandlerFactoryTest { assertFalse(linkHandler.acceptUrl("http://zachbenson.bandcamp.com")); assertFalse(linkHandler.acceptUrl("https://bandcamp.com")); assertFalse(linkHandler.acceptUrl("https://zachbenson.bandcamp.com/")); + assertFalse(linkHandler.acceptUrl("https://powertothequeerkids.bandcamp.com/album/power-to-the-queer-kids")); // Tests expecting true assertTrue(linkHandler.acceptUrl("https://zachbenson.bandcamp.com/track/kitchen"));