renamed Extractor into VideoExtractor
This commit is contained in:
parent
7f86872139
commit
d6d144c927
7 changed files with 26 additions and 28 deletions
|
@ -5,12 +5,11 @@ import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.app.NavUtils;
|
import android.support.v4.app.NavUtils;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import org.schabi.newpipe.services.Extractor;
|
import org.schabi.newpipe.services.VideoExtractor;
|
||||||
import org.schabi.newpipe.services.ServiceList;
|
import org.schabi.newpipe.services.ServiceList;
|
||||||
import org.schabi.newpipe.services.StreamingService;
|
import org.schabi.newpipe.services.StreamingService;
|
||||||
|
|
||||||
|
@ -64,14 +63,13 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
||||||
// this means the video was called though another app
|
// this means the video was called though another app
|
||||||
if (getIntent().getData() != null) {
|
if (getIntent().getData() != null) {
|
||||||
videoUrl = getIntent().getData().toString();
|
videoUrl = getIntent().getData().toString();
|
||||||
//Log.i(TAG, "video URL passed:\"" + videoUrl + "\"");
|
|
||||||
StreamingService[] serviceList = ServiceList.getServices();
|
StreamingService[] serviceList = ServiceList.getServices();
|
||||||
Extractor extractor = null;
|
VideoExtractor videoExtractor = null;
|
||||||
for (int i = 0; i < serviceList.length; i++) {
|
for (int i = 0; i < serviceList.length; i++) {
|
||||||
if (serviceList[i].acceptUrl(videoUrl)) {
|
if (serviceList[i].acceptUrl(videoUrl)) {
|
||||||
arguments.putInt(VideoItemDetailFragment.STREAMING_SERVICE, i);
|
arguments.putInt(VideoItemDetailFragment.STREAMING_SERVICE, i);
|
||||||
currentStreamingService = i;
|
currentStreamingService = i;
|
||||||
//extractor = ServiceList.getService(i).getExtractorInstance();
|
//videoExtractor = ServiceList.getService(i).getExtractorInstance();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +78,7 @@ public class VideoItemDetailActivity extends AppCompatActivity {
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
//arguments.putString(VideoItemDetailFragment.VIDEO_URL,
|
//arguments.putString(VideoItemDetailFragment.VIDEO_URL,
|
||||||
// extractor.getVideoUrl(extractor.getVideoId(videoUrl)));//cleans URL
|
// videoExtractor.getVideoUrl(videoExtractor.getVideoId(videoUrl)));//cleans URL
|
||||||
arguments.putString(VideoItemDetailFragment.VIDEO_URL, videoUrl);
|
arguments.putString(VideoItemDetailFragment.VIDEO_URL, videoUrl);
|
||||||
|
|
||||||
arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY,
|
arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY,
|
||||||
|
|
|
@ -39,7 +39,7 @@ import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import org.schabi.newpipe.services.Extractor;
|
import org.schabi.newpipe.services.VideoExtractor;
|
||||||
import org.schabi.newpipe.services.ServiceList;
|
import org.schabi.newpipe.services.ServiceList;
|
||||||
import org.schabi.newpipe.services.StreamingService;
|
import org.schabi.newpipe.services.StreamingService;
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ public class VideoItemDetailFragment extends Fragment {
|
||||||
private ActionBarHandler actionBarHandler;
|
private ActionBarHandler actionBarHandler;
|
||||||
|
|
||||||
private boolean autoPlayEnabled = false;
|
private boolean autoPlayEnabled = false;
|
||||||
private Thread extractorThread = null;
|
private Thread videoExtractorThread = null;
|
||||||
private VideoInfo currentVideoInfo = null;
|
private VideoInfo currentVideoInfo = null;
|
||||||
private boolean showNextVideoItem = false;
|
private boolean showNextVideoItem = false;
|
||||||
|
|
||||||
|
@ -89,21 +89,21 @@ public class VideoItemDetailFragment extends Fragment {
|
||||||
|
|
||||||
private OnInvokeCreateOptionsMenuListener onInvokeCreateOptionsMenuListener = null;
|
private OnInvokeCreateOptionsMenuListener onInvokeCreateOptionsMenuListener = null;
|
||||||
|
|
||||||
private class ExtractorRunnable implements Runnable {
|
private class VideoExtractorRunnable implements Runnable {
|
||||||
private Handler h = new Handler();
|
private Handler h = new Handler();
|
||||||
private Extractor extractor;
|
private VideoExtractor videoExtractor;
|
||||||
private StreamingService service;
|
private StreamingService service;
|
||||||
private String videoUrl;
|
private String videoUrl;
|
||||||
|
|
||||||
public ExtractorRunnable(String videoUrl, StreamingService service, VideoItemDetailFragment f) {
|
public VideoExtractorRunnable(String videoUrl, StreamingService service, VideoItemDetailFragment f) {
|
||||||
this.service = service;
|
this.service = service;
|
||||||
this.videoUrl = videoUrl;
|
this.videoUrl = videoUrl;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
this.extractor = service.getExtractorInstance(videoUrl);
|
this.videoExtractor = service.getExtractorInstance(videoUrl);
|
||||||
VideoInfo videoInfo = extractor.getVideoInfo();
|
VideoInfo videoInfo = videoExtractor.getVideoInfo();
|
||||||
h.post(new VideoResultReturnedRunnable(videoInfo));
|
h.post(new VideoResultReturnedRunnable(videoInfo));
|
||||||
if (videoInfo.videoAvailableStatus == VideoInfo.VIDEO_AVAILABLE) {
|
if (videoInfo.videoAvailableStatus == VideoInfo.VIDEO_AVAILABLE) {
|
||||||
h.post(new SetThumbnailRunnable(
|
h.post(new SetThumbnailRunnable(
|
||||||
|
@ -360,11 +360,11 @@ public class VideoItemDetailFragment extends Fragment {
|
||||||
try {
|
try {
|
||||||
StreamingService streamingService = ServiceList.getService(
|
StreamingService streamingService = ServiceList.getService(
|
||||||
getArguments().getInt(STREAMING_SERVICE));
|
getArguments().getInt(STREAMING_SERVICE));
|
||||||
extractorThread = new Thread(new ExtractorRunnable(
|
videoExtractorThread = new Thread(new VideoExtractorRunnable(
|
||||||
getArguments().getString(VIDEO_URL), streamingService, this));
|
getArguments().getString(VIDEO_URL), streamingService, this));
|
||||||
|
|
||||||
autoPlayEnabled = getArguments().getBoolean(AUTO_PLAY);
|
autoPlayEnabled = getArguments().getBoolean(AUTO_PLAY);
|
||||||
extractorThread.start();
|
videoExtractorThread.start();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ public interface StreamingService {
|
||||||
public String name = "";
|
public String name = "";
|
||||||
}
|
}
|
||||||
ServiceInfo getServiceInfo();
|
ServiceInfo getServiceInfo();
|
||||||
Extractor getExtractorInstance(String url);
|
VideoExtractor getExtractorInstance(String url);
|
||||||
SearchEngine getSearchEngineInstance();
|
SearchEngine getSearchEngineInstance();
|
||||||
|
|
||||||
/**When a VIEW_ACTION is caught this function will test if the url delivered within the calling
|
/**When a VIEW_ACTION is caught this function will test if the url delivered within the calling
|
||||||
|
|
|
@ -4,7 +4,7 @@ package org.schabi.newpipe.services;
|
||||||
* Created by Christian Schabesberger on 10.08.15.
|
* Created by Christian Schabesberger on 10.08.15.
|
||||||
*
|
*
|
||||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||||
* Extractor.java is part of NewPipe.
|
* VideoExtractor.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
|
||||||
|
@ -23,11 +23,11 @@ package org.schabi.newpipe.services;
|
||||||
import org.schabi.newpipe.VideoInfo;
|
import org.schabi.newpipe.VideoInfo;
|
||||||
|
|
||||||
/**Scrapes information from a video streaming service (eg, YouTube).*/
|
/**Scrapes information from a video streaming service (eg, YouTube).*/
|
||||||
public abstract class Extractor {
|
public abstract class VideoExtractor {
|
||||||
public String pageUrl;
|
public String pageUrl;
|
||||||
public VideoInfo videoInfo;
|
public VideoInfo videoInfo;
|
||||||
|
|
||||||
public Extractor(String url) {
|
public VideoExtractor(String url) {
|
||||||
this.pageUrl = url;
|
this.pageUrl = url;
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ public class YoutubeSearchEngine implements SearchEngine {
|
||||||
|
|
||||||
// video item type
|
// video item type
|
||||||
} else if(!((el = item.select("div[class*=\"yt-lockup-video\"").first()) == null)) {
|
} else if(!((el = item.select("div[class*=\"yt-lockup-video\"").first()) == null)) {
|
||||||
//todo: de-duplicate this with YoutubeExtractor.getVideoPreviewInfo()
|
//todo: de-duplicate this with YoutubeVideoExtractor.getVideoPreviewInfo()
|
||||||
VideoPreviewInfo resultItem = new VideoPreviewInfo();
|
VideoPreviewInfo resultItem = new VideoPreviewInfo();
|
||||||
Element dl = el.select("h3").first().select("a").first();
|
Element dl = el.select("h3").first().select("a").first();
|
||||||
resultItem.webpage_url = dl.attr("abs:href");
|
resultItem.webpage_url = dl.attr("abs:href");
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.schabi.newpipe.services.youtube;
|
package org.schabi.newpipe.services.youtube;
|
||||||
|
|
||||||
import org.schabi.newpipe.services.StreamingService;
|
import org.schabi.newpipe.services.StreamingService;
|
||||||
import org.schabi.newpipe.services.Extractor;
|
import org.schabi.newpipe.services.VideoExtractor;
|
||||||
import org.schabi.newpipe.services.SearchEngine;
|
import org.schabi.newpipe.services.SearchEngine;
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@ public class YoutubeService implements StreamingService {
|
||||||
return serviceInfo;
|
return serviceInfo;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Extractor getExtractorInstance(String url) {
|
public VideoExtractor getExtractorInstance(String url) {
|
||||||
if(acceptUrl(url)) {
|
if(acceptUrl(url)) {
|
||||||
return new YoutubeExtractor(url);
|
return new YoutubeVideoExtractor(url);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new IllegalArgumentException("supplied String is not a valid Youtube URL");
|
throw new IllegalArgumentException("supplied String is not a valid Youtube URL");
|
||||||
|
|
|
@ -13,7 +13,7 @@ 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.Downloader;
|
import org.schabi.newpipe.Downloader;
|
||||||
import org.schabi.newpipe.services.Extractor;
|
import org.schabi.newpipe.services.VideoExtractor;
|
||||||
import org.schabi.newpipe.MediaFormat;
|
import org.schabi.newpipe.MediaFormat;
|
||||||
import org.schabi.newpipe.VideoInfo;
|
import org.schabi.newpipe.VideoInfo;
|
||||||
import org.schabi.newpipe.VideoPreviewInfo;
|
import org.schabi.newpipe.VideoPreviewInfo;
|
||||||
|
@ -31,7 +31,7 @@ import java.util.regex.Pattern;
|
||||||
* Created by Christian Schabesberger on 06.08.15.
|
* Created by Christian Schabesberger on 06.08.15.
|
||||||
*
|
*
|
||||||
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
* Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org>
|
||||||
* YoutubeExtractor.java is part of NewPipe.
|
* YoutubeVideoExtractor.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
|
||||||
|
@ -47,9 +47,9 @@ import java.util.regex.Pattern;
|
||||||
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class YoutubeExtractor extends Extractor {
|
public class YoutubeVideoExtractor extends VideoExtractor {
|
||||||
|
|
||||||
private static final String TAG = YoutubeExtractor.class.toString();
|
private static final String TAG = YoutubeVideoExtractor.class.toString();
|
||||||
private String pageContents;
|
private String pageContents;
|
||||||
private Document doc;
|
private Document doc;
|
||||||
private JSONObject jsonObj;
|
private JSONObject jsonObj;
|
||||||
|
@ -62,7 +62,7 @@ public class YoutubeExtractor extends Extractor {
|
||||||
private static volatile String decryptionCode = "";
|
private static volatile String decryptionCode = "";
|
||||||
|
|
||||||
|
|
||||||
public YoutubeExtractor(String pageUrl) {
|
public YoutubeVideoExtractor(String pageUrl) {
|
||||||
super(pageUrl);//most common videoInfo fields are now set in our superclass, for all services
|
super(pageUrl);//most common videoInfo fields are now set in our superclass, for all services
|
||||||
pageContents = Downloader.download(cleanUrl(pageUrl));
|
pageContents = Downloader.download(cleanUrl(pageUrl));
|
||||||
doc = Jsoup.parse(pageContents, pageUrl);
|
doc = Jsoup.parse(pageContents, pageUrl);
|
Loading…
Reference in a new issue