Optimize epg catchup

release
FongMi 2 years ago
parent 3fd5e38ef5
commit dc12136b1a
  1. 5
      app/src/main/java/com/fongmi/android/tv/api/LiveParser.java
  2. 24
      app/src/main/java/com/fongmi/android/tv/bean/Catchup.java

@ -82,7 +82,10 @@ public class LiveParser {
channel = group.find(Channel.create(extract(line, NAME)));
channel.setTvgName(extract(line, TVG_NAME));
channel.setLogo(extract(line, TVG_LOGO));
channel.setCatchup(catchup);
Catchup unknown = Catchup.create();
unknown.setType(extract(line, CATCHUP));
unknown.setSource(extract(line, CATCHUP_SOURCE));
channel.setCatchup(Catchup.decide(unknown, catchup));
} else if (!line.startsWith("#") && line.contains("://")) {
String[] split = line.split("\\|");
if (split.length > 1) setting.headers(Arrays.copyOfRange(split, 1, split.length));

@ -32,6 +32,12 @@ public class Catchup {
return new Catchup();
}
public static Catchup decide(Catchup major, Catchup minor) {
if (!major.isEmpty()) return major;
if (!minor.isEmpty()) return minor;
return null;
}
public String getType() {
return TextUtils.isEmpty(type) ? "" : type;
}
@ -72,12 +78,24 @@ public class Catchup {
return getSource().isEmpty();
}
private boolean isAppend() {
return getType().equals("append");
}
private boolean isDefault() {
return getType().equals("default");
}
private String format(String url, String result) {
if (!TextUtils.isEmpty(Uri.parse(url).getQuery())) result = result.replace("?", "&");
if (url.contains("/PLTV/")) url = url.replace("/PLTV/", "/TVOD/");
return url + result;
}
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)));
if (!TextUtils.isEmpty(Uri.parse(url).getQuery())) result = result.replace("?", "&");
if (url.contains("/PLTV/")) url = url.replace("/PLTV/", "/TVOD/");
return url + result;
return isDefault() ? result : format(url, result);
}
}

Loading…
Cancel
Save