Skip to content

Commit 3a94839

Browse files
Stypoxlitetex
authored andcommitted
[Bandcamp] Fix checkstyle issues
1 parent 08dff33 commit 3a94839

25 files changed

Lines changed: 252 additions & 169 deletions

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/BandcampService.java

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,48 @@
22

33
package org.schabi.newpipe.extractor.services.bandcamp;
44

5+
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO;
6+
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.COMMENTS;
7+
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper.BASE_URL;
8+
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.FEATURED_API_URL;
9+
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.KIOSK_FEATURED;
10+
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.KIOSK_RADIO;
11+
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.RADIO_API_URL;
12+
513
import org.schabi.newpipe.extractor.StreamingService;
614
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
715
import org.schabi.newpipe.extractor.comments.CommentsExtractor;
816
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
917
import org.schabi.newpipe.extractor.kiosk.KioskList;
10-
import org.schabi.newpipe.extractor.linkhandler.*;
18+
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
19+
import org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory;
20+
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
21+
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
22+
import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandler;
23+
import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandlerFactory;
1124
import org.schabi.newpipe.extractor.playlist.PlaylistExtractor;
1225
import org.schabi.newpipe.extractor.search.SearchExtractor;
13-
import org.schabi.newpipe.extractor.services.bandcamp.extractors.*;
14-
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.*;
26+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampChannelExtractor;
27+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampCommentsExtractor;
28+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper;
29+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor;
30+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampPlaylistExtractor;
31+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor;
32+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioStreamExtractor;
33+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampSearchExtractor;
34+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampStreamExtractor;
35+
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampSuggestionExtractor;
36+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampChannelLinkHandlerFactory;
37+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampCommentsLinkHandlerFactory;
38+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampFeaturedLinkHandlerFactory;
39+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampPlaylistLinkHandlerFactory;
40+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampSearchQueryHandlerFactory;
41+
import org.schabi.newpipe.extractor.services.bandcamp.linkHandler.BandcampStreamLinkHandlerFactory;
1542
import org.schabi.newpipe.extractor.stream.StreamExtractor;
1643
import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor;
1744
import org.schabi.newpipe.extractor.suggestion.SuggestionExtractor;
1845

1946
import java.util.Arrays;
20-
import java.util.Collections;
21-
22-
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO;
23-
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.COMMENTS;
24-
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper.BASE_URL;
25-
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.FEATURED_API_URL;
26-
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.KIOSK_FEATURED;
27-
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.KIOSK_RADIO;
28-
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.RADIO_API_URL;
2947

