diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java index 96dc0aab6..f44824df7 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java @@ -1,15 +1,21 @@ package com.fongmi.android.tv.player.extractor; +import android.net.Uri; + import com.fongmi.android.tv.App; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.api.config.LiveConfig; import com.fongmi.android.tv.bean.Core; import com.fongmi.android.tv.exception.ExtractException; import com.fongmi.android.tv.player.Source; +import com.github.catvod.net.OkHttp; +import com.github.catvod.utils.Path; import com.google.gson.JsonObject; import com.tvbus.engine.Listener; import com.tvbus.engine.TVCore; +import java.io.File; + public class TVBus implements Source.Extractor, Listener { private TVCore tvcore; @@ -23,13 +29,24 @@ public class TVBus implements Source.Extractor, Listener { private void init(Core core) { App.get().setHook(core.getHook()); - tvcore = new TVCore(core.getSo()); + tvcore = new TVCore(getPath(core.getSo())); tvcore.auth(core.getAuth()).broker(core.getBroker()); tvcore.name(core.getName()).pass(core.getPass()); tvcore.serv(0).play(8902).mode(1).listener(this); tvcore.init(); } + private String getPath(String url) { + try { + File file = new File(Path.so(), Uri.parse(url).getLastPathSegment()); + if (file.length() < 10240) Path.write(file, OkHttp.newCall(url).execute().body().bytes()); + return file.getAbsolutePath(); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + @Override public String fetch(String url) throws Exception { if (core != null && !core.equals(LiveConfig.get().getHome().getCore())) change();