diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index 6c79bf50d..95dee7e9a 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.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; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java index 5d8737935..4c2ffd7d9 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java @@ -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); } } diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index f3400d6b8..80ac4d858 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -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))); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java index 235378997..b1fd8dd68 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java @@ -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"); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java index e1cc0ab91..b5b3b319d 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/BiliBili.java @@ -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 diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index 96bdb58d1..0c94f1a0d 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -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 map = Json.toMap(JsonParser.parseString(header)); + Map map = Json.toMap(Json.parse(header)); for (Map.Entry entry : map.entrySet()) builder.addHeader(UrlUtil.fixHeader(entry.getKey()), entry.getValue()); } diff --git a/catvod/src/main/java/com/github/catvod/utils/Json.java b/catvod/src/main/java/com/github/catvod/utils/Json.java index 33089b0cd..191906d8d 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Json.java +++ b/catvod/src/main/java/com/github/catvod/utils/Json.java @@ -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(); diff --git a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java index 97b5b61c7..f08c1cf92 100644 --- a/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java +++ b/pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java @@ -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 params) throws Exception { List 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 headers = Json.toMap(action.get("header")); String url = action.get("url").getAsString(); String content = list.get(3).toString();