Support new sub format
This commit is contained in:
parent
c821ac5618
commit
39be3de74d
|
|
@ -27,7 +27,7 @@ public class Result {
|
|||
@SerializedName("url")
|
||||
private String url;
|
||||
@SerializedName("sub")
|
||||
private String sub;
|
||||
private List<Sub> sub;
|
||||
@SerializedName("parse")
|
||||
private int parse;
|
||||
@SerializedName("jx")
|
||||
|
|
@ -129,7 +129,7 @@ public class Result {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Result sub(String sub) {
|
||||
public Result sub(List<Sub> sub) {
|
||||
this.sub = sub;
|
||||
return this;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package com.github.catvod.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class Sub {
|
||||
|
||||
@SerializedName("url")
|
||||
private String url;
|
||||
@SerializedName("name")
|
||||
private String name;
|
||||
@SerializedName("lang")
|
||||
private String lang;
|
||||
@SerializedName("format")
|
||||
private String format;
|
||||
|
||||
public static Sub create() {
|
||||
return new Sub();
|
||||
}
|
||||
|
||||
public Sub name(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Sub url(String url) {
|
||||
this.url = url;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Sub lang(String lang) {
|
||||
this.lang = lang;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Sub format(String format) {
|
||||
this.format = format;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Sub ext(String ext) {
|
||||
switch (ext) {
|
||||
case "vtt":
|
||||
return format("text/vtt");
|
||||
case "ass":
|
||||
case "ssa":
|
||||
return format("text/x-ssa");
|
||||
default:
|
||||
return format("application/x-subrip");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import android.text.TextUtils;
|
|||
import com.github.catvod.bean.Class;
|
||||
import com.github.catvod.bean.Filter;
|
||||
import com.github.catvod.bean.Result;
|
||||
import com.github.catvod.bean.Sub;
|
||||
import com.github.catvod.bean.Vod;
|
||||
import com.github.catvod.bean.alist.Drive;
|
||||
import com.github.catvod.bean.alist.Item;
|
||||
|
|
@ -198,17 +199,20 @@ public class AList extends Spider {
|
|||
|
||||
private String findSubs(String path, List<Item> items) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Item item : items) if (Misc.isSub(item.getExt())) sb.append("~~~").append(Trans.get(item.getName())).append("@@@").append(Misc.getSubMimeType(item.getExt())).append("@@@").append(item.getVodId(path));
|
||||
for (Item item : items) if (Misc.isSub(item.getExt())) sb.append("~~~").append(Trans.get(item.getName())).append("@@@").append(item.getExt()).append("@@@").append(item.getVodId(path));
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private String getSub(String[] ids) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
private List<Sub> getSub(String[] ids) {
|
||||
List<Sub> sub = new ArrayList<>();
|
||||
for (String text : ids) {
|
||||
if (!text.contains("@@@")) continue;
|
||||
String[] arr = text.split("@@@");
|
||||
sb.append(arr[0]).append("#").append(arr[1]).append("#").append(getDetail(arr[2]).getUrl()).append("$$$");
|
||||
String[] split = text.split("@@@");
|
||||
String name = split[0];
|
||||
String ext = split[1];
|
||||
String url = getDetail(split[2]).getUrl();
|
||||
sub.add(Sub.create().name(name).ext(ext).url(url));
|
||||
}
|
||||
return Misc.substring(sb.toString(), 3);
|
||||
return sub;
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import android.widget.FrameLayout;
|
|||
import android.widget.ImageView;
|
||||
|
||||
import com.github.catvod.bean.Result;
|
||||
import com.github.catvod.bean.Sub;
|
||||
import com.github.catvod.bean.Vod;
|
||||
import com.github.catvod.bean.ali.Data;
|
||||
import com.github.catvod.bean.ali.Item;
|
||||
|
|
@ -90,7 +91,7 @@ public class Ali {
|
|||
String shareId = ids[0];
|
||||
String shareToken = ids[1];
|
||||
String fileId = ids[2];
|
||||
String sub = getSub(shareId, shareToken, ids);
|
||||
List<Sub> sub = getSub(shareId, shareToken, ids);
|
||||
if (System.currentTimeMillis() > expiresTime) refreshAccessToken();
|
||||
while (TextUtils.isEmpty(authorization)) SystemClock.sleep(250);
|
||||
if (flag.equals("原畫")) {
|
||||
|
|
@ -151,7 +152,7 @@ public class Ali {
|
|||
} else if (Misc.isSub(file.getExt())) {
|
||||
String key = file.removeExt();
|
||||
if (!subMap.containsKey(key)) subMap.put(key, new ArrayList<>());
|
||||
subMap.get(key).add(key + "@@@" + file.getFileId() + "@@@" + file.getExt());
|
||||
subMap.get(key).add(key + "@@@" + file.getExt() + "@@@" + file.getFileId());
|
||||
}
|
||||
}
|
||||
if (item.getNextMarker().length() > 0) {
|
||||
|
|
@ -205,15 +206,17 @@ public class Ali {
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
private String getSub(String shareId, String shareToken, String[] ids) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
private List<Sub> getSub(String shareId, String shareToken, String[] ids) {
|
||||
List<Sub> sub = new ArrayList<>();
|
||||
for (String text : ids) {
|
||||
if (!text.contains("@@@")) continue;
|
||||
String[] arr = text.split("@@@");
|
||||
String url = Proxy.getUrl() + "?do=ali&type=sub&share_id=" + shareId + "&share_token=" + shareToken + "&file_id=" + arr[1];
|
||||
sb.append(Trans.get(arr[0])).append("#").append(Misc.getSubMimeType(arr[2])).append("#").append(url).append("$$$");
|
||||
String[] split = text.split("@@@");
|
||||
String name = split[0];
|
||||
String ext = split[1];
|
||||
String url = Proxy.getUrl() + "?do=ali&type=sub&share_id=" + shareId + "&share_token=" + shareToken + "&file_id=" + split[2];
|
||||
sub.add(Sub.create().name(name).ext(ext).url(url));
|
||||
}
|
||||
return Misc.substring(sb.toString(), 3);
|
||||
return sub;
|
||||
}
|
||||
|
||||
private String getShareToken(String shareId) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.github.catvod.utils;
|
|||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
|
@ -41,12 +40,6 @@ public class Misc {
|
|||
return ext.equals("srt") || ext.equals("ass") || ext.equals("ssa");
|
||||
}
|
||||
|
||||
public static String getSubMimeType(String type) {
|
||||
if (type.equals("srt")) return "application/x-subrip";
|
||||
if (type.equals("ass") || type.equals("ssa")) return "text/x-ssa";
|
||||
return "application/x-subrip";
|
||||
}
|
||||
|
||||
public static String getSize(double size) {
|
||||
if (size == 0) return "";
|
||||
if (size > 1024 * 1024 * 1024 * 1024.0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue