Update tvbus

pull/594/head
jhengazuki 7 months ago
parent c06a7d3cdd
commit c96fb3574d
  1. BIN
      app/libs/tvbus-release.aar
  2. 41
      app/src/main/java/com/fongmi/android/tv/bean/Core.java
  3. 5
      app/src/main/java/com/fongmi/android/tv/bean/Danmaku.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/bean/EpgData.java
  5. 5
      app/src/main/java/com/fongmi/android/tv/bean/Page.java
  6. 5
      app/src/main/java/com/fongmi/android/tv/bean/Rule.java
  7. 5
      app/src/main/java/com/fongmi/android/tv/bean/Style.java
  8. 5
      app/src/main/java/com/fongmi/android/tv/bean/Sub.java
  9. 4
      app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java
  10. 17
      tvbus/src/main/java/com/tvbus/engine/TVCore.java

Binary file not shown.

@ -2,14 +2,16 @@ package com.fongmi.android.tv.bean;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.utils.UrlUtil;
import com.fongmi.hook.Hook;
import com.github.catvod.net.OkHttp;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import java.util.Collections;
import java.util.List;
public class Core {
@SerializedName("auth")
@ -30,6 +32,14 @@ public class Core {
private String pkg;
@SerializedName("so")
private String so;
@SerializedName("key")
private String key;
@SerializedName("option")
private List<Option> option;
public static Core objectFrom(String str) {
return new Gson().fromJson(str, Core.class);
}
public String getAuth() {
return !getResp().isEmpty() ? Server.get().getAddress("/tvbus") : TextUtils.isEmpty(auth) ? "" : UrlUtil.convert(auth);
@ -67,19 +77,38 @@ public class Core {
return TextUtils.isEmpty(so) ? "" : UrlUtil.convert(so);
}
public List<Option> getOption() {
return option == null ? Collections.emptyList() : option;
}
public Hook getHook() {
return !getPkg().isEmpty() && !getSign().isEmpty() ? new Hook(getSign(), getPkg()) : null;
}
private String getString(String value) {
public static String getString(String value) {
return (value = UrlUtil.convert(value)).startsWith("http") ? OkHttp.string(value) : value;
}
public static class Option {
@SerializedName("key")
private String key;
@SerializedName("values")
private List<String> values;
public String getKey() {
return TextUtils.isEmpty(key) ? "" : key;
}
public List<String> getValues() {
return values == null ? Collections.emptyList() : values;
}
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Core)) return false;
Core it = (Core) obj;
if (!(obj instanceof Core it)) return false;
return getSign().equals(it.getSign());
}
}

@ -55,10 +55,9 @@ public class Danmaku {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Danmaku)) return false;
Danmaku it = (Danmaku) obj;
if (!(obj instanceof Danmaku it)) return false;
return getUrl().equals(it.getUrl());
}
}

@ -102,10 +102,9 @@ public class EpgData {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof EpgData)) return false;
EpgData it = (EpgData) obj;
if (!(obj instanceof EpgData it)) return false;
return getTitle().equals(it.getTitle()) && getEnd().equals(it.getEnd()) && getStart().equals(it.getStart());
}

@ -31,10 +31,9 @@ public class Page {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Page)) return false;
Page it = (Page) obj;
if (!(obj instanceof Page it)) return false;
return getVodId().equals(it.getVodId()) && getPosition() == it.getPosition();
}
}

@ -65,10 +65,9 @@ public class Rule {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Rule)) return false;
Rule it = (Rule) obj;
if (!(obj instanceof Rule it)) return false;
return getName().equals(it.getName());
}
}

@ -78,10 +78,9 @@ public class Style implements Parcelable {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Style)) return false;
Style it = (Style) obj;
if (!(obj instanceof Style it)) return false;
return getType().equals(it.getType()) && getRatio() == it.getRatio();
}

@ -65,10 +65,9 @@ public class Sub {
}
@Override
public boolean equals(@Nullable Object obj) {
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof Sub)) return false;
Sub it = (Sub) obj;
if (!(obj instanceof Sub it)) return false;
return getUrl().equals(it.getUrl());
}
}

@ -35,7 +35,9 @@ public class TVBus implements Source.Extractor, Listener {
private void init(Core core) {
try {
App.get().setHook(core.getHook());
tvcore = new TVCore(getPath(core.getSo())).listener(this).auth(core.getAuth()).name(core.getName()).pass(core.getPass()).domain(core.getDomain()).broker(core.getBroker()).serv(0).play(8902).mode(1).init();
tvcore = new TVCore(getPath(core.getSo())).listener(this).auth(core.getAuth()).name(core.getName()).pass(core.getPass()).domain(core.getDomain()).broker(core.getBroker());
for (Core.Option option : core.getOption()) tvcore.option(option.getKey(), option.getValues());
tvcore.serv(0).play(8902).mode(1).init();
} catch (Exception ignored) {
} finally {
App.get().setHook(null);

@ -1,9 +1,12 @@
package com.tvbus.engine;
import android.content.Context;
import android.text.TextUtils;
import com.github.catvod.Init;
import java.util.List;
public class TVCore implements Runnable {
private final Thread thread;
@ -96,9 +99,17 @@ public class TVCore implements Runnable {
}
}
public TVCore init() {
public void option(String key, List<String> values) {
try {
if (values.isEmpty()) return;
values.removeIf(TextUtils::isEmpty);
for (String value : values) setOption(handle, key, value);
} catch (Throwable ignored) {
}
}
public void init() {
thread.start();
return this;
}
public void start(String url) {
@ -161,4 +172,6 @@ public class TVCore implements Runnable {
private native void setUsername(long handle, String str);
private native void setListener(long handle, Listener listener);
private native void setOption(long handle, String kev, String value);
}
Loading…
Cancel
Save