From bec51d42fff16e77d6586b2d6d7f5c74be85281d Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 3 Dec 2024 02:17:08 +0800 Subject: [PATCH] Add url-tvg detect for m3u --- app/build.gradle | 2 +- app/src/main/java/com/fongmi/android/tv/api/LiveParser.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 12b011333..efd57fd80 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { //noinspection ExpiredTargetSdkVersion targetSdk 28 versionCode 265 - versionName "1203" + versionName "1203v2" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index a27ed023f..d328287fb 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java @@ -28,7 +28,8 @@ public class LiveParser { private static final Pattern CATCHUP_SOURCE = Pattern.compile(".*catchup-source=\"(.?|.+?)\".*"); private static final Pattern CATCHUP = Pattern.compile(".*catchup=\"(.?|.+?)\".*"); - private static final Pattern TVG_URL = Pattern.compile(".*x-tvg-url=[\"']?([^\"'\\n,]+(?:,[^\"'\\n,]+)*)[\"']?"); + private static final Pattern TVG_URL = Pattern.compile(".*tvg-url=([^\\s]+)"); + private static final Pattern URL_TVG = Pattern.compile(".*url-tvg=([^\\s]+)"); private static final Pattern TVG_NAME = Pattern.compile(".*tvg-name=\"(.?|.+?)\".*"); private static final Pattern TVG_LOGO = Pattern.compile(".*tvg-logo=\"(.?|.+?)\".*"); private static final Pattern GROUP = Pattern.compile(".*group-title=\"(.?|.+?)\".*"); @@ -88,7 +89,8 @@ public class LiveParser { } else if (line.startsWith("#EXTM3U")) { catchup.setType(extract(line, CATCHUP)); catchup.setSource(extract(line, CATCHUP_SOURCE)); - if (live.getEpg().isEmpty()) live.setEpg(extract(line, TVG_URL)); + if (live.getEpg().isEmpty()) live.setEpg(extract(line, TVG_URL).replace("\"", "")); + if (live.getEpg().isEmpty()) live.setEpg(extract(line, URL_TVG).replace("\"", "")); } else if (line.startsWith("#EXTINF:")) { Group group = live.find(Group.create(extract(line, GROUP), live.isPass())); channel = group.find(Channel.create(extract(line, NAME)));