Jar & ext support img+

pull/137/head
FongMi 3 years ago
parent 221a8d82ba
commit 1fb809b7df
  1. 1
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  2. 14
      app/src/main/java/com/fongmi/android/tv/api/Decoder.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/api/JarLoader.java

@ -135,6 +135,7 @@ public class ApiConfig {
private String parseExt(String ext) { private String parseExt(String ext) {
if (ext.startsWith("http")) return ext; if (ext.startsWith("http")) return ext;
else if (ext.startsWith("file")) return FileUtil.read(ext); else if (ext.startsWith("file")) return FileUtil.read(ext);
else if (ext.startsWith("img+")) return Decoder.getExt(ext);
else if (ext.endsWith(".json")) return parseExt(Utils.convert(ext)); else if (ext.endsWith(".json")) return parseExt(Utils.convert(ext));
return ext; return ext;
} }

@ -7,6 +7,7 @@ import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Json; import com.fongmi.android.tv.utils.Json;
import com.google.common.io.BaseEncoding; import com.google.common.io.BaseEncoding;
import java.io.File;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import javax.crypto.Cipher; import javax.crypto.Cipher;
@ -28,18 +29,21 @@ public class Decoder {
public static String getExt(String ext) { public static String getExt(String ext) {
try { try {
return base64(OKHttp.newCall(ext.substring(4)).execute().body().string()); return base64(getData(ext.substring(4)));
} catch (Exception ignored) { } catch (Exception ignored) {
return ""; return "";
} }
} }
public static void getSpider(String jar) { public static File getSpider(String jar, String md5) {
try { try {
String data = OKHttp.newCall(jar.substring(4)).execute().body().string(); File file = FileUtil.getJar(jar);
if (md5.length() > 0 && FileUtil.equals(jar, md5)) return file;
String data = getData(jar.substring(4));
data = data.substring(data.indexOf("**") + 2); data = data.substring(data.indexOf("**") + 2);
FileUtil.write(FileUtil.getJar(jar), Base64.decode(data, Base64.DEFAULT)); return FileUtil.write(file, Base64.decode(data, Base64.DEFAULT));
} catch (Exception ignored) { } catch (Exception ignored) {
return FileUtil.getJar(jar);
} }
} }
@ -81,7 +85,7 @@ public class Decoder {
return (key + "0000000000000000".substring(key.length())).getBytes(StandardCharsets.UTF_8); return (key + "0000000000000000".substring(key.length())).getBytes(StandardCharsets.UTF_8);
} }
public static byte[] decodeHex(String s) { private static byte[] decodeHex(String s) {
return BaseEncoding.base16().decode(s.toUpperCase()); return BaseEncoding.base16().decode(s.toUpperCase());
} }
} }

@ -67,7 +67,9 @@ public class JarLoader {
String[] texts = jar.split(";md5;"); String[] texts = jar.split(";md5;");
String md5 = !jar.startsWith("file") && texts.length > 1 ? texts[1].trim() : ""; String md5 = !jar.startsWith("file") && texts.length > 1 ? texts[1].trim() : "";
jar = texts[0]; jar = texts[0];
if (md5.length() > 0 && FileUtil.equals(jar, md5)) { if (jar.startsWith("img+")) {
load(key, Decoder.getSpider(jar, md5));
} else if (md5.length() > 0 && FileUtil.equals(jar, md5)) {
load(key, FileUtil.getJar(jar)); load(key, FileUtil.getJar(jar));
} else if (jar.startsWith("http")) { } else if (jar.startsWith("http")) {
load(key, download(jar)); load(key, download(jar));

Loading…
Cancel
Save