Fix xml epg extract

pull/586/head
FongMi 1 year ago
parent 785575aabd
commit 6eff92e20b
  1. 11
      app/src/main/java/com/fongmi/android/tv/api/LiveParser.java

@ -31,8 +31,8 @@ public class LiveParser {
private static final Pattern CATCHUP = Pattern.compile(".*catchup=\"(.?|.+?)\".*");
private static final Pattern TVG_LOGO = Pattern.compile(".*tvg-logo=\"(.?|.+?)\".*");
private static final Pattern TVG_NAME = Pattern.compile(".*tvg-name=\"(.?|.+?)\".*");
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_URL = Pattern.compile(".*tvg-url=\"(.?|.+?)\".*");
private static final Pattern URL_TVG = Pattern.compile(".*url-tvg=\"(.?|.+?)\".*");
private static final Pattern GROUP = Pattern.compile(".*group-title=\"(.?|.+?)\".*");
private static final Pattern NAME = Pattern.compile(".*,(.+?)$");
private static final Pattern M3U = Pattern.compile("#EXTM3U|#EXTINF");
@ -43,6 +43,12 @@ public class LiveParser {
return "";
}
private static String extract(String line, String... keywords) {
String[] splits = line.split(" ");
for (String split : splits) for (String keyword : keywords) if (split.contains(keyword)) return split.split("=")[1].replace("\"", "");
return "";
}
public static void start(Live live) throws Exception {
if (!live.getGroups().isEmpty()) return;
if (live.getType() == 0) text(live, getText(live));
@ -92,6 +98,7 @@ public class LiveParser {
catchup.setSource(extract(line, CATCHUP_SOURCE));
if (live.getEpg().isEmpty()) live.setEpg(extract(line, TVG_URL).replace("\"", ""));
if (live.getEpg().isEmpty()) live.setEpg(extract(line, URL_TVG).replace("\"", ""));
if (live.getEpg().isEmpty()) live.setEpg(extract(line, "tvg-url=", "url-tvg="));
} else if (line.startsWith("#EXTINF:")) {
Group group = live.find(Group.create(extract(line, GROUP), live.isPass()));
channel = group.find(Channel.create(extract(line, NAME)));

Loading…
Cancel
Save