From 32294e73bedfbfa1b4fc21e85411575f6cf7f150 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 26 Feb 2025 19:59:16 +0800 Subject: [PATCH] Fix bug --- .../java/com/fongmi/android/tv/api/EpgParser.java | 1 - .../main/java/com/fongmi/android/tv/bean/Channel.java | 2 +- .../main/java/com/fongmi/android/tv/bean/Live.java | 11 +++++++++++ .../com/fongmi/android/tv/model/LiveViewModel.java | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java index 5d4329568..0d4d21c77 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java @@ -32,7 +32,6 @@ public class EpgParser { private static final SimpleDateFormat formatFull = new SimpleDateFormat("yyyyMMddHHmmss Z", Locale.getDefault()); public static boolean start(Live live, String url) throws Exception { - if (!url.contains("xml") && !url.contains("gz")) return false; File file = Path.epg(Uri.parse(url).getLastPathSegment()); if (shouldDownload(file)) Download.create(url, file).start(); if (file.getName().endsWith(".gz")) readGzip(live, file); diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index 10c485365..64bb5c479 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -326,7 +326,7 @@ public class Channel { if (!live.getOrigin().isEmpty() && getOrigin().isEmpty()) setOrigin(live.getOrigin()); if (!live.getCatchup().isEmpty() && getCatchup().isEmpty()) setCatchup(live.getCatchup()); if (!live.getReferer().isEmpty() && getReferer().isEmpty()) setReferer(live.getReferer()); - if (live.getEpg().contains("{") && !getEpg().startsWith("http")) setEpg(live.getEpg().replace("{name}", getTvgName()).replace("{epg}", getEpg())); + if (live.getEpg().contains("{") && !getEpg().startsWith("http")) setEpg(live.getEpgApi().replace("{name}", getTvgName()).replace("{epg}", getEpg())); if (live.getLogo().contains("{") && !getLogo().startsWith("http")) setLogo(live.getLogo().replace("{name}", getTvgName()).replace("{logo}", getLogo())); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index 78429620a..88ee2df41 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -275,6 +275,17 @@ public class Live { this.width = width; } + public String getEpgApi() { + for (String url : getEpg().split(",")) if (url.contains("{")) return url; + return getEpg(); + } + + public List getEpgXml() { + List items = new ArrayList<>(); + for (String epg : getEpg().split(",")) if (!epg.contains("{") && (epg.contains("xml") || epg.contains("gz"))) items.add(epg); + return items; + } + public boolean isEmpty() { return getName().isEmpty(); } diff --git a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java index a313a8a60..e508b4702 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/LiveViewModel.java @@ -68,7 +68,7 @@ public class LiveViewModel extends ViewModel { public void getXml(Live item) { execute(XML, () -> { boolean result = false; - for (String url : item.getEpg().split(",")) if (EpgParser.start(item, url)) result = true; + for (String url : item.getEpgXml()) if (EpgParser.start(item, url)) result = true; return result; }); }