updated extractor and downloader
This commit is contained in:
parent
a29e2116a7
commit
4e6722f201
|
@ -55,7 +55,7 @@ dependencies {
|
||||||
exclude module: 'support-annotations'
|
exclude module: 'support-annotations'
|
||||||
}
|
}
|
||||||
|
|
||||||
implementation 'com.github.yausername:NewPipeExtractor:fb14196'
|
implementation 'com.github.yausername:NewPipeExtractor:6b62091'
|
||||||
|
|
||||||
testImplementation 'junit:junit:4.12'
|
testImplementation 'junit:junit:4.12'
|
||||||
testImplementation 'org.mockito:mockito-core:2.8.9'
|
testImplementation 'org.mockito:mockito-core:2.8.9'
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.schabi.newpipe;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import org.schabi.newpipe.extractor.DownloadRequest;
|
||||||
import org.schabi.newpipe.extractor.DownloadResponse;
|
import org.schabi.newpipe.extractor.DownloadResponse;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
||||||
|
|
||||||
|
@ -186,10 +187,11 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DownloadResponse get(String siteUrl, Map<String, List<String>> requestHeaders) throws IOException, ReCaptchaException {
|
public DownloadResponse get(String siteUrl, DownloadRequest request) throws IOException, ReCaptchaException {
|
||||||
final Request.Builder requestBuilder = new Request.Builder()
|
final Request.Builder requestBuilder = new Request.Builder()
|
||||||
.method("GET", null).url(siteUrl);
|
.method("GET", null).url(siteUrl);
|
||||||
|
|
||||||
|
Map<String, List<String>> requestHeaders = request.getRequestHeaders();
|
||||||
// set custom headers in request
|
// set custom headers in request
|
||||||
for (Map.Entry<String, List<String>> pair : requestHeaders.entrySet()) {
|
for (Map.Entry<String, List<String>> pair : requestHeaders.entrySet()) {
|
||||||
for(String value : pair.getValue()){
|
for(String value : pair.getValue()){
|
||||||
|
@ -205,8 +207,8 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
|
||||||
requestBuilder.addHeader("Cookie", mCookies);
|
requestBuilder.addHeader("Cookie", mCookies);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Request request = requestBuilder.build();
|
final Request okRequest = requestBuilder.build();
|
||||||
final Response response = client.newCall(request).execute();
|
final Response response = client.newCall(okRequest).execute();
|
||||||
final ResponseBody body = response.body();
|
final ResponseBody body = response.body();
|
||||||
|
|
||||||
if (response.code() == 429) {
|
if (response.code() == 429) {
|
||||||
|
@ -223,12 +225,13 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DownloadResponse get(String siteUrl) throws IOException, ReCaptchaException {
|
public DownloadResponse get(String siteUrl) throws IOException, ReCaptchaException {
|
||||||
return get(siteUrl, Collections.emptyMap());
|
return get(siteUrl, DownloadRequest.emptyRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DownloadResponse post(String siteUrl, String requestBody, Map<String, List<String>> requestHeaders) throws IOException, ReCaptchaException {
|
public DownloadResponse post(String siteUrl, DownloadRequest request) throws IOException, ReCaptchaException {
|
||||||
|
|
||||||
|
Map<String, List<String>> requestHeaders = request.getRequestHeaders();
|
||||||
if(null == requestHeaders.get("Content-Type") || requestHeaders.get("Content-Type").isEmpty()){
|
if(null == requestHeaders.get("Content-Type") || requestHeaders.get("Content-Type").isEmpty()){
|
||||||
// content type header is required. maybe throw an exception here
|
// content type header is required. maybe throw an exception here
|
||||||
return null;
|
return null;
|
||||||
|
@ -236,7 +239,10 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
|
||||||
|
|
||||||
String contentType = requestHeaders.get("Content-Type").get(0);
|
String contentType = requestHeaders.get("Content-Type").get(0);
|
||||||
|
|
||||||
RequestBody okRequestBody = RequestBody.create(MediaType.parse(contentType), requestBody);
|
RequestBody okRequestBody = null;
|
||||||
|
if(null != request.getRequestBody()){
|
||||||
|
okRequestBody = RequestBody.create(MediaType.parse(contentType), request.getRequestBody());
|
||||||
|
}
|
||||||
final Request.Builder requestBuilder = new Request.Builder()
|
final Request.Builder requestBuilder = new Request.Builder()
|
||||||
.method("POST", okRequestBody).url(siteUrl);
|
.method("POST", okRequestBody).url(siteUrl);
|
||||||
|
|
||||||
|
@ -255,8 +261,8 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader {
|
||||||
requestBuilder.addHeader("Cookie", mCookies);
|
requestBuilder.addHeader("Cookie", mCookies);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Request request = requestBuilder.build();
|
final Request okRequest = requestBuilder.build();
|
||||||
final Response response = client.newCall(request).execute();
|
final Response response = client.newCall(okRequest).execute();
|
||||||
final ResponseBody body = response.body();
|
final ResponseBody body = response.body();
|
||||||
|
|
||||||
if (response.code() == 429) {
|
if (response.code() == 429) {
|
||||||
|
|
Loading…
Reference in New Issue