updated extractor and downloader

This commit is contained in:
Ritvik Saraf 2018-09-27 04:20:57 +05:30
parent a29e2116a7
commit 4e6722f201
2 changed files with 15 additions and 9 deletions

View File

@ -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'

View File

@ -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) {