Add timeout for thunder

pull/137/head
FongMi 2 years ago
parent 6bc849f82e
commit c334f91949
  1. 8
      app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java

@ -19,6 +19,7 @@ import java.util.concurrent.Future;
public class Magnet implements Callable<List<Vod.Flag.Episode>> {
private final String url;
private int time;
public static Magnet get(String url) {
return new Magnet(url);
@ -28,6 +29,11 @@ public class Magnet implements Callable<List<Vod.Flag.Episode>> {
this.url = url;
}
private void sleep() {
SystemClock.sleep(10);
time += 10;
}
@Override
public List<Vod.Flag.Episode> call() {
boolean torrent = Sniffer.isTorrent(url);
@ -35,7 +41,7 @@ public class Magnet implements Callable<List<Vod.Flag.Episode>> {
GetTaskId taskId = XLTaskHelper.get().parse(url, Path.thunder(Util.md5(url)));
if (!torrent && !taskId.getRealUrl().startsWith("magnet")) return List.of(Vod.Flag.Episode.create(taskId.getFileName(), taskId.getRealUrl()));
if (torrent) Download.create(url, taskId.getSaveFile()).start();
else while (XLTaskHelper.get().getTaskInfo(taskId).getTaskStatus() != 2) SystemClock.sleep(10);
else while (XLTaskHelper.get().getTaskInfo(taskId).getTaskStatus() != 2 && time < 5000) sleep();
List<TorrentFileInfo> medias = XLTaskHelper.get().getTorrentInfo(taskId.getSaveFile()).getMedias();
for (TorrentFileInfo media : medias) episodes.add(Vod.Flag.Episode.create(media.getFileName(), media.getPlayUrl()));
XLTaskHelper.get().stopTask(taskId);

Loading…
Cancel
Save