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) {
if (ext.startsWith("http")) return 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));
return ext;
}

@ -7,6 +7,7 @@ import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Json;
import com.google.common.io.BaseEncoding;
import java.io.File;
import java.nio.charset.StandardCharsets;
import javax.crypto.Cipher;
@ -28,18 +29,21 @@ public class Decoder {
public static String getExt(String ext) {
try {
return base64(OKHttp.newCall(ext.substring(4)).execute().body().string());
return base64(getData(ext.substring(4)));
} catch (Exception ignored) {
return "";
}
}
public static void getSpider(String jar) {
public static File getSpider(String jar, String md5) {
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);
FileUtil.write(FileUtil.getJar(jar), Base64.decode(data, Base64.DEFAULT));
return FileUtil.write(file, Base64.decode(data, Base64.DEFAULT));
} catch (Exception ignored) {
return FileUtil.getJar(jar);
}
}
@ -81,7 +85,7 @@ public class Decoder {
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());
}
}

@ -67,7 +67,9 @@ public class JarLoader {
String[] texts = jar.split(";md5;");
String md5 = !jar.startsWith("file") && texts.length > 1 ? texts[1].trim() : "";
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));
} else if (jar.startsWith("http")) {
load(key, download(jar));

Loading…
Cancel
Save