Add file size for magnet

pull/183/head
FongMi 3 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() { public Vod.Flag getFlag() {
return new Vod.Flag(getVodFlag()); return Vod.Flag.create(getVodFlag());
} }
public Vod.Flag.Episode getEpisode() { public Vod.Flag.Episode getEpisode() {
return new Vod.Flag.Episode(getVodRemarks(), getEpisodeUrl()); return Vod.Flag.Episode.create(getVodRemarks(), getEpisodeUrl());
} }
public int getSiteVisible() { public int getSiteVisible() {

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

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

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

@ -13,10 +13,13 @@ import java.io.FileInputStream;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
public class Util { public class Util {
public static final String[] UNITS = new String[]{"bytes", "KB", "MB", "GB", "TB"};
public static String getDeviceId() { public static String getDeviceId() {
return Settings.Secure.getString(Init.context().getContentResolver(), Settings.Secure.ANDROID_ID); return Settings.Secure.getString(Init.context().getContentResolver(), Settings.Secure.ANDROID_ID);
} }
@ -103,4 +106,10 @@ public class Util {
return 0; 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