1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-12-25 01:20:34 +00:00

clean up extractor

This commit is contained in:
Christian Schabesberger 2016-09-28 17:13:15 +02:00
parent 5eef116aaa
commit 01875b389d
42 changed files with 168 additions and 121 deletions

View File

@ -8,7 +8,7 @@ import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.ParsingException; import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.StreamExtractor; import org.schabi.newpipe.extractor.StreamExtractor;
import org.schabi.newpipe.extractor.VideoStream; import org.schabi.newpipe.extractor.stream_info.VideoStream;
import java.io.IOException; import java.io.IOException;

View File

@ -7,7 +7,7 @@ import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.ParsingException; import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.StreamExtractor; import org.schabi.newpipe.extractor.StreamExtractor;
import org.schabi.newpipe.extractor.VideoStream; import org.schabi.newpipe.extractor.stream_info.VideoStream;
import java.io.IOException; import java.io.IOException;

View File

@ -20,12 +20,12 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import org.schabi.newpipe.detail.VideoItemDetailActivity; import org.schabi.newpipe.detail.VideoItemDetailActivity;
import org.schabi.newpipe.detail.VideoItemDetailFragment; import org.schabi.newpipe.detail.VideoItemDetailFragment;
import org.schabi.newpipe.extractor.ChannelExtractor;
import org.schabi.newpipe.extractor.ChannelInfo;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.channel.ChannelInfo;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.info_list.InfoItemBuilder;
import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.info_list.InfoListAdapter;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
@ -192,7 +192,7 @@ public class ChannelActivity extends AppCompatActivity {
ChannelExtractor extractor = service.getChannelExtractorInstance( ChannelExtractor extractor = service.getChannelExtractorInstance(
channelUrl, pageNumber); channelUrl, pageNumber);
final ChannelInfo info = ChannelInfo.getInfo(extractor, new Downloader()); final ChannelInfo info = ChannelInfo.getInfo(extractor);
h.post(new Runnable() { h.post(new Runnable() {

View File

@ -14,7 +14,7 @@ import android.widget.ArrayAdapter;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.settings.SettingsActivity; import org.schabi.newpipe.settings.SettingsActivity;
import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.MediaFormat;
import org.schabi.newpipe.extractor.VideoStream; import org.schabi.newpipe.extractor.stream_info.VideoStream;
import java.util.List; import java.util.List;

View File

@ -6,19 +6,35 @@ import android.util.Log;
import android.view.View; import android.view.View;
import org.schabi.newpipe.Downloader; import org.schabi.newpipe.Downloader;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.StreamExtractor;
import org.schabi.newpipe.extractor.stream_info.StreamInfo;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.StreamExtractor;
import org.schabi.newpipe.extractor.StreamInfo;
import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor; import org.schabi.newpipe.extractor.services.youtube.YoutubeStreamExtractor;
import java.io.IOException; import java.io.IOException;
/** /**
* Created by the-scrabi on 02.08.16. * Created by Christian Schabesberger on 02.08.16.
*
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
* StreamInfoWorker.java is part of NewPipe.
*
* NewPipe is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* NewPipe is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/ */
public class StreamInfoWorker { public class StreamInfoWorker {
@ -61,7 +77,7 @@ public class StreamInfoWorker {
} }
try { try {
streamExtractor = service.getExtractorInstance(videoUrl); streamExtractor = service.getExtractorInstance(videoUrl);
streamInfo = StreamInfo.getVideoInfo(streamExtractor, new Downloader()); streamInfo = StreamInfo.getVideoInfo(streamExtractor);
final StreamInfo info = streamInfo; final StreamInfo info = streamInfo;
h.post(new Runnable() { h.post(new Runnable() {

View File

@ -43,18 +43,18 @@ import java.util.Vector;
import org.schabi.newpipe.ActivityCommunicator; import org.schabi.newpipe.ActivityCommunicator;
import org.schabi.newpipe.ChannelActivity; import org.schabi.newpipe.ChannelActivity;
import org.schabi.newpipe.extractor.StreamPreviewInfo; import org.schabi.newpipe.extractor.stream_info.StreamInfo;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfo;
import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.info_list.InfoItemBuilder;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.ImageErrorLoadingListener; import org.schabi.newpipe.ImageErrorLoadingListener;
import org.schabi.newpipe.Localization; import org.schabi.newpipe.Localization;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.download.DownloadDialog; import org.schabi.newpipe.download.DownloadDialog;
import org.schabi.newpipe.extractor.AudioStream; import org.schabi.newpipe.extractor.stream_info.AudioStream;
import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.MediaFormat;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.StreamInfo; import org.schabi.newpipe.extractor.stream_info.VideoStream;
import org.schabi.newpipe.extractor.VideoStream;
import org.schabi.newpipe.player.BackgroundPlayer; import org.schabi.newpipe.player.BackgroundPlayer;
import org.schabi.newpipe.player.PlayVideoActivity; import org.schabi.newpipe.player.PlayVideoActivity;
import org.schabi.newpipe.player.ExoPlayerActivity; import org.schabi.newpipe.player.ExoPlayerActivity;

View File

@ -1,8 +1,8 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor;
/** /**
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org> * Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
* AbstractVideoInfo.java is part of NewPipe. * AbstractStreamInfo.java is part of NewPipe.
* *
* NewPipe is free software: you can redistribute it and/or modify * NewPipe is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -19,7 +19,7 @@ package org.schabi.newpipe.extractor;
*/ */
/**Common properties between StreamInfo and StreamPreviewInfo.*/ /**Common properties between StreamInfo and StreamPreviewInfo.*/
public abstract class AbstractVideoInfo { public abstract class AbstractStreamInfo {
public static enum StreamType { public static enum StreamType {
NONE, // placeholder to check if stream type was checked or not NONE, // placeholder to check if stream type was checked or not
VIDEO_STREAM, VIDEO_STREAM,

View File

@ -2,6 +2,8 @@ package org.schabi.newpipe.extractor;
import android.util.Xml; import android.util.Xml;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.AudioStream;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
import java.io.IOException; import java.io.IOException;
@ -40,10 +42,10 @@ public class DashMpdParser {
} }
} }
public static List<AudioStream> getAudioStreams(String dashManifestUrl, public static List<AudioStream> getAudioStreams(String dashManifestUrl)
Downloader downloader)
throws DashMpdParsingException { throws DashMpdParsingException {
String dashDoc; String dashDoc;
Downloader downloader = NewPipe.getDownloader();
try { try {
dashDoc = downloader.download(dashManifestUrl); dashDoc = downloader.download(dashManifestUrl);
} catch(IOException ioe) { } catch(IOException ioe) {

View File

@ -1,5 +1,6 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.services.youtube.YoutubeService; import org.schabi.newpipe.extractor.services.youtube.YoutubeService;
/** /**

View File

@ -1,5 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,5 +1,11 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.search.SearchEngine;
import org.schabi.newpipe.extractor.search.SuggestionExtractor;
import org.schabi.newpipe.extractor.stream_info.StreamExtractor;
import java.io.IOException; import java.io.IOException;
/** /**

View File

@ -1,5 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
/** /**
* Created by Christian Schabesberger on 26.07.16. * Created by Christian Schabesberger on 26.07.16.
* *

View File

@ -1,4 +1,9 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.channel;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoCollector;
import java.io.IOException; import java.io.IOException;

View File

@ -1,4 +1,8 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.channel;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfo;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoCollector;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
@ -30,7 +34,7 @@ public class ChannelInfo {
errors.add(e); errors.add(e);
} }
public static ChannelInfo getInfo(ChannelExtractor extractor, Downloader dl) public static ChannelInfo getInfo(ChannelExtractor extractor)
throws ParsingException { throws ParsingException {
ChannelInfo info = new ChannelInfo(); ChannelInfo info = new ChannelInfo();

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.exceptions;
/** /**
* Created by Christian Schabesberger on 30.01.16. * Created by Christian Schabesberger on 30.01.16.

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.exceptions;
/** /**
* Created by Christian Schabesberger on 12.09.16. * Created by Christian Schabesberger on 12.09.16.

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.exceptions;
/** /**
* Created by Christian Schabesberger on 31.01.16. * Created by Christian Schabesberger on 31.01.16.

View File

@ -1,4 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.search;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.search;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfo;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.search;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoCollector;
/** /**
* Created by Christian Schabesberger on 11.05.16. * Created by Christian Schabesberger on 11.05.16.

View File

@ -1,4 +1,6 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.search;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;

View File

@ -7,16 +7,16 @@ import org.json.JSONObject;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document; import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.schabi.newpipe.extractor.AbstractVideoInfo; import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.ChannelExtractor;
import org.schabi.newpipe.extractor.Downloader; import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.Parser; import org.schabi.newpipe.extractor.Parser;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.StreamPreviewInfoCollector;
import org.schabi.newpipe.extractor.StreamPreviewInfoExtractor;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoCollector;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoExtractor;
import java.io.IOException; import java.io.IOException;
@ -163,8 +163,8 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
if (li.select("div[class=\"feed-item-dismissable\"]").first() != null) { if (li.select("div[class=\"feed-item-dismissable\"]").first() != null) {
collector.commit(new StreamPreviewInfoExtractor() { collector.commit(new StreamPreviewInfoExtractor() {
@Override @Override
public AbstractVideoInfo.StreamType getStreamType() throws ParsingException { public AbstractStreamInfo.StreamType getStreamType() throws ParsingException {
return AbstractVideoInfo.StreamType.VIDEO_STREAM; return AbstractStreamInfo.StreamType.VIDEO_STREAM;
} }
@Override @Override

View File

@ -1,8 +1,8 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.schabi.newpipe.extractor.Parser; import org.schabi.newpipe.extractor.Parser;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
/** /**
* Created by Christian Schabesberger on 25.07.16. * Created by Christian Schabesberger on 25.07.16.

View File

@ -1,6 +1,7 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
/** /**
* Created by Christian Schabesberger on 02.03.16. * Created by Christian Schabesberger on 02.03.16.

View File

@ -4,27 +4,16 @@ import org.jsoup.Jsoup;
import org.jsoup.nodes.Document; import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.schabi.newpipe.extractor.Downloader; import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.SearchEngine;
import org.schabi.newpipe.extractor.StreamPreviewInfoExtractor;
import org.schabi.newpipe.extractor.StreamPreviewInfoSearchCollector;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.w3c.dom.Node; import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.w3c.dom.NodeList; import org.schabi.newpipe.extractor.search.SearchEngine;
import org.xml.sax.InputSource; import org.schabi.newpipe.extractor.search.StreamPreviewInfoSearchCollector;
import org.xml.sax.SAXException; import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoExtractor;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
/** /**
* Created by Christian Schabesberger on 09.08.15. * Created by Christian Schabesberger on 09.08.15.

View File

@ -1,13 +1,12 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.schabi.newpipe.extractor.ChannelExtractor;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.StreamExtractor;
import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.SuggestionExtractor;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.SearchEngine; import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.search.SearchEngine;
import org.schabi.newpipe.extractor.search.SuggestionExtractor;
import org.schabi.newpipe.extractor.stream_info.StreamExtractor;
import java.io.IOException; import java.io.IOException;

View File

@ -8,20 +8,20 @@ import org.jsoup.nodes.Element;
import org.mozilla.javascript.Context; import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function; import org.mozilla.javascript.Function;
import org.mozilla.javascript.ScriptableObject; import org.mozilla.javascript.ScriptableObject;
import org.schabi.newpipe.extractor.AbstractVideoInfo; import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.AudioStream; import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.stream_info.AudioStream;
import org.schabi.newpipe.extractor.Downloader; import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.Parser; import org.schabi.newpipe.extractor.Parser;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.StreamInfo;
import org.schabi.newpipe.extractor.StreamPreviewInfoCollector;
import org.schabi.newpipe.extractor.StreamPreviewInfoExtractor;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.StreamExtractor;
import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.MediaFormat;
import org.schabi.newpipe.extractor.VideoStream; import org.schabi.newpipe.extractor.stream_info.StreamExtractor;
import org.schabi.newpipe.extractor.stream_info.StreamInfo;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoCollector;
import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoExtractor;
import org.schabi.newpipe.extractor.stream_info.VideoStream;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -709,7 +709,7 @@ public class YoutubeStreamExtractor extends StreamExtractor {
private StreamPreviewInfoExtractor extractVideoPreviewInfo(final Element li) { private StreamPreviewInfoExtractor extractVideoPreviewInfo(final Element li) {
return new StreamPreviewInfoExtractor() { return new StreamPreviewInfoExtractor() {
@Override @Override
public AbstractVideoInfo.StreamType getStreamType() throws ParsingException { public AbstractStreamInfo.StreamType getStreamType() throws ParsingException {
return null; return null;
} }

View File

@ -1,10 +1,10 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.schabi.newpipe.extractor.AbstractVideoInfo; import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.Parser; import org.schabi.newpipe.extractor.Parser;
import org.schabi.newpipe.extractor.ParsingException; import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.StreamPreviewInfoExtractor; import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfoExtractor;
/** /**
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org> * Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
@ -146,11 +146,11 @@ public class YoutubeStreamPreviewInfoExtractor implements StreamPreviewInfoExtra
} }
@Override @Override
public AbstractVideoInfo.StreamType getStreamType() { public AbstractStreamInfo.StreamType getStreamType() {
if(isLiveStream(item)) { if(isLiveStream(item)) {
return AbstractVideoInfo.StreamType.LIVE_STREAM; return AbstractStreamInfo.StreamType.LIVE_STREAM;
} else { } else {
return AbstractVideoInfo.StreamType.VIDEO_STREAM; return AbstractStreamInfo.StreamType.VIDEO_STREAM;
} }
} }

View File

@ -1,9 +1,9 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.schabi.newpipe.extractor.FoundAdException;
import org.schabi.newpipe.extractor.Parser; import org.schabi.newpipe.extractor.Parser;
import org.schabi.newpipe.extractor.ParsingException;
import org.schabi.newpipe.extractor.UrlIdHandler; import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.FoundAdException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;

View File

@ -1,10 +1,10 @@
package org.schabi.newpipe.extractor.services.youtube; package org.schabi.newpipe.extractor.services.youtube;
import org.schabi.newpipe.extractor.Downloader; import org.schabi.newpipe.extractor.Downloader;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.ParsingException; import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.SuggestionExtractor; import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.search.SuggestionExtractor;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
/** /**
* Created by Christian Schabesberger on 04.03.16. * Created by Christian Schabesberger on 04.03.16.

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
/** /**
* Created by Christian Schabesberger on 10.08.15. * Created by Christian Schabesberger on 10.08.15.
@ -20,6 +20,10 @@ package org.schabi.newpipe.extractor;
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>. * along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/ */
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import java.util.List; import java.util.List;
/**Scrapes information from a video streaming service (eg, YouTube).*/ /**Scrapes information from a video streaming service (eg, YouTube).*/

View File

@ -1,4 +1,9 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.DashMpdParser;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -26,7 +31,7 @@ import java.util.Vector;
/**Info object for opened videos, ie the video ready to play.*/ /**Info object for opened videos, ie the video ready to play.*/
@SuppressWarnings("ALL") @SuppressWarnings("ALL")
public class StreamInfo extends AbstractVideoInfo { public class StreamInfo extends AbstractStreamInfo {
public static class StreamExctractException extends ExtractionException { public static class StreamExctractException extends ExtractionException {
StreamExctractException(String message) { StreamExctractException(String message) {
@ -39,7 +44,7 @@ public class StreamInfo extends AbstractVideoInfo {
/**Creates a new StreamInfo object from an existing AbstractVideoInfo. /**Creates a new StreamInfo object from an existing AbstractVideoInfo.
* All the shared properties are copied to the new StreamInfo.*/ * All the shared properties are copied to the new StreamInfo.*/
@SuppressWarnings("WeakerAccess") @SuppressWarnings("WeakerAccess")
public StreamInfo(AbstractVideoInfo avi) { public StreamInfo(AbstractStreamInfo avi) {
this.id = avi.id; this.id = avi.id;
this.title = avi.title; this.title = avi.title;
this.uploader = avi.uploader; this.uploader = avi.uploader;
@ -67,19 +72,19 @@ public class StreamInfo extends AbstractVideoInfo {
/**Fills out the video info fields which are common to all services. /**Fills out the video info fields which are common to all services.
* Probably needs to be overridden by subclasses*/ * Probably needs to be overridden by subclasses*/
public static StreamInfo getVideoInfo(StreamExtractor extractor, Downloader downloader) public static StreamInfo getVideoInfo(StreamExtractor extractor)
throws ExtractionException, IOException { throws ExtractionException, IOException {
StreamInfo streamInfo = new StreamInfo(); StreamInfo streamInfo = new StreamInfo();
streamInfo = extractImportantData(streamInfo, extractor, downloader); streamInfo = extractImportantData(streamInfo, extractor);
streamInfo = extractStreams(streamInfo, extractor, downloader); streamInfo = extractStreams(streamInfo, extractor);
streamInfo = extractOptionalData(streamInfo, extractor, downloader); streamInfo = extractOptionalData(streamInfo, extractor);
return streamInfo; return streamInfo;
} }
private static StreamInfo extractImportantData( private static StreamInfo extractImportantData(
StreamInfo streamInfo, StreamExtractor extractor, Downloader downloader) StreamInfo streamInfo, StreamExtractor extractor)
throws ExtractionException, IOException { throws ExtractionException, IOException {
/* ---- importand data, withoug the video can't be displayed goes here: ---- */ /* ---- importand data, withoug the video can't be displayed goes here: ---- */
// if one of these is not available an exception is ment to be thrown directly into the frontend. // if one of these is not available an exception is ment to be thrown directly into the frontend.
@ -105,7 +110,7 @@ public class StreamInfo extends AbstractVideoInfo {
} }
private static StreamInfo extractStreams( private static StreamInfo extractStreams(
StreamInfo streamInfo, StreamExtractor extractor, Downloader downloader) StreamInfo streamInfo, StreamExtractor extractor)
throws ExtractionException, IOException { throws ExtractionException, IOException {
/* ---- stream extraction goes here ---- */ /* ---- stream extraction goes here ---- */
// At least one type of stream has to be available, // At least one type of stream has to be available,
@ -132,7 +137,7 @@ public class StreamInfo extends AbstractVideoInfo {
// same as the quick and dirty aboth // same as the quick and dirty aboth
try { try {
streamInfo.audio_streams.addAll( streamInfo.audio_streams.addAll(
DashMpdParser.getAudioStreams(streamInfo.dashMpdUrl, downloader)); DashMpdParser.getAudioStreams(streamInfo.dashMpdUrl));
} catch(Exception e) { } catch(Exception e) {
streamInfo.addException( streamInfo.addException(
new ExtractionException("Couldn't get audio streams from dash mpd", e)); new ExtractionException("Couldn't get audio streams from dash mpd", e));
@ -166,7 +171,7 @@ public class StreamInfo extends AbstractVideoInfo {
} }
private static StreamInfo extractOptionalData( private static StreamInfo extractOptionalData(
StreamInfo streamInfo, StreamExtractor extractor, Downloader downloader) { StreamInfo streamInfo, StreamExtractor extractor) {
/* ---- optional data goes here: ---- */ /* ---- optional data goes here: ---- */
// If one of these failes, the frontend neets to handle that they are not available. // If one of these failes, the frontend neets to handle that they are not available.
// Exceptions are therfore not thrown into the frontend, but stored into the error List, // Exceptions are therfore not thrown into the frontend, but stored into the error List,

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
/** /**
* Created by Christian Schabesberger on 26.08.15. * Created by Christian Schabesberger on 26.08.15.
@ -20,7 +20,9 @@ package org.schabi.newpipe.extractor;
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>. * along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/ */
import org.schabi.newpipe.extractor.AbstractStreamInfo;
/**Info object for previews of unopened videos, eg search results, related videos*/ /**Info object for previews of unopened videos, eg search results, related videos*/
public class StreamPreviewInfo extends AbstractVideoInfo { public class StreamPreviewInfo extends AbstractStreamInfo {
public int duration; public int duration;
} }

View File

@ -1,5 +1,8 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.FoundAdException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.services.youtube.YoutubeStreamUrlIdHandler; import org.schabi.newpipe.extractor.services.youtube.YoutubeStreamUrlIdHandler;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,7 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
/** /**
* Created by Christian Schabesberger on 28.02.16. * Created by Christian Schabesberger on 28.02.16.
@ -21,7 +24,7 @@ package org.schabi.newpipe.extractor;
*/ */
public interface StreamPreviewInfoExtractor { public interface StreamPreviewInfoExtractor {
AbstractVideoInfo.StreamType getStreamType() throws ParsingException; AbstractStreamInfo.StreamType getStreamType() throws ParsingException;
String getWebPageUrl() throws ParsingException; String getWebPageUrl() throws ParsingException;
String getTitle() throws ParsingException; String getTitle() throws ParsingException;
int getDuration() throws ParsingException; int getDuration() throws ParsingException;

View File

@ -1,4 +1,4 @@
package org.schabi.newpipe.extractor; package org.schabi.newpipe.extractor.stream_info;
/** /**
* Created by Christian Schabesberger on 04.03.16. * Created by Christian Schabesberger on 04.03.16.

View File

@ -10,8 +10,8 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import org.schabi.newpipe.ImageErrorLoadingListener; import org.schabi.newpipe.ImageErrorLoadingListener;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.AbstractVideoInfo; import org.schabi.newpipe.extractor.AbstractStreamInfo;
import org.schabi.newpipe.extractor.StreamPreviewInfo; import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfo;
/** /**
* Created by Christian Schabesberger on 26.09.16. * Created by Christian Schabesberger on 26.09.16.
@ -66,7 +66,7 @@ public class InfoItemBuilder {
if(info.duration > 0) { if(info.duration > 0) {
holder.itemDurationView.setText(getDurationString(info.duration)); holder.itemDurationView.setText(getDurationString(info.duration));
} else { } else {
if(info.stream_type == AbstractVideoInfo.StreamType.LIVE_STREAM) { if(info.stream_type == AbstractStreamInfo.StreamType.LIVE_STREAM) {
holder.itemDurationView.setText(R.string.duration_live); holder.itemDurationView.setText(R.string.duration_live);
} else { } else {
holder.itemDurationView.setVisibility(View.GONE); holder.itemDurationView.setVisibility(View.GONE);

View File

@ -6,13 +6,8 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.schabi.newpipe.ImageErrorLoadingListener;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.AbstractVideoInfo; import org.schabi.newpipe.extractor.stream_info.StreamPreviewInfo;
import org.schabi.newpipe.extractor.StreamPreviewInfo;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;

View File

@ -19,12 +19,12 @@ import android.widget.ProgressBar;
import android.widget.Toast; import android.widget.Toast;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.search.SearchResult;
import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.info_list.InfoItemBuilder;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.detail.VideoItemDetailActivity; import org.schabi.newpipe.detail.VideoItemDetailActivity;
import org.schabi.newpipe.detail.VideoItemDetailFragment; import org.schabi.newpipe.detail.VideoItemDetailFragment;
import org.schabi.newpipe.extractor.SearchResult;
import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.info_list.InfoListAdapter;
/** /**

View File

@ -7,12 +7,11 @@ import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import org.schabi.newpipe.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.search.SearchEngine;
import org.schabi.newpipe.extractor.search.SearchResult;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.SearchEngine;
import org.schabi.newpipe.extractor.SearchResult;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import java.io.IOException; import java.io.IOException;

View File

@ -6,13 +6,11 @@ import android.os.Handler;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.widget.Toast; import android.widget.Toast;
import org.schabi.newpipe.Downloader;
import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.SuggestionExtractor; import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.search.SuggestionExtractor;
import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.ExtractionException;
import org.schabi.newpipe.extractor.SearchEngine;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;