diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index 030b56072..9f2791dd2 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -106,7 +106,7 @@ public class App extends Application { } private LogAdapter getLogAdapter() { - return new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().methodCount(0).showThreadInfo(false).tag("").build()) { + return new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().methodCount(0).showThreadInfo(false).tag("TV").build()) { @Override public boolean isLoggable(int priority, String tag) { return true; diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Danmaku.java b/app/src/main/java/com/fongmi/android/tv/bean/Danmaku.java index d59e1ffb5..17db03a96 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Danmaku.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Danmaku.java @@ -2,8 +2,10 @@ package com.fongmi.android.tv.bean; import android.text.TextUtils; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.fongmi.android.tv.App; import com.google.gson.annotations.SerializedName; public class Danmaku { @@ -60,4 +62,10 @@ public class Danmaku { if (!(obj instanceof Danmaku it)) return false; return getUrl().equals(it.getUrl()); } + + @NonNull + @Override + public String toString() { + return App.gson().toJson(this); + } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Drm.java b/app/src/main/java/com/fongmi/android/tv/bean/Drm.java index d4351c6c7..2ef9f57e2 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Drm.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Drm.java @@ -2,9 +2,11 @@ package com.fongmi.android.tv.bean; import android.text.TextUtils; +import androidx.annotation.NonNull; import androidx.media3.common.C; import androidx.media3.common.MediaItem; +import com.fongmi.android.tv.App; import com.github.catvod.utils.Json; import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; @@ -62,4 +64,10 @@ public class Drm { builder.setLicenseUri(getKey()); return builder.build(); } + + @NonNull + @Override + public String toString() { + return App.gson().toJson(this); + } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Sub.java b/app/src/main/java/com/fongmi/android/tv/bean/Sub.java index 4b3a69135..7a9b236e1 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Sub.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Sub.java @@ -3,10 +3,12 @@ package com.fongmi.android.tv.bean; import android.net.Uri; import android.text.TextUtils; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.MediaItem; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.player.exo.ExoUtil; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.utils.Trans; @@ -70,4 +72,10 @@ public class Sub { if (!(obj instanceof Sub it)) return false; return getUrl().equals(it.getUrl()); } + + @NonNull + @Override + public String toString() { + return App.gson().toJson(this); + } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Value.java b/app/src/main/java/com/fongmi/android/tv/bean/Value.java index fc2218b1d..f9401acd4 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Value.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Value.java @@ -17,7 +17,7 @@ public class Value implements Parcelable, Diffable { @SerializedName("v") private String v; - private boolean activated; + private transient boolean activated; public Value() { } diff --git a/app/src/main/java/com/fongmi/android/tv/model/SearchCallable.java b/app/src/main/java/com/fongmi/android/tv/model/SearchCallable.java index e69ccbaa7..d17d0b0ca 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SearchCallable.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SearchCallable.java @@ -41,7 +41,7 @@ public class SearchCallable implements Callable { boolean hasPage = !page.equals("1"); if (site.getType() == 3) { String searchContent = hasPage ? site.spider().searchContent(keyword, quick, page) : site.spider().searchContent(keyword, quick); - SpiderDebug.log(site.getName() + "," + searchContent); + SpiderDebug.log("search", "site=%s,keyword=%s,quick=%s,page=%s\n%s", site.getName(), keyword, quick, page, searchContent.trim()); Result result = Result.fromJson(searchContent); for (Vod vod : result.getList()) vod.setSite(site); return result; @@ -52,7 +52,7 @@ public class SearchCallable implements Callable { params.put("extend", ""); if (hasPage) params.put("pg", page); String searchContent = model.call(site, params); - SpiderDebug.log(site.getName() + "," + searchContent); + SpiderDebug.log("search", "site=%s,keyword=%s,quick=%s,page=%s\n%s", site.getName(), keyword, quick, page, searchContent.trim()); Result result = model.fetchPic(site, Result.fromType(site.getType(), searchContent)); for (Vod vod : result.getList()) vod.setSite(site); return result; diff --git a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java index 4c6fae175..1e6defe21 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java @@ -83,23 +83,23 @@ public class SiteViewModel extends ViewModel { boolean crash = Prefers.getBoolean("crash"); String homeContent = crash ? "" : spider.homeContent(true); Prefers.put("crash", false); - SpiderDebug.log(homeContent); + SpiderDebug.log("home", homeContent); Result result = Result.fromJson(homeContent); if (!result.getList().isEmpty()) return result; String homeVideoContent = spider.homeVideoContent(); - SpiderDebug.log(homeVideoContent); + SpiderDebug.log("homeVideo", homeVideoContent); result.setList(Result.fromJson(homeVideoContent).getList()); return result; } else if (site.getType() == 4) { ArrayMap params = new ArrayMap<>(); params.put("filter", "true"); String homeContent = call(site.fetchExt(), params); - SpiderDebug.log(homeContent); + SpiderDebug.log("home", homeContent); return Result.fromJson(homeContent); } else { try (Response response = OkHttp.newCall(site.getApi(), site.getHeaders()).execute()) { String homeContent = response.body().string(); - SpiderDebug.log(homeContent); + SpiderDebug.log("home", homeContent); return fetchPic(site, Result.fromType(site.getType(), homeContent)); } } @@ -107,12 +107,13 @@ public class SiteViewModel extends ViewModel { } public void categoryContent(String key, String tid, String page, boolean filter, HashMap extend) { + SpiderDebug.log("category", "key=%s,tid=%s,page=%s,filter=%s,extend=%s", key, tid, page, filter, extend); execute(result, () -> { Site site = VodConfig.get().getSite(key); if (site.getType() == 3) { Spider spider = site.recent().spider(); String categoryContent = spider.categoryContent(tid, page, filter, extend); - SpiderDebug.log(categoryContent); + SpiderDebug.log("category", categoryContent); return Result.fromJson(categoryContent); } else { ArrayMap params = new ArrayMap<>(); @@ -122,19 +123,20 @@ public class SiteViewModel extends ViewModel { params.put("t", tid); params.put("pg", page); String categoryContent = call(site, params); - SpiderDebug.log(categoryContent); + SpiderDebug.log("category", categoryContent); return Result.fromType(site.getType(), categoryContent); } }); } public void detailContent(String key, String id) { + SpiderDebug.log("detail", "key=%s,id=%s", key, id); execute(result, () -> { Site site = VodConfig.get().getSite(key); if (site.getType() == 3) { Spider spider = site.recent().spider(); String detailContent = spider.detailContent(Arrays.asList(id)); - SpiderDebug.log(detailContent); + SpiderDebug.log("detail", detailContent); Result result = Result.fromJson(detailContent); if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags(); if (!result.getList().isEmpty()) Source.get().parse(result.getList().get(0).getVodFlags()); @@ -152,7 +154,7 @@ public class SiteViewModel extends ViewModel { params.put("ac", site.getType() == 0 ? "videolist" : "detail"); params.put("ids", id); String detailContent = call(site, params); - SpiderDebug.log(detailContent); + SpiderDebug.log("detail", detailContent); Result result = Result.fromType(site.getType(), detailContent); if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags(); if (!result.getList().isEmpty()) Source.get().parse(result.getList().get(0).getVodFlags()); @@ -162,13 +164,14 @@ public class SiteViewModel extends ViewModel { } public void playerContent(String key, String flag, String id) { + SpiderDebug.log("player", "key=%s,flag=%s,id=%s", key, flag, id); execute(player, () -> { Source.get().stop(); Site site = VodConfig.get().getSite(key); if (site.getType() == 3) { Spider spider = site.recent().spider(); String playerContent = spider.playerContent(flag, id, VodConfig.get().getFlags()); - SpiderDebug.log(playerContent); + SpiderDebug.log("player", playerContent); Result result = Result.fromJson(playerContent); if (result.getFlag().isEmpty()) result.setFlag(flag); result.setUrl(Source.get().fetch(result)); @@ -180,7 +183,7 @@ public class SiteViewModel extends ViewModel { params.put("play", id); params.put("flag", flag); String playerContent = call(site, params); - SpiderDebug.log(playerContent); + SpiderDebug.log("player", playerContent); Result result = Result.fromJson(playerContent); if (result.getFlag().isEmpty()) result.setFlag(flag); result.setUrl(Source.get().fetch(result)); @@ -202,7 +205,7 @@ public class SiteViewModel extends ViewModel { result.setPlayUrl(site.getPlayUrl()); result.setParse(Sniffer.isVideoFormat(url.v()) && result.getPlayUrl().isEmpty() ? 0 : 1); result.setUrl(Source.get().fetch(result)); - SpiderDebug.log(result.toString()); + SpiderDebug.log("player", result.toString()); return result; } }); @@ -220,6 +223,7 @@ public class SiteViewModel extends ViewModel { } public void action(String key, String action) { + SpiderDebug.log("action", "key=%s,action=%s", key, action); execute(this.action, () -> { Site site = VodConfig.get().getSite(key); if (site.getType() == 3) return Result.fromJson(site.recent().spider().action(action)); diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 3f7eebca6..41d56582b 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -494,11 +494,11 @@ public class Players implements Player.Listener, ParseCallback { private void setMediaItem(Map headers, String url, String format, Drm drm, List subs, List danmakus, long timeout) { if (exoPlayer != null) exoPlayer.setMediaItem(ExoUtil.getMediaItem(this.headers = checkUa(headers), UrlUtil.uri(this.url = url), this.format = format, this.drm = drm, checkSub(this.subs = subs), decode)); + Logger.t(TAG).d("headers=%s\nurl=%s\nformat=%s\ndrm=%s\nsubs=%s\ndanmakus=%s\ntimeout=%s", this.headers, url, format, drm, this.subs, danmakus, timeout); if (danPlayer != null) setDanmaku(this.danmakus = danmakus); App.post(runnable, timeout); PlayerEvent.prepare(tag); session.setActive(true); - Logger.t(TAG).d(url); prepare(); } @@ -684,7 +684,6 @@ public class Players implements Player.Listener, ParseCallback { @Override public void onPlayerError(@NonNull PlaybackException error) { - Logger.t(TAG).e(error.errorCode + "," + url); if (retried()) ErrorEvent.extract(tag, provider.get(error)); else switch (error.errorCode) { case PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW: diff --git a/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java b/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java index 8df5723e1..74cc12091 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java +++ b/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java @@ -6,7 +6,6 @@ import com.fongmi.android.tv.App; import com.fongmi.android.tv.bean.Danmaku; import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.utils.ResUtil; -import com.orhanobut.logger.Logger; import java.util.HashMap; @@ -83,7 +82,6 @@ public class DanPlayer implements DrawHandler.Callback { App.execute(() -> { view.release(); if (item.isEmpty()) return; - Logger.t(TAG).d(item.getUrl()); view.prepare(new Parser().load(new Loader(item).getDataSource()), context); }); } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index 5889887e1..126089267 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -28,7 +28,6 @@ import com.fongmi.android.tv.utils.Sniffer; import com.github.catvod.crawler.Spider; import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; -import com.orhanobut.logger.Logger; import java.io.ByteArrayInputStream; import java.util.ArrayList; @@ -193,7 +192,6 @@ public class CustomWebView extends WebView implements DialogInterface.OnDismissL private boolean isVideoFormat(String url) { try { - Logger.t(TAG).d(url); if (!detect && url.equals(this.url)) return false; Spider spider = VodConfig.get().getSite(key).spider(); if (spider.manualVideoCheck()) return spider.isVideoFormat(url); diff --git a/catvod/src/main/java/com/github/catvod/crawler/SpiderDebug.java b/catvod/src/main/java/com/github/catvod/crawler/SpiderDebug.java index 5cfcf7001..bde6e6f9c 100644 --- a/catvod/src/main/java/com/github/catvod/crawler/SpiderDebug.java +++ b/catvod/src/main/java/com/github/catvod/crawler/SpiderDebug.java @@ -15,4 +15,8 @@ public class SpiderDebug { public static void log(String msg) { if (!TextUtils.isEmpty(msg)) Logger.t(TAG).d(msg); } + + public static void log(String tag, String msg, Object... args) { + if (!TextUtils.isEmpty(msg)) Logger.t(tag).d(msg, args); + } }