Fix ali cache

This commit is contained in:
FongMi 2023-03-09 14:33:46 +08:00
parent 4c48839c67
commit aa126312e4
4 changed files with 21 additions and 16 deletions

View File

@ -68,7 +68,7 @@ public class API {
} }
public void setRefreshToken(String token) { public void setRefreshToken(String token) {
auth.setRefreshToken(token); if (auth.getRefreshToken().isEmpty()) auth.setRefreshToken(token);
} }
public void setShareId(String shareId) { public void setShareId(String shareId) {
@ -148,10 +148,6 @@ public class API {
if (auth.getAccessToken().isEmpty()) refreshAccessToken(); if (auth.getAccessToken().isEmpty()) refreshAccessToken();
} }
public void checkAccessTokenOpen() {
if (auth.getAccessTokenOpen().isEmpty()) refreshAccessTokenOpen();
}
private void checkSignature() { private void checkSignature() {
if (auth.getSignature().isEmpty()) refreshSignature(); if (auth.getSignature().isEmpty()) refreshSignature();
} }
@ -256,7 +252,7 @@ public class API {
public Vod getVod(String url, String fileId) throws Exception { public Vod getVod(String url, String fileId) throws Exception {
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("share_id", shareId); body.put("share_id", shareId);
String json = API.get().post("adrive/v3/share_link/get_share_by_anonymous", body); String json = post("adrive/v3/share_link/get_share_by_anonymous", body);
JSONObject object = new JSONObject(json); JSONObject object = new JSONObject(json);
List<Item> files = new ArrayList<>(); List<Item> files = new ArrayList<>();
LinkedHashMap<String, List<String>> subMap = new LinkedHashMap<>(); LinkedHashMap<String, List<String>> subMap = new LinkedHashMap<>();
@ -290,7 +286,7 @@ public class API {
body.put("order_by", "name"); body.put("order_by", "name");
body.put("order_direction", "ASC"); body.put("order_direction", "ASC");
if (marker.length() > 0) body.put("marker", marker); if (marker.length() > 0) body.put("marker", marker);
Item item = Item.objectFrom(API.get().auth("adrive/v3/file/list", body, true)); Item item = Item.objectFrom(auth("adrive/v3/file/list", body, true));
for (Item file : item.getItems()) { for (Item file : item.getItems()) {
if (file.getType().equals("folder")) { if (file.getType().equals("folder")) {
folders.add(file); folders.add(file);
@ -354,16 +350,15 @@ public class API {
public String getDownloadUrl(String fileId) { public String getDownloadUrl(String fileId) {
try { try {
checkAccessTokenOpen(); fileId = copy(fileId);
return openFile(copy(fileId)); return TextUtils.isEmpty(fileId) ? "" : open(fileId);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return ""; return "";
} }
} }
private String openFile(String fileId) throws Exception { private String open(String fileId) throws Exception {
if (TextUtils.isEmpty(fileId)) return "";
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("file_id", fileId); body.put("file_id", fileId);
body.put("drive_id", auth.getDriveId()); body.put("drive_id", auth.getDriveId());
@ -387,7 +382,7 @@ public class API {
public Object[] proxySub(Map<String, String> params) { public Object[] proxySub(Map<String, String> params) {
String fileId = params.get("file_id"); String fileId = params.get("file_id");
String text = OkHttp.string(getDownloadUrl(fileId), API.get().getHeaderAuth()); String text = OkHttp.string(getDownloadUrl(fileId), getHeaderAuth());
Object[] result = new Object[3]; Object[] result = new Object[3];
result[0] = 200; result[0] = 200;
result[1] = "application/octet-stream"; result[1] = "application/octet-stream";
@ -504,8 +499,8 @@ public class API {
private void setToken(String value) { private void setToken(String value) {
Init.show("請重新進入播放頁"); Init.show("請重新進入播放頁");
auth.setRefreshToken(value); auth.setRefreshToken(value);
refreshAccessToken();
stopService(); stopService();
auth.save();
} }
private void stopService() { private void stopService() {

View File

@ -4,21 +4,30 @@ import android.text.TextUtils;
import com.github.catvod.utils.Prefers; import com.github.catvod.utils.Prefers;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
public class Auth { public class Auth {
@SerializedName("refreshToken")
private String refreshToken; private String refreshToken;
@SerializedName("refreshTokenOpen")
private String refreshTokenOpen; private String refreshTokenOpen;
@SerializedName("accessToken")
private String accessToken; private String accessToken;
@SerializedName("accessTokenOpen")
private String accessTokenOpen; private String accessTokenOpen;
@SerializedName("signature")
private String signature; private String signature;
@SerializedName("deviceId")
private String deviceId; private String deviceId;
@SerializedName("userId")
private String userId; private String userId;
@SerializedName("driveId")
private String driveId; private String driveId;
public static Auth objectFrom(String str) { public static Auth objectFrom(String str) {
if (TextUtils.isEmpty(str)) return new Auth(); Auth item = new Gson().fromJson(str, Auth.class);
return new Gson().fromJson(str, Auth.class); return item == null ? new Auth() : item;
} }
public String getRefreshToken() { public String getRefreshToken() {
@ -94,6 +103,7 @@ public class Auth {
setAccessTokenOpen(""); setAccessTokenOpen("");
setRefreshToken(""); setRefreshToken("");
setAccessToken(""); setAccessToken("");
setSignature("");
} }
public void save() { public void save() {

Binary file not shown.

View File

@ -1 +1 @@
8c2d8ce4096829e9fe00e9ac53f75dc9 a25f65d9985736693258d27a77386ac5