97 lines
2.5 KiB
Java
97 lines
2.5 KiB
Java
// Created by Fynn Godau 2019, licensed GNU GPL version 3 or later
|
|
|
|
package org.schabi.newpipe.extractor.services.bandcamp.extractors;
|
|
|
|
import com.grack.nanojson.JsonObject;
|
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
|
import org.schabi.newpipe.extractor.localization.DateWrapper;
|
|
import org.schabi.newpipe.extractor.stream.StreamInfoItemExtractor;
|
|
import org.schabi.newpipe.extractor.stream.StreamType;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper.BASE_URL;
|
|
import static org.schabi.newpipe.extractor.services.bandcamp.extractors.BandcampExtractorHelper.getImageUrl;
|
|
|
|
public class BandcampRadioInfoItemExtractor implements StreamInfoItemExtractor {
|
|
|
|
private final JsonObject show;
|
|
|
|
public BandcampRadioInfoItemExtractor(final JsonObject radioShow) {
|
|
show = radioShow;
|
|
}
|
|
|
|
@Override
|
|
public long getDuration() {
|
|
/* Duration is only present in the more detailed information that has to be queried
|
|
separately. Therefore, over 300 queries would be needed every time the kiosk is opened if we
|
|
were to display the real value. */
|
|
//return query(show.getInt("id")).getLong("audio_duration");
|
|
return 0;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public String getTextualUploadDate() {
|
|
return show.getString("date");
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public DateWrapper getUploadDate() throws ParsingException {
|
|
return BandcampExtractorHelper.parseDate(getTextualUploadDate());
|
|
}
|
|
|
|
@Override
|
|
public String getName() throws ParsingException {
|
|
return show.getString("subtitle");
|
|
}
|
|
|
|
@Override
|
|
public String getUrl() {
|
|
return BASE_URL + "/?show=" + show.getInt("id");
|
|
}
|
|
|
|
@Override
|
|
public String getThumbnailUrl() {
|
|
return getImageUrl(show.getLong("image_id"), false);
|
|
}
|
|
|
|
@Override
|
|
public StreamType getStreamType() {
|
|
return StreamType.AUDIO_STREAM;
|
|
}
|
|
|
|
@Override
|
|
public long getViewCount() {
|
|
return -1;
|
|
}
|
|
|
|
@Override
|
|
public String getUploaderName() {
|
|
// JSON does not contain uploader name
|
|
return "";
|
|
}
|
|
|
|
@Override
|
|
public String getUploaderUrl() {
|
|
return "";
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public String getUploaderAvatarUrl() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public boolean isUploaderVerified() throws ParsingException {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isAd() {
|
|
return false;
|
|
}
|
|
}
|