pull/605/head
jhengazuji 5 months ago
parent 0c034731fd
commit a4c28e1262
  1. 4
      app/src/main/java/com/fongmi/android/tv/api/Decoder.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  4. 2
      app/src/main/java/com/fongmi/android/tv/bean/Channel.java
  5. 4
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  6. 3
      app/src/main/java/com/fongmi/android/tv/bean/Url.java
  7. 8
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java

@ -22,8 +22,8 @@ public class Decoder {
private static final Pattern JS_URI = Pattern.compile("\"(\\.|\\.\\.)/(.?|.+?)\\.js\\?(.?|.+?)\"");
public static String getJson(String url) throws Exception {
try (Response res = OkHttp.newCall(url, "config").execute()) {
public static String getJson(String url, String tag) throws Exception {
try (Response res = OkHttp.newCall(url, tag).execute()) {
HttpUrl httpUrl = res.request().url();
int size = HttpUrl.parse(url).querySize();
if (httpUrl.querySize() == size) url = httpUrl.toString();

@ -41,6 +41,8 @@ import java.util.stream.Collectors;
public class LiveConfig {
private static final String TAG = LiveConfig.class.getSimpleName();
private Live home;
private Config config;
private List<Live> lives;
@ -128,9 +130,9 @@ public class LiveConfig {
private void loadConfig(Callback callback) {
try {
OkHttp.cancel(TAG);
Server.get().start();
OkHttp.cancel("config");
String text = Decoder.getJson(UrlUtil.convert(config.getUrl()));
String text = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG);
if (!Json.isObj(text)) clear().parseText(text, callback);
else checkJson(Json.parse(text).getAsJsonObject(), callback);
config.update();

@ -33,6 +33,8 @@ import java.util.stream.Collectors;
public class VodConfig {
private static final String TAG = VodConfig.class.getSimpleName();
private Site home;
private String wall;
private Parse parse;
@ -129,9 +131,9 @@ public class VodConfig {
private void loadConfig(Callback callback) {
try {
OkHttp.cancel(TAG);
Server.get().start();
OkHttp.cancel("config");
String json = Decoder.getJson(UrlUtil.convert(config.getUrl()));
String json = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG);
checkJson(Json.parse(json).getAsJsonObject(), callback);
config.update();
} catch (Throwable e) {

@ -351,11 +351,11 @@ public class Channel {
public Result result() {
Result result = new Result();
result.setDrm(getDrm());
result.setUrl(getCurrent());
result.setClick(getClick());
result.setParse(getParse());
result.setFormat(getFormat());
result.setHeader(Json.toObject(getHeaders()));
result.setUrl(Url.create().add(getCurrent()));
return result;
}

@ -183,10 +183,6 @@ public class Result implements Parcelable {
return url == null ? Url.create() : url;
}
public void setUrl(Url url) {
this.url = url;
}
public void setUrl(String url) {
this.url = getUrl().replace(url);
}

@ -64,7 +64,8 @@ public class Url {
}
public Url replace(String url) {
getValues().get(getPosition()).setV(url);
if (isEmpty()) add(url);
else getValues().get(getPosition()).setV(url);
return this;
}

@ -14,7 +14,6 @@ import com.fongmi.android.tv.bean.Episode;
import com.fongmi.android.tv.bean.Flag;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Url;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.exception.ExtractException;
import com.fongmi.android.tv.player.Source;
@ -192,20 +191,19 @@ public class SiteViewModel extends ViewModel {
return result;
} else if (site.isEmpty() && "push_agent".equals(key)) {
Result result = new Result();
result.setUrl(id);
result.setParse(0);
result.setFlag(flag);
result.setUrl(Url.create().add(id));
result.setUrl(Source.get().fetch(result));
SpiderDebug.log("player", result.toString());
return result;
} else {
Url url = Url.create().add(id);
Result result = new Result();
result.setUrl(url);
result.setUrl(id);
result.setFlag(flag);
result.setHeader(site.getHeader());
result.setPlayUrl(site.getPlayUrl());
result.setParse(Sniffer.isVideoFormat(url.v()) && result.getPlayUrl().isEmpty() ? 0 : 1);
result.setParse(Sniffer.isVideoFormat(id) && result.getPlayUrl().isEmpty() ? 0 : 1);
result.setUrl(Source.get().fetch(result));
SpiderDebug.log("player", result.toString());
return result;

Loading…
Cancel
Save