2020-12-27 13:25:48 +01:00
|
|
|
package org.schabi.newpipe.extractor.services.media_ccc.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;
|
|
|
|
|
|
|
|
public class MediaCCCLiveStreamKioskExtractor implements StreamInfoItemExtractor {
|
|
|
|
|
|
|
|
private final JsonObject conferenceInfo;
|
|
|
|
private final String group;
|
|
|
|
private final JsonObject roomInfo;
|
|
|
|
|
|
|
|
public MediaCCCLiveStreamKioskExtractor(final JsonObject conferenceInfo, final String group,
|
|
|
|
final JsonObject roomInfo) {
|
|
|
|
this.conferenceInfo = conferenceInfo;
|
|
|
|
this.group = group;
|
|
|
|
this.roomInfo = roomInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getName() throws ParsingException {
|
2020-12-27 15:52:09 +01:00
|
|
|
return roomInfo.getObject("talks").getObject("current").getString("title");
|
2020-12-27 13:25:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getUrl() throws ParsingException {
|
|
|
|
return roomInfo.getString("link");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getThumbnailUrl() throws ParsingException {
|
|
|
|
return roomInfo.getString("thumb");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public StreamType getStreamType() throws ParsingException {
|
|
|
|
boolean isVideo = false;
|
|
|
|
for (Object stream : roomInfo.getArray("streams")) {
|
|
|
|
if ("video".equals(((JsonObject) stream).getString("type"))) {
|
|
|
|
isVideo = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return isVideo ? StreamType.LIVE_STREAM : StreamType.AUDIO_LIVE_STREAM;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isAd() throws ParsingException {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public long getDuration() throws ParsingException {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public long getViewCount() throws ParsingException {
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getUploaderName() throws ParsingException {
|
2020-12-27 15:52:09 +01:00
|
|
|
return conferenceInfo.getString("conference") + " - " + group + " - " + roomInfo.getString("display");
|
2020-12-27 13:25:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getUploaderUrl() throws ParsingException {
|
|
|
|
return "https://media.ccc.de/c/" + conferenceInfo.getString("slug");
|
|
|
|
}
|
|
|
|
|
2021-09-01 20:40:00 +02:00
|
|
|
@Nullable
|
|
|
|
@Override
|
2021-09-02 12:42:37 +02:00
|
|
|
public String getUploaderAvatarUrl() {
|
2021-09-01 20:40:00 +02:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2021-01-22 01:44:58 +01:00
|
|
|
@Override
|
|
|
|
public boolean isUploaderVerified() throws ParsingException {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2020-12-27 13:25:48 +01:00
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
public String getTextualUploadDate() throws ParsingException {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
public DateWrapper getUploadDate() throws ParsingException {
|
|
|
|
return null;
|
|
|
|
}
|
2021-09-22 17:19:44 +02:00
|
|
|
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
public String getShortDescription() {
|
|
|
|
return null;
|
|
|
|
}
|
2020-12-27 13:25:48 +01:00
|
|
|
}
|