mirror of https://github.com/FongMi/TV.git
parent
04653d7ac2
commit
c56814369a
@ -0,0 +1,51 @@ |
||||
package com.fongmi.android.tv.impl; |
||||
|
||||
import com.fongmi.android.tv.utils.Sniffer; |
||||
import com.github.catvod.net.OkHttp; |
||||
import com.google.common.net.HttpHeaders; |
||||
|
||||
import org.schabi.newpipe.extractor.downloader.Downloader; |
||||
import org.schabi.newpipe.extractor.downloader.Request; |
||||
import org.schabi.newpipe.extractor.downloader.Response; |
||||
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import javax.annotation.Nonnull; |
||||
|
||||
import okhttp3.RequestBody; |
||||
import okhttp3.ResponseBody; |
||||
|
||||
public class NewPipeImpl extends Downloader { |
||||
|
||||
@Override |
||||
public Response execute(@Nonnull Request request) throws IOException, ReCaptchaException { |
||||
String url = request.url(); |
||||
RequestBody reqBody = null; |
||||
byte[] dataToSend = request.dataToSend(); |
||||
if (dataToSend != null) reqBody = RequestBody.create(dataToSend, null); |
||||
okhttp3.Request.Builder builder = new okhttp3.Request.Builder().method(request.httpMethod(), reqBody).url(url).addHeader(HttpHeaders.USER_AGENT, Sniffer.CHROME); |
||||
for (Map.Entry<String, List<String>> pair : request.headers().entrySet()) { |
||||
String headerName = pair.getKey(); |
||||
List<String> headerValueList = pair.getValue(); |
||||
if (headerValueList.size() > 1) { |
||||
builder.removeHeader(headerName); |
||||
for (String headerValue : headerValueList) builder.addHeader(headerName, headerValue); |
||||
} else if (headerValueList.size() == 1) { |
||||
builder.header(headerName, headerValueList.get(0)); |
||||
} |
||||
} |
||||
okhttp3.Response response = OkHttp.client().newCall(builder.build()).execute(); |
||||
if (response.code() == 429) { |
||||
response.close(); |
||||
throw new ReCaptchaException("reCaptcha Challenge requested", url); |
||||
} |
||||
String responseBodyToReturn = null; |
||||
ResponseBody resBody = response.body(); |
||||
if (resBody != null) responseBodyToReturn = resBody.string(); |
||||
String latestUrl = response.request().url().toString(); |
||||
return new Response(response.code(), response.message(), response.headers().toMultimap(), responseBodyToReturn, latestUrl); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue