diff --git a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java index e4bfe2a68..b62d7cc8d 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java @@ -20,10 +20,27 @@ public class Decoder { url = url.contains(";") ? url.split(";")[0] : url; String data = getData(url); if (Json.valid(data)) return data; - if (key.length() > 0) return ecb(data, key); if (data.contains("**")) data = base64(data); if (data.startsWith("2423")) data = cbc(data); - return data.replace("###", ""); + if (key.length() > 0) data = ecb(data, key); + return data; + } + + public static String getExt(String ext) { + try { + return base64(OKHttp.newCall(ext.substring(4)).execute().body().string()); + } catch (Exception ignored) { + return ""; + } + } + + public static void getSpider(String jar) { + try { + String data = OKHttp.newCall(jar.substring(4)).execute().body().string(); + data = data.substring(data.indexOf("**") + 2); + FileUtil.write(FileUtil.getJar(jar), Base64.decode(data, Base64.DEFAULT)); + } catch (Exception ignored) { + } } private static String getData(String url) throws Exception { @@ -64,7 +81,7 @@ public class Decoder { return (key + "0000000000000000".substring(key.length())).getBytes(StandardCharsets.UTF_8); } - public static byte[] decodeHex(String hexString) { - return BaseEncoding.base16().decode(hexString.toUpperCase()); + public static byte[] decodeHex(String s) { + return BaseEncoding.base16().decode(s.toUpperCase()); } } diff --git a/app/src/main/java/com/fongmi/android/tv/api/JarLoader.java b/app/src/main/java/com/fongmi/android/tv/api/JarLoader.java index 85b1fae76..6ea7f90a7 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/JarLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/JarLoader.java @@ -65,7 +65,7 @@ public class JarLoader { public void parseJar(String key, String jar) { String[] texts = jar.split(";md5;"); - String md5 = jar.startsWith("http") && texts.length > 1 ? texts[1].trim() : ""; + String md5 = !jar.startsWith("file") && texts.length > 1 ? texts[1].trim() : ""; jar = texts[0]; if (md5.length() > 0 && FileUtil.equals(jar, md5)) { load(key, FileUtil.getJar(jar));