diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java index 3780671ac..8a69931c0 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java @@ -77,7 +77,7 @@ public class BandcampRadioStreamExtractor extends BandcampStreamExtractor { @Nullable @Override public String getTextualUploadDate() { - return showInfo.getString("published_date").replace(" 00:00:00 GMT", ""); + return showInfo.getString("published_date"); } @Nonnull 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 b33670ecc..1e69fa9f1 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 @@ -20,7 +20,11 @@ import org.schabi.newpipe.extractor.stream.*; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.Locale; @@ -96,13 +100,21 @@ public class BandcampStreamExtractor extends StreamExtractor { @Nullable @Override public String getTextualUploadDate() { - return current.getString("publish_date").replaceAll(" \\d+:\\d+:\\d+ .+", ""); + return current.getString("publish_date"); } @Nullable @Override - public DateWrapper getUploadDate() { - return null; + public DateWrapper getUploadDate() throws ParsingException { + try { + Date date = new SimpleDateFormat("dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH).parse(getTextualUploadDate()); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + return new DateWrapper(calendar, false); + } catch (ParseException e) { + e.printStackTrace(); + throw new ParsingException("Could not extract date", e); + } } @Nonnull diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampRadioStreamExtractorTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampRadioStreamExtractorTest.java index 2da8ec913..7dd371c28 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampRadioStreamExtractorTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampRadioStreamExtractorTest.java @@ -12,6 +12,7 @@ import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampStreamE import org.schabi.newpipe.extractor.stream.StreamExtractor; import java.io.IOException; +import java.util.Calendar; import static org.junit.Assert.*; import static org.schabi.newpipe.extractor.ServiceList.Bandcamp; @@ -57,7 +58,11 @@ public class BandcampRadioStreamExtractorTest { @Test public void testGetTextualUploadDate() throws ParsingException { assertEquals("16 May 2017", e.getTextualUploadDate()); + } + @Test + public void testUploadDate() throws ParsingException { + assertEquals(136, e.getUploadDate().date().get(Calendar.DAY_OF_YEAR)); } @Test 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 c280bcb77..7c8d4c863 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 @@ -13,6 +13,7 @@ import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampStreamE import org.schabi.newpipe.extractor.stream.StreamExtractor; import java.io.IOException; +import java.util.Calendar; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -61,8 +62,8 @@ public class BandcampStreamExtractorTest { } @Test - public void testUploadDate() { - assertEquals("27 Sep 2019", extractor.getTextualUploadDate()); + public void testUploadDate() throws ParsingException { + assertEquals(270, extractor.getUploadDate().date().get(Calendar.DAY_OF_YEAR)); } @Test