Fix json problem

pull/362/head
FongMi 2 years ago
parent 110f9d706e
commit 6a975865af
  1. 5
      app/src/main/java/com/fongmi/android/tv/api/LiveParser.java
  2. 3
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  3. 5
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/player/ParseJob.java
  5. 4
      app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java
  6. 3
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  7. 10
      catvod/src/main/java/com/github/catvod/utils/Json.java
  8. 3
      pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java

@ -12,7 +12,6 @@ import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.github.catvod.utils.Path;
import com.google.gson.JsonParser;
import java.util.Arrays;
import java.util.HashMap;
@ -240,8 +239,8 @@ public class LiveParser {
private void header(String line) {
try {
if (line.contains("#EXTHTTP:")) header = Json.toMap(JsonParser.parseString(line.split("#EXTHTTP:")[1].trim()));
if (line.contains("header=")) header = Json.toMap(JsonParser.parseString(line.split("header=")[1].trim()));
if (line.contains("#EXTHTTP:")) header = Json.toMap(Json.parse(line.split("#EXTHTTP:")[1].trim()));
if (line.contains("header=")) header = Json.toMap(Json.parse(line.split("header=")[1].trim()));
} catch (Exception e) {
header = null;
}

@ -20,7 +20,6 @@ import com.fongmi.android.tv.utils.Notify;
import com.github.catvod.utils.Json;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;
@ -112,7 +111,7 @@ public class LiveConfig {
if (Json.invalid(text)) {
parseText(text, callback);
} else {
checkJson(JsonParser.parseString(text).getAsJsonObject(), callback);
checkJson(Json.parse(text).getAsJsonObject(), callback);
}
}

@ -23,7 +23,6 @@ import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.json.JSONObject;
@ -129,7 +128,7 @@ public class VodConfig {
private void loadConfig(Callback callback) {
try {
checkJson(JsonParser.parseString(Decoder.getJson(config.getUrl())).getAsJsonObject(), callback);
checkJson(Json.parse(Decoder.getJson(config.getUrl())).getAsJsonObject(), callback);
} catch (Throwable e) {
if (TextUtils.isEmpty(config.getUrl())) App.post(() -> callback.error(""));
else loadCache(callback, e);
@ -138,7 +137,7 @@ public class VodConfig {
}
private void loadCache(Callback callback, Throwable e) {
if (!TextUtils.isEmpty(config.getJson())) checkJson(JsonParser.parseString(config.getJson()).getAsJsonObject(), callback);
if (!TextUtils.isEmpty(config.getJson())) checkJson(Json.parse(config.getJson()).getAsJsonObject(), callback);
else App.post(() -> callback.error(Notify.getError(R.string.error_config_get, e)));
}

@ -12,7 +12,6 @@ import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.HashMap;
@ -107,7 +106,7 @@ public class ParseJob implements ParseCallback {
private void jsonParse(Parse item, String webUrl, boolean error) throws Exception {
String body = OkHttp.newCall(item.getUrl() + webUrl, Headers.of(item.getHeaders())).execute().body().string();
JsonObject object = JsonParser.parseString(body).getAsJsonObject();
JsonObject object = Json.parse(body).getAsJsonObject();
object = object.has("data") ? object.getAsJsonObject("data") : object;
boolean illegal = body.contains("不存在") || body.contains("已过期");
String url = illegal ? "" : Json.safeString(object, "url");

@ -4,9 +4,9 @@ import android.net.Uri;
import com.fongmi.android.tv.player.Source;
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.JsonParser;
import okhttp3.Headers;
@ -22,7 +22,7 @@ public class BiliBili implements Source.Extractor {
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, Util.CHROME)).execute().body().string();
return JsonParser.parseString(result).getAsJsonObject().get("data").getAsJsonObject().get("durl").getAsJsonArray().get(0).getAsJsonObject().get("url").getAsString();
return Json.parse(result).getAsJsonObject().get("data").getAsJsonObject().get("durl").getAsJsonArray().get(0).getAsJsonObject().get("url").getAsString();
}
@Override

@ -26,7 +26,6 @@ import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.github.catvod.utils.Json;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonParser;
import java.io.ByteArrayOutputStream;
import java.util.Map;
@ -88,7 +87,7 @@ public class ImgUtil {
}
private static void addHeader(LazyHeaders.Builder builder, String header) {
Map<String, String> map = Json.toMap(JsonParser.parseString(header));
Map<String, String> map = Json.toMap(Json.parse(header));
for (Map.Entry<String, String> entry : map.entrySet()) builder.addHeader(UrlUtil.fixHeader(entry.getKey()), entry.getValue());
}

@ -15,6 +15,14 @@ import java.util.Map;
public class Json {
public static JsonElement parse(String json) {
try {
return JsonParser.parseString(json);
} catch (Exception e) {
return new JsonParser().parse(json);
}
}
public static boolean valid(String text) {
try {
new JSONObject(text);
@ -54,7 +62,7 @@ public class Json {
public static JsonObject safeObject(JsonElement element) {
try {
if (element.isJsonPrimitive()) element = JsonParser.parseString(element.getAsJsonPrimitive().getAsString());
if (element.isJsonPrimitive()) element = parse(element.getAsJsonPrimitive().getAsString());
return element.getAsJsonObject();
} catch (Exception e) {
return new JsonObject();

@ -11,7 +11,6 @@ import com.github.catvod.utils.Json;
import com.google.common.net.HttpHeaders;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.ByteArrayInputStream;
import java.util.HashMap;
@ -91,7 +90,7 @@ public class Spider extends com.github.catvod.crawler.Spider {
@Override
public Object[] proxyLocal(Map<String, String> params) throws Exception {
List<PyObject> list = app.callAttr("localProxy", obj, gson.toJson(params)).asList();
JsonObject action = JsonParser.parseString(list.get(2).toString()).getAsJsonObject();
JsonObject action = Json.parse(list.get(2).toString()).getAsJsonObject();
Map<String, String> headers = Json.toMap(action.get("header"));
String url = action.get("url").getAsString();
String content = list.get(3).toString();

Loading…
Cancel
Save