diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Config.java b/app/src/main/java/com/fongmi/android/tv/bean/Config.java index 016c3bc6f..48f72f4d8 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Config.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Config.java @@ -8,6 +8,7 @@ import androidx.room.PrimaryKey; import com.fongmi.android.tv.App; import com.fongmi.android.tv.db.AppDatabase; +import com.github.catvod.utils.Prefers; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; @@ -222,6 +223,7 @@ public class Config { public Config update() { if (isEmpty()) return this; setTime(System.currentTimeMillis()); + Prefers.put("config_" + getType(), getUrl()); AppDatabase.get().getConfigDao().update(this); return this; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Source.java b/app/src/main/java/com/fongmi/android/tv/player/Source.java index d3853eb9b..cd11cd640 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Source.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Source.java @@ -34,9 +34,9 @@ public class Source { extractors.add(new Force()); extractors.add(new JianPian()); extractors.add(new Push()); - extractors.add(new Video()); extractors.add(new Thunder()); extractors.add(new TVBus()); + extractors.add(new Video()); extractors.add(new Youtube()); extractors.add(new ZLive()); } diff --git a/app/src/main/java/com/fongmi/android/tv/server/Nano.java b/app/src/main/java/com/fongmi/android/tv/server/Nano.java index f115fb27b..436907b08 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Nano.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Nano.java @@ -6,6 +6,7 @@ import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.api.LiveConfig; import com.fongmi.android.tv.bean.Device; import com.fongmi.android.tv.server.process.Action; +import com.fongmi.android.tv.server.process.Cache; import com.fongmi.android.tv.server.process.Local; import com.fongmi.android.tv.server.process.Process; import com.fongmi.android.tv.utils.M3U8; @@ -37,6 +38,7 @@ public class Nano extends NanoHTTPD { private void addProcess() { process = new ArrayList<>(); process.add(new Action()); + process.add(new Cache()); process.add(new Local()); } diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java b/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java index bbfdd640d..a3f35bafc 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java @@ -1,5 +1,7 @@ package com.fongmi.android.tv.server.process; +import android.text.TextUtils; + import com.fongmi.android.tv.server.Nano; import com.github.catvod.utils.Prefers; @@ -15,18 +17,23 @@ public class Cache implements Process { return path.equals("/cache"); } + private String getKey(String rule, String key) { + return "cache_" + (TextUtils.isEmpty(rule) ? "" : rule + "_") + key; + } + @Override public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map files) { Map params = session.getParms(); + String rule = params.get("rule"); + String key = params.get("key"); switch (Objects.requireNonNullElse(params.get("do"), "")) { case "get": - Prefers.getString("cache_" + params.get("key")); - return Nano.success(); + return Nano.success(getKey(rule, key)); case "set": - Prefers.put("cache_" + params.get("key"), params.get("value")); + Prefers.put(getKey(rule, key), params.get("value")); return Nano.success(); - case "delete": - Prefers.remove("cache_" + params.get("key")); + case "del": + Prefers.remove(getKey(rule, key)); return Nano.success(); default: return Nano.error(null); diff --git a/quickjs/src/main/java/com/fongmi/quickjs/method/Local.java b/quickjs/src/main/java/com/fongmi/quickjs/method/Local.java index e3a516aa1..facba06de 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/method/Local.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/method/Local.java @@ -1,5 +1,7 @@ package com.fongmi.quickjs.method; +import android.text.TextUtils; + import androidx.annotation.Keep; import com.github.catvod.utils.Prefers; @@ -7,21 +9,25 @@ import com.whl.quickjs.wrapper.JSMethod; public class Local { + private String getKey(String rule, String key) { + return "cache_" + (TextUtils.isEmpty(rule) ? "" : rule + "_") + key; + } + @Keep @JSMethod public String get(String rule, String key) { - return Prefers.getString(rule + "_" + key); + return Prefers.getString(getKey(rule, key)); } @Keep @JSMethod public void set(String rule, String key, String value) { - Prefers.put(rule + "_" + key, value); + Prefers.put(getKey(rule, key), value); } @Keep @JSMethod public void delete(String rule, String key) { - Prefers.remove(rule + "_" + key); + Prefers.remove(getKey(rule, key)); } }