From c0acf3e9b682f138b0c60aa8486d52ab828d48af Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 29 May 2024 23:13:53 +0800 Subject: [PATCH] Optimize epg catchup --- app/src/main/java/com/fongmi/android/tv/bean/Catchup.java | 7 +++++-- .../java/com/fongmi/android/tv/model/LiveViewModel.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Catchup.java b/app/src/main/java/com/fongmi/android/tv/bean/Catchup.java index 8d0652e48..eb73aea67 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Catchup.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Catchup.java @@ -1,5 +1,6 @@ package com.fongmi.android.tv.bean; +import android.net.Uri; import android.text.TextUtils; import com.google.gson.annotations.SerializedName; @@ -71,10 +72,12 @@ public class Catchup { return getSource().isEmpty(); } - public String format(EpgData data) { + public String format(String url, EpgData data) { String result = getSource(); Matcher matcher = Pattern.compile("(\\$\\{[^}]*\\})").matcher(result); while (matcher.find()) result = result.replace(matcher.group(1), data.format(matcher.group(1))); - return result; + if (!TextUtils.isEmpty(Uri.parse(url).getQuery())) result = result.replace("?", "&"); + if (url.contains("/PLTV/")) url = url.replace("/PLTV/", "/TVOD/"); + return url + result; } } 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 e28dd197e..20f3398c4 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 @@ -80,7 +80,7 @@ public class LiveViewModel extends ViewModel { execute(URL, () -> { item.setMsg(null); Source.get().stop(); - item.setUrl(item.getCurrent() + item.getCatchup().format(data)); + item.setUrl(item.getCatchup().format(item.getCurrent(), data)); return item; }); }