Add cache api

pull/194/head
FongMi 2 years ago
parent 4458ae2b9b
commit 07e59776a6
  1. 8
      app/src/main/java/com/fongmi/android/tv/player/Source.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/player/extractor/Video.java
  3. 35
      app/src/main/java/com/fongmi/android/tv/server/process/Cache.java

@ -6,7 +6,7 @@ import com.fongmi.android.tv.player.extractor.BiliBili;
import com.fongmi.android.tv.player.extractor.Force;
import com.fongmi.android.tv.player.extractor.JianPian;
import com.fongmi.android.tv.player.extractor.Push;
import com.fongmi.android.tv.player.extractor.Sniffer;
import com.fongmi.android.tv.player.extractor.Video;
import com.fongmi.android.tv.player.extractor.TVBus;
import com.fongmi.android.tv.player.extractor.Thunder;
import com.fongmi.android.tv.player.extractor.Youtube;
@ -34,7 +34,7 @@ public class Source {
extractors.add(new Force());
extractors.add(new JianPian());
extractors.add(new Push());
extractors.add(new Sniffer());
extractors.add(new Video());
extractors.add(new Thunder());
extractors.add(new TVBus());
extractors.add(new Youtube());
@ -52,7 +52,7 @@ public class Source {
String url = result.getUrl().v();
Extractor extractor = getExtractor(url);
if (extractor != null) result.setParse(0);
if (extractor instanceof Sniffer) result.setParse(1);
if (extractor instanceof Video) result.setParse(1);
return extractor == null ? url : extractor.fetch(url);
}
@ -60,7 +60,7 @@ public class Source {
String url = channel.getCurrent().split("\\$")[0];
Extractor extractor = getExtractor(url);
if (extractor != null) channel.setParse(0);
if (extractor instanceof Sniffer) channel.setParse(1);
if (extractor instanceof Video) channel.setParse(1);
return extractor == null ? url : extractor.fetch(url);
}

@ -2,7 +2,7 @@ package com.fongmi.android.tv.player.extractor;
import com.fongmi.android.tv.player.Source;
public class Sniffer implements Source.Extractor {
public class Video implements Source.Extractor {
@Override
public boolean match(String scheme, String host) {

@ -0,0 +1,35 @@
package com.fongmi.android.tv.server.process;
import com.fongmi.android.tv.server.Nano;
import com.github.catvod.utils.Prefers;
import java.util.Map;
import java.util.Objects;
import fi.iki.elonen.NanoHTTPD;
public class Cache implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return path.equals("/cache");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
Map<String, String> params = session.getParms();
switch (Objects.requireNonNullElse(params.get("do"), "")) {
case "get":
Prefers.getString("cache_" + params.get("key"));
return Nano.success();
case "set":
Prefers.put("cache_" + params.get("key"), params.get("value"));
return Nano.success();
case "delete":
Prefers.remove("cache_" + params.get("key"));
return Nano.success();
default:
return Nano.error(null);
}
}
}
Loading…
Cancel
Save