Update ali cache path

This commit is contained in:
FongMi 2023-05-04 14:13:29 +08:00
parent c95a8119d1
commit eefb8bb92d
7 changed files with 90 additions and 22 deletions

View File

@ -26,7 +26,7 @@ import com.github.catvod.net.OkHttp;
import com.github.catvod.net.OkResult;
import com.github.catvod.spider.Init;
import com.github.catvod.spider.Proxy;
import com.github.catvod.utils.Prefers;
import com.github.catvod.utils.FileUtil;
import com.github.catvod.utils.QRCode;
import com.github.catvod.utils.Utils;
@ -34,6 +34,7 @@ import org.json.JSONArray;
import org.json.JSONObject;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -66,10 +67,18 @@ public class API {
return Loader.INSTANCE;
}
public File getUserCache() {
return FileUtil.getCacheFile("aliyundrive_user");
}
public File getOAuthCache() {
return FileUtil.getCacheFile("aliyundrive_oauth");
}
private API() {
tempIds = new ArrayList<>();
oauth = OAuth.objectFrom(Prefers.getString("aliyundrive_oauth"));
user = User.objectFrom(Prefers.getString("aliyundrive_user"));
oauth = OAuth.objectFrom(FileUtil.read(getOAuthCache()));
user = User.objectFrom(FileUtil.read(getUserCache()));
quality = new HashMap<>();
quality.put("4K", "UHD");
quality.put("2k", "QHD");
@ -432,9 +441,7 @@ public class API {
if (Utils.isMobile()) {
Init.run(this::showInput);
} else {
String url = "https://passport.aliyundrive.com/newlogin/qrcode/generate.do?appName=aliyun_drive&fromSite=52&appName=aliyun_drive&appEntrance=web&isMobile=false&lang=zh_CN&returnUrl=&bizParams=&_bx-v=2.2.3";
Data data = Data.objectFrom(OkHttp.string(url)).getContent().getData();
Init.run(() -> showQRCode(data));
showQRCode();
}
}
@ -445,13 +452,18 @@ public class API {
FrameLayout frame = new FrameLayout(Init.context());
EditText input = new EditText(Init.context());
frame.addView(input, params);
dialog = new AlertDialog.Builder(Init.getActivity()).setTitle("請輸入Token").setView(frame).setNegativeButton(android.R.string.cancel, null).setPositiveButton(android.R.string.ok, (dialog, which) -> onPositive(input.getText().toString())).show();
dialog = new AlertDialog.Builder(Init.getActivity()).setTitle("請輸入Token").setView(frame).setNeutralButton("QRCode", (dialog, which) -> onNeutral()).setNegativeButton(android.R.string.cancel, null).setPositiveButton(android.R.string.ok, (dialog, which) -> onPositive(input.getText().toString())).show();
} catch (Exception ignored) {
}
}
private void onNeutral() {
dismiss();
Init.execute(this::showQRCode);
}
private void onPositive(String text) {
dialog.dismiss();
dismiss();
Init.execute(() -> {
if (text.startsWith("http")) setToken(OkHttp.string(text));
else if (text.length() == 32) setToken(text);
@ -459,6 +471,12 @@ public class API {
});
}
private void showQRCode() {
String url = "https://passport.aliyundrive.com/newlogin/qrcode/generate.do?appName=aliyun_drive&fromSite=52&appName=aliyun_drive&appEntrance=web&isMobile=false&lang=zh_CN&returnUrl=&bizParams=&_bx-v=2.2.3";
Data data = Data.objectFrom(OkHttp.string(url)).getContent().getData();
Init.run(() -> showQRCode(data));
}
private void showQRCode(Data data) {
try {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(Utils.dp2px(240), Utils.dp2px(240));

View File

@ -2,7 +2,8 @@ package com.github.catvod.bean.ali;
import android.text.TextUtils;
import com.github.catvod.utils.Prefers;
import com.github.catvod.ali.API;
import com.github.catvod.utils.FileUtil;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
@ -43,7 +44,7 @@ public class OAuth {
}
public OAuth save() {
Prefers.put("aliyundrive_oauth", toString());
FileUtil.write(API.get().getOAuthCache(), toString());
return this;
}

View File

@ -2,7 +2,8 @@ package com.github.catvod.bean.ali;
import android.text.TextUtils;
import com.github.catvod.utils.Prefers;
import com.github.catvod.ali.API;
import com.github.catvod.utils.FileUtil;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
@ -59,7 +60,7 @@ public class User {
}
public User save() {
Prefers.put("aliyundrive_user", toString());
FileUtil.write(API.get().getUserCache(), toString());
return this;
}

View File

@ -0,0 +1,57 @@
package com.github.catvod.utils;
import com.github.catvod.spider.Init;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FileUtil {
public static File getCacheDir() {
return Init.context().getExternalCacheDir();
}
public static File getCacheFile(String fileName) {
return new File(getCacheDir(), fileName);
}
public static void write(File file, String data) {
write(file, data.getBytes());
}
public static void write(File file, byte[] data) {
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String read(File file) {
try {
return read(new FileInputStream(file));
} catch (Exception e) {
return "";
}
}
public static String read(InputStream is) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String text;
while ((text = br.readLine()) != null) sb.append(text).append("\n");
br.close();
return Utils.substring(sb.toString());
} catch (Exception e) {
return "";
}
}
}

View File

@ -144,15 +144,6 @@ public class Utils {
}
}
public static void removeView(View view) {
try {
ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content);
group.removeView(view);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void loadWebView(String url, WebViewClient client) {
Init.run(() -> {
WebView webView = new WebView(Init.context());

Binary file not shown.

View File

@ -1 +1 @@
3943d051cc917b936cbfa116baf94a74
14916e05a5fabbc24aad217565c93f7b