pull/590/head
FongMi 10 months ago
parent 2ed9803b15
commit fbee98af4f
  1. 1
      app/src/main/java/com/fongmi/android/tv/server/Nano.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/server/impl/Process.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/server/process/Action.java
  4. 6
      app/src/main/java/com/fongmi/android/tv/server/process/Cache.java
  5. 14
      app/src/main/java/com/fongmi/android/tv/server/process/Local.java
  6. 6
      app/src/main/java/com/fongmi/android/tv/server/process/Media.java
  7. 10
      app/src/main/java/com/fongmi/android/tv/server/process/Parse.java
  8. 7
      app/src/main/java/com/fongmi/android/tv/server/process/Proxy.java

@ -61,7 +61,6 @@ public class Nano extends NanoHTTPD {
String url = session.getUri().trim();
Map<String, String> files = new HashMap<>();
if (session.getMethod() == Method.POST) parse(session, files);
if (url.contains("?")) url = url.substring(0, url.indexOf('?'));
if (url.startsWith("/tvbus")) return ok(LiveConfig.getResp());
if (url.startsWith("/device")) return ok(Device.get().toString());
for (Process process : process) if (process.isRequest(session, url)) return process.doResponse(session, url, files);

@ -6,7 +6,7 @@ import fi.iki.elonen.NanoHTTPD;
public interface Process {
boolean isRequest(NanoHTTPD.IHTTPSession session, String path);
boolean isRequest(NanoHTTPD.IHTTPSession session, String url);
NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files);
NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files);
}

@ -30,12 +30,12 @@ import okhttp3.FormBody;
public class Action implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return "/action".equals(path);
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/action");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
Map<String, String> params = session.getParms();
String param = params.get("do");
if ("file".equals(param)) onFile(params);

@ -13,8 +13,8 @@ import fi.iki.elonen.NanoHTTPD;
public class Cache implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return "/cache".equals(path);
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/cache");
}
private String getKey(String rule, String key) {
@ -22,7 +22,7 @@ public class Cache implements Process {
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
Map<String, String> params = session.getParms();
String action = params.get("do");
String rule = params.get("rule");

@ -28,16 +28,16 @@ public class Local implements Process {
}
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return path.startsWith("/file") || path.startsWith("/upload") || path.startsWith("/newFolder") || path.startsWith("/delFolder") || path.startsWith("/delFile");
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/file") || url.startsWith("/upload") || url.startsWith("/newFolder") || url.startsWith("/delFolder") || url.startsWith("/delFile");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
if (path.startsWith("/file")) return getFile(session.getHeaders(), path);
if (path.startsWith("/upload")) return upload(session.getParms(), files);
if (path.startsWith("/newFolder")) return newFolder(session.getParms());
if (path.startsWith("/delFolder") || path.startsWith("/delFile")) return delFolder(session.getParms());
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
if (url.startsWith("/file")) return getFile(session.getHeaders(), url);
if (url.startsWith("/upload")) return upload(session.getParms(), files);
if (url.startsWith("/newFolder")) return newFolder(session.getParms());
if (url.startsWith("/delFolder") || url.startsWith("/delFile")) return delFolder(session.getParms());
return null;
}

@ -18,12 +18,12 @@ import fi.iki.elonen.NanoHTTPD;
public class Media implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return "/media".equals(path);
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/media");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
if (isNull()) return Nano.ok("{}");
JsonObject result = new JsonObject();
result.addProperty("url", getUrl());

@ -11,17 +11,15 @@ import fi.iki.elonen.NanoHTTPD;
public class Parse implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return "/parse".equals(path);
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/parse");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
try {
Map<String, String> params = session.getParms();
String jxs = params.get("jxs");
String url = params.get("url");
String html = String.format(Asset.read("parse.html"), jxs, url);
String html = String.format(Asset.read("parse.html"), params.get("jxs"), params.get("url"));
return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.OK, NanoHTTPD.MIME_HTML, html);
} catch (Exception e) {
return Nano.error(e.getMessage());

@ -12,15 +12,16 @@ import fi.iki.elonen.NanoHTTPD;
public class Proxy implements Process {
@Override
public boolean isRequest(NanoHTTPD.IHTTPSession session, String path) {
return "/proxy".equals(path);
public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) {
return url.startsWith("/proxy");
}
@Override
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String path, Map<String, String> files) {
public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map<String, String> files) {
try {
Map<String, String> params = session.getParms();
params.putAll(session.getHeaders());
params.putAll(files);
Object[] rs = BaseLoader.get().proxyLocal(params);
if (rs[0] instanceof NanoHTTPD.Response) return (NanoHTTPD.Response) rs[0];
NanoHTTPD.Response response = NanoHTTPD.newChunkedResponse(NanoHTTPD.Response.Status.lookup((Integer) rs[0]), (String) rs[1], (InputStream) rs[2]);

Loading…
Cancel
Save