|
|
|
|
@ -53,9 +53,8 @@ public class LiveParser { |
|
|
|
|
public static void text(Live live, String text) { |
|
|
|
|
int number = 0; |
|
|
|
|
if (!live.getGroups().isEmpty()) return; |
|
|
|
|
if (M3U.matcher(text).find()) m3u(live, text); |
|
|
|
|
else if (live.isXtream()) xtream(live); |
|
|
|
|
else txt(live, text); |
|
|
|
|
if (M3U.matcher(text).find()) m3u(live, text); else txt(live, text); |
|
|
|
|
if (live.isXtream()) xtream(live); |
|
|
|
|
for (Group group : live.getGroups()) { |
|
|
|
|
for (Channel channel : group.getChannel()) { |
|
|
|
|
channel.setNumber(++number); |
|
|
|
|
@ -112,10 +111,11 @@ public class LiveParser { |
|
|
|
|
|
|
|
|
|
private static void xtream(Live live) { |
|
|
|
|
XInfo info = XtreamParser.getInfo(live); |
|
|
|
|
live.setTimeZone(info.getServerInfo().getTimezone()); |
|
|
|
|
List<XStream> streamList = XtreamParser.getStreamList(live); |
|
|
|
|
if (live.getEpg().isEmpty()) live.setEpg(XtreamParser.getEpgUrl(live)); |
|
|
|
|
if (live.getTimeZone().isEmpty()) live.setTimeZone(info.getServerInfo().getTimezone()); |
|
|
|
|
if (!live.getGroups().isEmpty()) return; |
|
|
|
|
List<XCategory> categoryList = XtreamParser.getCategoryList(live); |
|
|
|
|
List<String> formats = info.getUserInfo().getAllowedOutputFormats(); |
|
|
|
|
List<XStream> streamList = XtreamParser.getStreamList(live); |
|
|
|
|
Map<String, String> categoryMap = new HashMap<>(); |
|
|
|
|
for (XCategory category : categoryList) { |
|
|
|
|
categoryMap.put(category.getCategoryId(), category.getCategoryName()); |
|
|
|
|
@ -126,8 +126,7 @@ public class LiveParser { |
|
|
|
|
Channel channel = group.find(Channel.create(stream.getName())); |
|
|
|
|
if (!stream.getStreamIcon().isEmpty()) channel.setLogo(stream.getStreamIcon()); |
|
|
|
|
if (!stream.getEpgChannelId().isEmpty()) channel.setTvgName(stream.getEpgChannelId()); |
|
|
|
|
if (formats.isEmpty()) channel.getUrls().add(XtreamParser.getPlayUrl(live, stream.getStreamId(), "ts")); |
|
|
|
|
for (String format : formats) channel.getUrls().add(XtreamParser.getPlayUrl(live, stream.getStreamId(), format)); |
|
|
|
|
channel.getUrls().addAll(stream.getPlayUrl(live, info.getUserInfo().getAllowedOutputFormats())); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -151,7 +150,8 @@ public class LiveParser { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static String getText(Live live) { |
|
|
|
|
return XtreamParser.isApiUrl(live.getUrl()) ? "" : getText(live.getUrl(), live.getHeaders()).replace("\r\n", "\n"); |
|
|
|
|
if (live.isXtream() && !XtreamParser.isGetUrl(live.getUrl())) return ""; |
|
|
|
|
return getText(live.getUrl(), live.getHeaders()).replace("\r\n", "\n"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static String getText(String url, Map<String, String> header) { |
|
|
|
|
|