Add file size for magnet

pull/183/head
FongMi 2 years ago
parent f06b33dc6b
commit 178cf5e5e4
  1. 4
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  2. 28
      app/src/main/java/com/fongmi/android/tv/bean/Vod.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java
  5. 9
      catvod/src/main/java/com/github/catvod/utils/Util.java

@ -226,11 +226,11 @@ public class History {
}
public Vod.Flag getFlag() {
return new Vod.Flag(getVodFlag());
return Vod.Flag.create(getVodFlag());
}
public Vod.Flag.Episode getEpisode() {
return new Vod.Flag.Episode(getVodRemarks(), getEpisodeUrl());
return Vod.Flag.Episode.create(getVodRemarks(), getEpisodeUrl());
}
public int getSiteVisible() {

@ -89,7 +89,8 @@ public class Vod {
private Site site;
public static List<Vod> arrayFrom(String str) {
Type listType = new TypeToken<List<Vod>>() {}.getType();
Type listType = new TypeToken<List<Vod>>() {
}.getType();
List<Vod> items = new Gson().fromJson(str, listType);
return items == null ? Collections.emptyList() : items;
}
@ -231,11 +232,11 @@ public class Vod {
String[] playUrls = getVodPlayUrl().split("\\$\\$\\$");
for (int i = 0; i < playFlags.length; i++) {
if (playFlags[i].isEmpty() || i >= playUrls.length) continue;
Vod.Flag item = new Vod.Flag(playFlags[i].trim());
Flag item = Flag.create(playFlags[i].trim());
item.createEpisode(playUrls[i]);
getVodFlags().add(item);
}
for (Vod.Flag item : getVodFlags()) {
for (Flag item : getVodFlags()) {
if (item.getUrls() == null) continue;
item.createEpisode(item.getUrls());
}
@ -265,6 +266,10 @@ public class Vod {
private boolean activated;
private int position;
public static Flag create(String flag) {
return new Flag(flag);
}
public Flag() {
this.episodes = new ArrayList<>();
this.position = -1;
@ -348,7 +353,7 @@ public class Vod {
}
public static List<Flag> create(String flag, String name, String url) {
Vod.Flag item = new Vod.Flag(flag);
Flag item = Flag.create(flag);
item.getEpisodes().add(Episode.create(name, url));
return List.of(item);
}
@ -371,6 +376,8 @@ public class Vod {
@SerializedName("name")
private String name;
@SerializedName("desc")
private String desc;
@SerializedName("url")
private String url;
@ -378,7 +385,11 @@ public class Vod {
private boolean activated;
public static Episode create(String name, String url) {
return new Episode(name, url);
return new Episode(name, "", url);
}
public static Episode create(String name, String desc, String url) {
return new Episode(name, desc, url);
}
public static Episode objectFrom(String str) {
@ -391,9 +402,10 @@ public class Vod {
return items == null ? Collections.emptyList() : items;
}
public Episode(String name, String url) {
public Episode(String name, String desc, String url) {
this.number = Utils.getDigit(name);
this.name = Trans.s2t(name);
this.desc = Trans.s2t(desc);
this.url = url;
}
@ -405,6 +417,10 @@ public class Vod {
this.name = name;
}
public String getDesc() {
return desc;
}
public String getUrl() {
return url;
}

@ -45,7 +45,7 @@ public class Magnet implements Callable<List<Vod.Flag.Episode>> {
if (torrent) Download.create(url, taskId.getSaveFile()).start();
else while (XLTaskHelper.get().getTaskInfo(taskId).getTaskStatus() != 2 && time < 5000) sleep();
List<TorrentFileInfo> medias = XLTaskHelper.get().getTorrentInfo(taskId.getSaveFile()).getMedias(ads);
for (TorrentFileInfo media : medias) episodes.add(Vod.Flag.Episode.create(media.getFileName(), media.getPlayUrl()));
for (TorrentFileInfo media : medias) episodes.add(Vod.Flag.Episode.create(media.getFileName(), media.getSize(), media.getPlayUrl()));
XLTaskHelper.get().stopTask(taskId);
return episodes;
}

@ -105,10 +105,10 @@ public class EpisodeAdapter extends RecyclerView.Adapter<EpisodeAdapter.ViewHold
}
void initView(TextView view, Vod.Flag.Episode item, boolean ems) {
view.setText(item.getName());
view.setSelected(item.isActivated());
view.setActivated(item.isActivated());
if (ems) view.setMaxEms(Product.getEms());
view.setText(item.getDesc().concat(item.getName()));
view.setOnClickListener(v -> mListener.onItemClick(item));
}
}

@ -13,10 +13,13 @@ import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
public class Util {
public static final String[] UNITS = new String[]{"bytes", "KB", "MB", "GB", "TB"};
public static String getDeviceId() {
return Settings.Secure.getString(Init.context().getContentResolver(), Settings.Secure.ANDROID_ID);
}
@ -103,4 +106,10 @@ public class Util {
return 0;
}
}
public static String size(long size) {
if (size <= 0) return "";
int group = (int) (Math.log10(size) / Math.log10(1024));
return "[" + new DecimalFormat("###0.#").format(size / Math.pow(1024, group)) + " " + UNITS[group] + "] ";
}
}

Loading…
Cancel
Save