okjack
FongMi 3 years ago
parent aa11121324
commit 74ad0ddd9b
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/UaDialog.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/impl/NewPipeImpl.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java
  4. 6
      app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java
  5. 1
      app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java
  6. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/UaDialog.java
  7. 9
      catvod/src/main/java/com/github/catvod/net/OkhttpInterceptor.java
  8. 1
      catvod/src/main/java/com/github/catvod/utils/Util.java

@ -19,7 +19,6 @@ import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.ui.custom.CustomTextListener;
import com.fongmi.android.tv.utils.QRCode;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Sniffer;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.greenrobot.eventbus.EventBus;
@ -89,7 +88,7 @@ public class UaDialog implements DialogInterface.OnDismissListener {
private void detect(String s) {
if (append && s.equalsIgnoreCase("c")) {
append = false;
binding.text.setText(Sniffer.CHROME);
binding.text.setText(com.github.catvod.utils.Util.CHROME);
} else if (append && s.equalsIgnoreCase("o")) {
append = false;
binding.text.setText(Util.userAgent);

@ -2,8 +2,8 @@ package com.fongmi.android.tv.impl;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import org.schabi.newpipe.extractor.downloader.Downloader;
@ -26,7 +26,7 @@ public class NewPipeImpl extends Downloader {
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);
okhttp3.Request.Builder builder = new okhttp3.Request.Builder().method(request.httpMethod(), reqBody).url(url).addHeader(HttpHeaders.USER_AGENT, Util.CHROME);
for (Map.Entry<String, List<String>> pair : request.headers().entrySet()) {
String headerName = pair.getKey();
List<String> headerValueList = pair.getValue();

@ -3,8 +3,8 @@ package com.fongmi.android.tv.player.extractor;
import android.net.Uri;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonParser;
@ -21,7 +21,7 @@ public class BiliBili implements Source.Extractor {
public String fetch(String url) throws Exception {
String room = Uri.parse(url).getPath().replace("/", "");
String api = String.format("https://api.live.bilibili.com/room/v1/Room/playUrl?cid=%s&qn=20000&platform=h5", room);
String result = OkHttp.newCall(api, Headers.of(HttpHeaders.USER_AGENT, Sniffer.CHROME)).execute().body().string();
String result = OkHttp.newCall(api, Headers.of(HttpHeaders.USER_AGENT, Util.CHROME)).execute().body().string();
return JsonParser.parseString(result).getAsJsonObject().get("data").getAsJsonObject().get("durl").getAsJsonArray().get(0).getAsJsonObject().get("url").getAsString();
}

@ -2,8 +2,8 @@ package com.fongmi.android.tv.player.extractor;
import com.fongmi.android.tv.impl.NewPipeImpl;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import org.schabi.newpipe.extractor.NewPipe;
@ -34,10 +34,10 @@ public class Youtube implements Source.Extractor {
@Override
public String fetch(String url) throws Exception {
String html = OkHttp.newCall(url, Headers.of(HttpHeaders.USER_AGENT, Sniffer.CHROME)).execute().body().string();
String html = OkHttp.newCall(url, Headers.of(HttpHeaders.USER_AGENT, Util.CHROME)).execute().body().string();
Matcher matcher = Pattern.compile("hlsManifestUrl\\S*?(https\\S*?\\.m3u8)").matcher(html);
if (matcher.find()) {
html = OkHttp.newCall(matcher.group(1), Headers.of(HttpHeaders.USER_AGENT, Sniffer.CHROME)).execute().body().string();
html = OkHttp.newCall(matcher.group(1), Headers.of(HttpHeaders.USER_AGENT, Util.CHROME)).execute().body().string();
return find(html);
} else {
LinkHandler handler = YoutubeStreamLinkHandlerFactory.getInstance().fromUrl(url);

@ -20,7 +20,6 @@ public class Sniffer {
private static final String TAG = Sniffer.class.getSimpleName();
public static final Pattern CLICKER = Pattern.compile("\\[a=cr:(\\{.*?\\})\\/](.*?)\\[\\/a]");
public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36";
public static final String RULE = "http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*";
public static final List<String> PUSH = Arrays.asList("smb", "http", "https", "thunder", "magnet", "ed2k", "mitv", "jianpian");
public static final List<String> THUNDER = Arrays.asList("thunder", "magnet", "ed2k");

@ -13,7 +13,6 @@ import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.databinding.DialogUaBinding;
import com.fongmi.android.tv.impl.UaCallback;
import com.fongmi.android.tv.ui.custom.CustomTextListener;
import com.fongmi.android.tv.utils.Sniffer;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import okhttp3.internal.Util;
@ -69,7 +68,7 @@ public class UaDialog {
private void detect(String s) {
if (append && s.equalsIgnoreCase("c")) {
append = false;
binding.text.setText(Sniffer.CHROME);
binding.text.setText(com.github.catvod.utils.Util.CHROME);
} else if (append && s.equalsIgnoreCase("o")) {
append = false;
binding.text.setText(Util.userAgent);

@ -3,6 +3,7 @@ package com.github.catvod.net;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import java.io.IOException;
@ -19,8 +20,6 @@ import okio.Okio;
public class OkhttpInterceptor implements Interceptor {
public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36";
@NonNull
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
@ -49,8 +48,8 @@ public class OkhttpInterceptor implements Interceptor {
}
private Request getRequest(@NonNull Chain chain) {
Request original = chain.request();
if (original.url().host().equals("gitcode.net")) return original.newBuilder().addHeader(HttpHeaders.USER_AGENT, CHROME).build();
return original;
Request request = chain.request();
if (request.url().host().equals("gitcode.net")) return request.newBuilder().addHeader(HttpHeaders.USER_AGENT, Util.CHROME).build();
return request;
}
}

@ -20,6 +20,7 @@ import java.util.Formatter;
public class Util {
public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36";
public static final String[] UNITS = new String[]{"bytes", "KB", "MB", "GB", "TB"};
public static String getDeviceId() {

Loading…
Cancel
Save