pull/171/head
FongMi 3 years ago
parent 9357c9839e
commit 6f5b1dcf2c
  1. 3
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  2. 5
      app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/player/ParseJob.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  5. 2
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  6. 11
      app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java
  7. 12
      catvod/src/main/java/com/github/catvod/utils/Util.java

@ -41,6 +41,7 @@ import com.fongmi.android.tv.bean.Drm;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Sub;
import com.fongmi.android.tv.utils.Sniffer;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Util;
@ -116,7 +117,7 @@ public class ExoUtil {
}
private static MediaSource getSource(Map<String, String> headers, String url, String format, List<Sub> subs, Drm drm, int errorCode) {
Uri uri = Uri.parse(Util.fixUrl(url));
Uri uri = Uri.parse(UrlUtil.fixUrl(url));
String mimeType = getMimeType(format, errorCode);
if (uri.getUserInfo() != null) headers.put(HttpHeaders.AUTHORIZATION, Util.basic(uri));
return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(uri, mimeType, subs, drm));

@ -6,8 +6,7 @@ import com.fongmi.android.tv.bean.Channel;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.utils.Sniffer;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.utils.Util;
import com.fongmi.android.tv.utils.UrlUtil;
import java.net.URLEncoder;
import java.util.Map;
@ -25,7 +24,7 @@ public class IjkUtil {
}
public static MediaSource getSource(Map<String, String> headers, String url) {
Uri uri = Uri.parse(Util.fixUrl(url));
Uri uri = Uri.parse(UrlUtil.fixUrl(url));
boolean m3u8Ad = Sniffer.getRegex(uri).size() > 0;
if (m3u8Ad) uri = Uri.parse(Server.get().getAddress().concat("/m3u8?url=").concat(URLEncoder.encode(uri.toString())));
return new MediaSource(Players.checkUa(headers), uri);

@ -10,7 +10,6 @@ import com.fongmi.android.tv.ui.custom.CustomWebView;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@ -183,7 +182,7 @@ public class ParseJob implements ParseCallback {
private Map<String, String> getHeader(JsonObject object) {
Map<String, String> headers = new HashMap<>();
for (String key : object.keySet()) if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT) || key.equalsIgnoreCase(HttpHeaders.REFERER)) headers.put(Util.fixHeader(key), object.get(key).getAsString());
for (String key : object.keySet()) if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT) || key.equalsIgnoreCase(HttpHeaders.REFERER)) headers.put(UrlUtil.fixHeader(key), object.get(key).getAsString());
if (headers.isEmpty()) return parse.getHeaders();
return headers;
}

@ -30,6 +30,7 @@ import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.impl.SessionCallback;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Util;
@ -491,7 +492,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
}
private boolean isIllegal(String url) {
Uri uri = Uri.parse(Util.fixUrl(url));
Uri uri = Uri.parse(UrlUtil.fixUrl(url));
String host = Util.host(uri);
String scheme = Util.scheme(uri);
if (scheme.equals("data")) return false;

@ -81,7 +81,7 @@ public class ImgUtil {
private static void addHeader(LazyHeaders.Builder builder, String header) {
Map<String, String> map = Json.toMap(JsonParser.parseString(header));
for (Map.Entry<String, String> entry : map.entrySet()) builder.addHeader(Util.fixHeader(entry.getKey()), entry.getValue());
for (Map.Entry<String, String> entry : map.entrySet()) builder.addHeader(UrlUtil.fixHeader(entry.getKey()), entry.getValue());
}
public static byte[] resize(byte[] bytes) {

@ -4,6 +4,7 @@ import androidx.media3.common.util.UriUtil;
import com.fongmi.android.tv.server.Server;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
public class UrlUtil {
@ -27,4 +28,14 @@ public class UrlUtil {
return url;
}
public static String fixUrl(String url) {
return url.trim().replace("\\", "");
}
public static String fixHeader(String key) {
if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) return HttpHeaders.USER_AGENT;
if (key.equalsIgnoreCase(HttpHeaders.REFERER)) return HttpHeaders.REFERER;
if (key.equalsIgnoreCase(HttpHeaders.COOKIE)) return HttpHeaders.COOKIE;
return key;
}
}

@ -7,7 +7,6 @@ import android.text.TextUtils;
import android.util.Base64;
import com.github.catvod.Init;
import com.google.common.net.HttpHeaders;
import java.io.File;
import java.io.FileInputStream;
@ -132,15 +131,4 @@ public class Util {
return "";
}
}
public static String fixUrl(String url) {
return url.trim().replace("\\", "");
}
public static String fixHeader(String key) {
if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) return HttpHeaders.USER_AGENT;
if (key.equalsIgnoreCase(HttpHeaders.REFERER)) return HttpHeaders.REFERER;
if (key.equalsIgnoreCase(HttpHeaders.COOKIE)) return HttpHeaders.COOKIE;
return key;
}
}

Loading…
Cancel
Save