From 96de834b676e26d0813ff4816f88fbbce78e5f49 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Thu, 4 Jun 2020 19:36:58 +0200 Subject: [PATCH] Bandcamp: parse date from radio info item --- .../extractors/BandcampExtractorHelper.java | 17 +++++++++++++++-- .../BandcampRadioInfoItemExtractor.java | 6 +++--- .../extractors/BandcampStreamExtractor.java | 9 +-------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampExtractorHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampExtractorHelper.java index 37c4ff96..707eaf06 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampExtractorHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampExtractorHelper.java @@ -9,11 +9,13 @@ import com.grack.nanojson.JsonWriter; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; +import org.schabi.newpipe.extractor.localization.DateWrapper; import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; public class BandcampExtractorHelper { @@ -142,4 +144,15 @@ public class BandcampExtractorHelper { public static String getImageUrl(long id, boolean album) { return "https://f4.bcbits.com/img/" + (album ? 'a' : "") + id + "_10.jpg"; } + + static DateWrapper parseDate(String textDate) throws ParsingException { + try { + Date date = new SimpleDateFormat("dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH).parse(textDate); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + return new DateWrapper(calendar, false); + } catch (ParseException e) { + throw new ParsingException("Could not extract date", e); + } + } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioInfoItemExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioInfoItemExtractor.java index ebc84319..3e6dadf0 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioInfoItemExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioInfoItemExtractor.java @@ -33,13 +33,13 @@ public class BandcampRadioInfoItemExtractor implements StreamInfoItemExtractor { @Nullable @Override public String getTextualUploadDate() { - return show.getString("date").replace(" 00:00:00 GMT", ""); + return show.getString("date"); } @Nullable @Override - public DateWrapper getUploadDate() { - return null; + public DateWrapper getUploadDate() throws ParsingException { + return BandcampExtractorHelper.parseDate(getTextualUploadDate()); } @Override 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 11bbc2ec..28225927 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 @@ -106,14 +106,7 @@ public class BandcampStreamExtractor extends StreamExtractor { @Nullable @Override 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) { - throw new ParsingException("Could not extract date", e); - } + return BandcampExtractorHelper.parseDate(getTextualUploadDate()); } @Nonnull