3048
public class BandcampService extends StreamingService {
3149

@@ -81,19 +99,28 @@ public SubscriptionExtractor getSubscriptionExtractor() {
8199
@Override
82100
public KioskList getKioskList() throws ExtractionException {
83101

84-
KioskList kioskList = new KioskList(this);
102+
final KioskList kioskList = new KioskList(this);
85103

86104
try {
87-
kioskList.addKioskEntry((streamingService, url, kioskId) ->
88-
new BandcampFeaturedExtractor(
89-
BandcampService.this,
90-
new BandcampFeaturedLinkHandlerFactory().fromUrl(FEATURED_API_URL), kioskId),
91-
new BandcampFeaturedLinkHandlerFactory(), KIOSK_FEATURED);
92-
93-
kioskList.addKioskEntry((streamingService, url, kioskId) ->
94-
new BandcampRadioExtractor(BandcampService.this,
95-
new BandcampFeaturedLinkHandlerFactory().fromUrl(RADIO_API_URL), kioskId),
96-
new BandcampFeaturedLinkHandlerFactory(), KIOSK_RADIO);
105+
kioskList.addKioskEntry(
106+
(streamingService, url, kioskId) -> new BandcampFeaturedExtractor(
107+
BandcampService.this,
108+
new BandcampFeaturedLinkHandlerFactory().fromUrl(FEATURED_API_URL),
109+
kioskId
110+
),
111+
new BandcampFeaturedLinkHandlerFactory(),
112+
KIOSK_FEATURED
113+
);
114+
115+
kioskList.addKioskEntry(
116+
(streamingService, url, kioskId) -> new BandcampRadioExtractor(
117+
BandcampService.this,
118+
new BandcampFeaturedLinkHandlerFactory().fromUrl(RADIO_API_URL),
119+
kioskId
120+
),
121+
new BandcampFeaturedLinkHandlerFactory(),
122+
KIOSK_RADIO
123+
);
97124

98125
kioskList.setDefaultKiosk(KIOSK_FEATURED);
99126

@@ -116,14 +143,14 @@ public PlaylistExtractor getPlaylistExtractor(final ListLinkHandler linkHandler)
116143

117144
@Override
118145
public StreamExtractor getStreamExtractor(final LinkHandler linkHandler) {
119-
if (BandcampExtractorHelper.isRadioUrl(linkHandler.getUrl()))
146+
if (BandcampExtractorHelper.isRadioUrl(linkHandler.getUrl())) {
120147
return new BandcampRadioStreamExtractor(this, linkHandler);
121-
else
122-
return new BandcampStreamExtractor(this, linkHandler);
148+
}
149+
return new BandcampStreamExtractor(this, linkHandler);
123150
}
124151

125152
@Override
126-
public CommentsExtractor getCommentsExtractor(ListLinkHandler linkHandler) {
153+
public CommentsExtractor getCommentsExtractor(final ListLinkHandler linkHandler) {
127154
return new BandcampCommentsExtractor(this, linkHandler);
128155
}
129156
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelExtractor.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import com.grack.nanojson.JsonArray;
66
import com.grack.nanojson.JsonObject;
7+
78
import org.jsoup.Jsoup;
89
import org.schabi.newpipe.extractor.Page;
910
import org.schabi.newpipe.extractor.StreamingService;
@@ -17,20 +18,24 @@
1718
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
1819
import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
1920

20-
import javax.annotation.Nonnull;
2121
import java.io.IOException;
2222

23+
import javax.annotation.Nonnull;
24+
2325
public class BandcampChannelExtractor extends ChannelExtractor {
2426

2527
private JsonObject channelInfo;
2628

27-
public BandcampChannelExtractor(final StreamingService service, final ListLinkHandler linkHandler) {
29+
public BandcampChannelExtractor(final StreamingService service,
30+
final ListLinkHandler linkHandler) {
2831
super(service, linkHandler);
2932
}
3033

3134
@Override
3235
public String getAvatarUrl() {
33-
if (channelInfo.getLong("bio_image_id") == 0) return "";
36+
if (channelInfo.getLong("bio_image_id") == 0) {
37+
return "";
38+
}
3439

3540
return BandcampExtractorHelper.getImageUrl(channelInfo.getLong("bio_image_id"), false);
3641
}
@@ -43,7 +48,8 @@ public String getBannerUrl() throws ParsingException {
4348
*/
4449
try {
4550
final String html = getDownloader()
46-
.get(channelInfo.getString("bandcamp_url").replace("http://", "https://"))
51+
.get(channelInfo.getString("bandcamp_url")
52+
.replace("http://", "https://"))
4753
.responseBody();
4854

4955
return Jsoup.parse(html)
@@ -110,7 +116,9 @@ public InfoItemsPage<StreamInfoItem> getInitialPage() throws ParsingException {
110116
// A discograph is as an item appears in a discography
111117
final JsonObject discograph = discography.getObject(i);
112118

113-
if (!discograph.getString("item_type").equals("track")) continue;
119+
if (!discograph.getString("item_type").equals("track")) {
120+
continue;
121+
}
114122

115123
collector.commit(new BandcampDiscographStreamInfoItemExtractor(discograph, getUrl()));
116124
}
@@ -119,12 +127,13 @@ public InfoItemsPage<StreamInfoItem> getInitialPage() throws ParsingException {
119127
}
120128

121129
@Override
122-
public InfoItemsPage<StreamInfoItem> getPage(Page page) {
130+
public InfoItemsPage<StreamInfoItem> getPage(final Page page) {
123131
return null;
124132
}
125133

126134
@Override
127-
public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException {
135+
public void onFetchPage(@Nonnull final Downloader downloader)
136+
throws IOException, ExtractionException {
128137
channelInfo = BandcampExtractorHelper.getArtistDetails(getId());
129138
}
130139

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelInfoItemExtractor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
public class BandcampChannelInfoItemExtractor implements ChannelInfoItemExtractor {
1010

11-
private final Element resultInfo, searchResult;
11+
private final Element resultInfo;
12+
private final Element searchResult;
1213

1314
public BandcampChannelInfoItemExtractor(final Element searchResult) {
1415
this.searchResult = searchResult;

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,36 @@ public class BandcampCommentsExtractor extends CommentsExtractor {
2121
private Document document;
2222

2323

24-
public BandcampCommentsExtractor(StreamingService service, ListLinkHandler linkHandler) {
24+
public BandcampCommentsExtractor(final StreamingService service,
25+
final ListLinkHandler linkHandler) {
2526
super(service, linkHandler);
2627
}
2728

2829
@Override
29-
public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException {
30-
String html = downloader.get(getLinkHandler().getUrl()).responseBody();
31-
document = Jsoup.parse(html);
30+
public void onFetchPage(@Nonnull final Downloader downloader)
31+
throws IOException, ExtractionException {
32+
document = Jsoup.parse(downloader.get(getLinkHandler().getUrl()).responseBody());
3233
}
3334

3435
@Nonnull
3536
@Override
36-
public InfoItemsPage<CommentsInfoItem> getInitialPage() throws IOException, ExtractionException {
37+
public InfoItemsPage<CommentsInfoItem> getInitialPage()
38+
throws IOException, ExtractionException {
3739

38-
CommentsInfoItemsCollector collector = new CommentsInfoItemsCollector(getServiceId());
40+
final CommentsInfoItemsCollector collector = new CommentsInfoItemsCollector(getServiceId());
3941

40-
Elements writings = document.getElementsByClass("writing");
42+
final Elements writings = document.getElementsByClass("writing");
4143

42-
for (Element writing : writings) {
44+
for (final Element writing : writings) {
4345
collector.commit(new BandcampCommentsInfoItemExtractor(writing, getUrl()));
4446
}
4547

4648
return new InfoItemsPage<>(collector, null);
4749
}
4850

4951
@Override
50-
public InfoItemsPage<CommentsInfoItem> getPage(Page page) throws IOException, ExtractionException {
52+
public InfoItemsPage<CommentsInfoItem> getPage(final Page page)
53+
throws IOException, ExtractionException {
5154
return null;
5255
}
5356
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsInfoItemExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class BandcampCommentsInfoItemExtractor implements CommentsInfoItemExtrac
99
private final Element writing;
1010
private final String url;
1111

12-
public BandcampCommentsInfoItemExtractor(Element writing, String url) {
12+
public BandcampCommentsInfoItemExtractor(final Element writing, final String url) {
1313
this.writing = writing;
1414
this.url = url;
1515
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampExtractorHelper.java

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.grack.nanojson.JsonParser;
77
import com.grack.nanojson.JsonParserException;
88
import com.grack.nanojson.JsonWriter;
9+
910
import org.jsoup.Jsoup;
1011
import org.schabi.newpipe.extractor.NewPipe;
1112
import org.schabi.newpipe.extractor.exceptions.ParsingException;
@@ -18,18 +19,21 @@
1819
import java.time.format.DateTimeFormatter;
1920
import java.util.Locale;
2021

21-
public class BandcampExtractorHelper {
22+
public final class BandcampExtractorHelper {
2223

2324
public static final String BASE_URL = "https://bandcamp.com";
2425
public static final String BASE_API_URL = BASE_URL + "/api";
2526

27+
private BandcampExtractorHelper() {
28+
}
29+
2630
/**
2731
* Translate all these parameters together to the URL of the corresponding album or track
2832
* using the mobile API
2933
*/
30-
public static String getStreamUrlFromIds(final long bandId, final long itemId, final String itemType)
31-
throws ParsingException {
32-
34+
public static String getStreamUrlFromIds(final long bandId,
35+
final long itemId,
36+
final String itemType) throws ParsingException {
3337
try {
3438
final String jsonString = NewPipe.getDownloader().get(
3539
BASE_API_URL + "/mobile/22/tralbum_details?band_id=" + bandId
@@ -50,7 +54,7 @@ public static String getStreamUrlFromIds(final long bandId, final long itemId, f
5054
* <a href=https://notabug.org/fynngodau/bandcampDirect/wiki/rewindBandcamp+%E2%80%93+Fetching+artist+details>
5155
* More technical info.</a>
5256
*/
53-
public static JsonObject getArtistDetails(String id) throws ParsingException {
57+
public static JsonObject getArtistDetails(final String id) throws ParsingException {
5458
try {
5559
return
5660
JsonParser.object().from(
@@ -91,24 +95,24 @@ public static String getImageUrl(final long id, final boolean album) {
9195
public static boolean isSupportedDomain(final String url) throws ParsingException {
9296

9397
// Accept all bandcamp.com URLs
94-
if (url.toLowerCase().matches("https?://.+\\.bandcamp\\.com(/.*)?")) return true;
98+
if (url.toLowerCase().matches("https?://.+\\.bandcamp\\.com(/.*)?")) {
99+
return true;
100+
}
95101

96102
try {
97103
// Test other URLs for whether they contain a footer that links to bandcamp
98-
return Jsoup.parse(
99-
NewPipe.getDownloader().get(url).responseBody()
100-
)
104+
return Jsoup.parse(NewPipe.getDownloader().get(url).responseBody())
101105
.getElementById("pgFt")
102106
.getElementById("pgFt-inner")
103107
.getElementById("footer-logo-wrapper")
104108
.getElementById("footer-logo")
105109
.getElementsByClass("hiddenAccess")
106110
.text().equals("Bandcamp");
107-
} catch (NullPointerException e) {
111+
} catch (final NullPointerException e) {
108112
return false;
109-
} catch (IOException | ReCaptchaException e) {
110-
throw new ParsingException("Could not determine whether URL is custom domain " +
111-
"(not available? network error?)");
113+
} catch (final IOException | ReCaptchaException e) {
114+
throw new ParsingException("Could not determine whether URL is custom domain "
115+
+ "(not available? network error?)");
112116
}
113117
}
114118

@@ -121,10 +125,10 @@ public static boolean isRadioUrl(final String url) {
121125
return url.toLowerCase().matches("https?://bandcamp\\.com/\\?show=\\d+");
122126
}
123127

124-
static DateWrapper parseDate(final String textDate) throws ParsingException {
128+
public static DateWrapper parseDate(final String textDate) throws ParsingException {
125129
try {
126-
final ZonedDateTime zonedDateTime = ZonedDateTime.parse(
127-
textDate, DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH));
130+
final ZonedDateTime zonedDateTime = ZonedDateTime.parse(textDate,
131+
DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH));
128132
return new DateWrapper(zonedDateTime.toOffsetDateTime(), false);
129133
} catch (final DateTimeException e) {
130134
throw new ParsingException("Could not parse date '" + textDate + "'", e);

0 commit comments

Comments
 (0)