1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-04-17 20:31:23 +00:00

made stream type part of abstractVideoinfo

This commit is contained in:
Christian Schabesberger
2016-03-11 16:20:02 +01:00
parent 4058ec2ee9
commit b84eb3df7f
12 changed files with 99 additions and 23 deletions

View File

@@ -6,6 +6,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import org.schabi.newpipe.extractor.AbstractVideoInfo;
import org.schabi.newpipe.extractor.StreamPreviewInfo;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
@@ -76,7 +77,11 @@ public class VideoInfoItemViewCreator {
if(info.duration > 0) {
holder.itemDurationView.setText(getDurationString(info.duration));
} else {
holder.itemDurationView.setVisibility(View.GONE);
if(info.stream_type == AbstractVideoInfo.StreamType.LIVE_STREAM) {
holder.itemDurationView.setText(R.string.duration_live);
} else {
holder.itemDurationView.setVisibility(View.GONE);
}
}
if(info.view_count >= 0) {
holder.itemViewCountView.setText(shortViewCount(info.view_count));
@@ -84,7 +89,7 @@ public class VideoInfoItemViewCreator {
holder.itemViewCountView.setVisibility(View.GONE);
}
if(!info.upload_date.isEmpty()) {
holder.itemUploadDateView.setText(info.upload_date+"");
holder.itemUploadDateView.setText(info.upload_date + "");
}
holder.itemThumbnailView.setImageResource(R.drawable.dummy_thumbnail);

View File

@@ -22,6 +22,16 @@ import android.graphics.Bitmap;
/**Common properties between StreamInfo and StreamPreviewInfo.*/
public abstract class AbstractVideoInfo {
public static enum StreamType {
NONE, // placeholder to check if stream type was checked or not
VIDEO_STREAM,
AUDIO_STREAM,
LIVE_STREAM,
AUDIO_LIVE_STREAM,
FILE
}
public StreamType stream_type;
public int service_id = -1;
public String id = "";
public String title = "";

View File

@@ -242,16 +242,6 @@ public class StreamInfo extends AbstractVideoInfo {
return streamInfo;
}
public static enum StreamType {
NONE, // placeholder to check if stream type was checked or not
VIDEO_STREAM,
AUDIO_STREAM,
LIVE_STREAM,
AUDIO_LIVE_STREAM,
FILE
}
public StreamType stream_type;
public String uploader_thumbnail_url = "";
public String description = "";

View File

@@ -56,6 +56,7 @@ public class StreamPreviewInfoCollector {
resultItem.id = (new YoutubeStreamUrlIdHandler()).getVideoId(resultItem.webpage_url);
}
resultItem.title = extractor.getTitle();
resultItem.stream_type = extractor.getStreamType();
// optional iformation
try {

View File

@@ -21,6 +21,7 @@ package org.schabi.newpipe.extractor;
*/
public interface StreamPreviewInfoExtractor {
AbstractVideoInfo.StreamType getStreamType() throws ParsingException;
String getWebPageUrl() throws ParsingException;
String getTitle() throws ParsingException;
int getDuration() throws ParsingException;

View File

@@ -3,6 +3,7 @@ package org.schabi.newpipe.extractor.services.youtube;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.schabi.newpipe.extractor.AbstractVideoInfo;
import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.Parser;
@@ -303,6 +304,15 @@ public class YoutubeSearchEngine extends SearchEngine {
}
}
@Override
public AbstractVideoInfo.StreamType getStreamType() {
if(isLiveStream(item)) {
return AbstractVideoInfo.StreamType.LIVE_STREAM;
} else {
return AbstractVideoInfo.StreamType.VIDEO_STREAM;
}
}
private boolean isLiveStream(Element item) {
Element bla = item.select("span[class*=\"yt-badge-live\"]").first();