51 lines
2.0 KiB
Java
51 lines
2.0 KiB
Java
// Created by Fynn Godau 2019, licensed GNU GPL version 3 or later
|
|
|
|
package org.schabi.newpipe.extractor.services.bandcamp.linkHandler;
|
|
|
|
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
|
|
import org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper;
|
|
import org.schabi.newpipe.extractor.utils.Utils;
|
|
|
|
import java.util.List;
|
|
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.FEATURED_API_URL;
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampFeaturedExtractor.KIOSK_FEATURED;
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.KIOSK_RADIO;
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampRadioExtractor.RADIO_API_URL;
|
|
|
|
public class BandcampFeaturedLinkHandlerFactory extends ListLinkHandlerFactory {
|
|
|
|
@Override
|
|
public String getUrl(final String id,
|
|
final List<String> contentFilter,
|
|
final String sortFilter) {
|
|
if (id.equals(KIOSK_FEATURED)) {
|
|
return FEATURED_API_URL; // doesn't have a website
|
|
} else if (id.equals(KIOSK_RADIO)) {
|
|
return RADIO_API_URL; // doesn't have its own website
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String getId(final String url) {
|
|
final String fixedUrl = Utils.replaceHttpWithHttps(url);
|
|
if (BandcampExtractorHelper.isRadioUrl(fixedUrl) || fixedUrl.equals(RADIO_API_URL)) {
|
|
return KIOSK_RADIO;
|
|
} else if (fixedUrl.equals(FEATURED_API_URL)) {
|
|
return KIOSK_FEATURED;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean onAcceptUrl(final String url) {
|
|
final String fixedUrl = Utils.replaceHttpWithHttps(url);
|
|
return fixedUrl.equals(FEATURED_API_URL)
|
|
|| fixedUrl.equals(RADIO_API_URL)
|
|
|| BandcampExtractorHelper.isRadioUrl(fixedUrl);
|
|
}
|
|
}
|