pull/590/head
FongMi 8 months ago
parent a2c8779872
commit 4ee089eae1
  1. 6
      app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/player/Source.java
  3. 25
      app/src/main/java/com/fongmi/android/tv/player/extractor/Proxy.java
  4. 9
      app/src/main/java/com/fongmi/android/tv/server/Server.java
  5. 12
      app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java

@ -14,8 +14,8 @@ import com.fongmi.android.tv.impl.Callback;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Asset;
import com.github.catvod.utils.Path;
import java.io.File;
@ -85,9 +85,7 @@ public class WallConfig {
}
private File write(File file) throws Exception {
if (getUrl().startsWith("file")) Path.copy(Path.local(getUrl()), file);
else if (getUrl().startsWith("assets")) Path.copy(Asset.open(getUrl()), file);
else if (getUrl().startsWith("http")) Path.write(file, OkHttp.newCall(getUrl()).execute().body().bytes());
Path.write(file, OkHttp.newCall(UrlUtil.convert(getUrl())).execute().body().bytes());
return resize(file);
}

@ -7,6 +7,7 @@ import com.fongmi.android.tv.bean.Flag;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.player.extractor.Force;
import com.fongmi.android.tv.player.extractor.JianPian;
import com.fongmi.android.tv.player.extractor.Proxy;
import com.fongmi.android.tv.player.extractor.Push;
import com.fongmi.android.tv.player.extractor.TVBus;
import com.fongmi.android.tv.player.extractor.Thunder;
@ -39,6 +40,7 @@ public class Source {
extractors = new ArrayList<>();
extractors.add(new Force());
extractors.add(new JianPian());
extractors.add(new Proxy());
extractors.add(new Push());
extractors.add(new Thunder());
extractors.add(new TVBus());

@ -0,0 +1,25 @@
package com.fongmi.android.tv.player.extractor;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.utils.UrlUtil;
public class Proxy implements Source.Extractor {
@Override
public boolean match(String scheme, String host) {
return scheme.equals("proxy");
}
@Override
public String fetch(String url) throws Exception {
return UrlUtil.convert(url);
}
@Override
public void stop() {
}
@Override
public void exit() {
}
}

@ -52,18 +52,17 @@ public class Server {
public void start() {
if (nano != null) return;
do {
while (port < 9999) {
try {
nano = new Nano(port);
Proxy.set(port);
nano.start();
break;
return;
} catch (Exception e) {
++port;
nano.stop();
nano = null;
port++;
}
} while (port < 9999);
}
}
public void stop() {

@ -1,6 +1,7 @@
package com.fongmi.android.tv.utils;
import android.net.Uri;
import android.util.Log;
import com.fongmi.android.tv.server.Server;
import com.github.catvod.utils.UriUtil;
@ -41,11 +42,12 @@ public class UrlUtil {
public static String convert(String url) {
String scheme = scheme(url);
if ("local".equals(scheme)) return url.replace("local://", Server.get().getAddress("/"));
if ("assets".equals(scheme)) return url.replace("assets://", Server.get().getAddress("/"));
if ("file".equals(scheme)) return url.replace("file://", Server.get().getAddress("/file/"));
if ("proxy".equals(scheme)) return url.replace("proxy://", Server.get().getAddress("/proxy?"));
return url;
String path = null;
if ("file".equals(scheme)) path = "/file/";
else if ("proxy".equals(scheme)) path = "/proxy?";
else if ("local".equals(scheme) || "assets".equals(scheme)) path = "/";
if (path != null) Log.e("DDD", url.replace(scheme + "://", Server.get().getAddress(path)));
return path != null ? url.replace(scheme + "://", Server.get().getAddress(path)) : url;
}
public static String fixHeader(String key) {

Loading…
Cancel
Save