pull/142/head
FongMi 3 years ago
parent 42b6566006
commit f1ca484f58
  1. 4
      app/build.gradle
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/server/Nano.java
  5. 5
      app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -21,12 +21,12 @@ android {
leanback {
dimension "mode"
versionCode 205
versionName "20230918"
versionName "20230918#2"
}
mobile {
dimension "mode"
versionCode 205
versionName "20230918"
versionName "20230918#2"
}
java {
dimension "api"

@ -535,7 +535,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void seamless(Flag flag, boolean force) {
if (Setting.getFlag() == 1 && (mHistory.isNew() || !force)) return;
Episode episode = flag.find(mHistory.getVodRemarks(), getMark().isEmpty());
setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 0);
setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 1);
if (episode == null || episode.isActivated()) return;
mHistory.setVodRemarks(episode.getName());
setEpisodeActivated(episode);

@ -25,7 +25,8 @@ public class IjkUtil {
public static MediaSource getSource(Map<String, String> headers, String url) {
Uri uri = Uri.parse(url.trim().replace("\\", ""));
if (Sniffer.isAds(uri)) uri = Uri.parse(Server.get().getAddress().concat("/m3u8?url=").concat(URLEncoder.encode(url)));
boolean local = Sniffer.getRegex(uri).size() > 0;
if (local) uri = Uri.parse(Server.get().getAddress().concat("/m3u8?url=").concat(URLEncoder.encode(url)));
return new MediaSource(Utils.checkUa(headers), uri);
}
}

@ -1,6 +1,5 @@
package com.fongmi.android.tv.server;
import android.net.Uri;
import android.util.Base64;
import com.fongmi.android.tv.api.ApiConfig;
@ -10,7 +9,6 @@ import com.fongmi.android.tv.server.process.Action;
import com.fongmi.android.tv.server.process.Local;
import com.fongmi.android.tv.server.process.Process;
import com.fongmi.android.tv.utils.M3U8;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.Init;
import java.io.ByteArrayInputStream;
@ -89,7 +87,6 @@ public class Nano extends NanoHTTPD {
try {
String url = session.getParms().get("url");
String result = M3U8.get(url, session.getHeaders());
for (String ad : Sniffer.getRegex(Uri.parse(url))) result = result.replaceAll(ad, "");
return newChunkedResponse(Response.Status.OK, MIME_PLAINTEXT, new ByteArrayInputStream(result.getBytes(StandardCharsets.UTF_8)));
} catch (Exception e) {
return error(e.getMessage());

@ -35,11 +35,6 @@ public class Sniffer {
return url.split(";")[0].endsWith(".torrent");
}
public static boolean isAds(Uri uri) {
for (String regex : getRegex(uri)) if (regex.contains("#EXTINF")) return true;
return false;
}
public static boolean isVideoFormat(String url) {
return isVideoFormat(url, new HashMap<>());
}

@ -590,7 +590,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void seamless(Flag flag, boolean force) {
if (Setting.getFlag() == 1 && (mHistory.isNew() || !force)) return;
Episode episode = flag.find(mHistory.getVodRemarks(), getMark().isEmpty());
setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 0);
setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 1);
if (episode == null || episode.isActivated()) return;
mHistory.setVodRemarks(episode.getName());
onItemClick(episode);

Loading…
Cancel
Save