This commit is contained in:
truewhile
2026-09-30 19:22:24 +08:00
parent fa41936095
commit c1ff55ffbf
28 changed files with 3793 additions and 201 deletions
@@ -0,0 +1,67 @@
// 测试用 loginUrl:模拟聚合类书源的登录逻辑。
//
// 约定与 legado 一致:
// - loginUrl 本身是一段 JS,既是登录逻辑,也是 loginUi 各按钮 action 的函数库;
// - 表单值通过作用域里的 result 对象读取;
// - 成功与否靠抛异常区分(返回值被忽略)。
function login(flag) {
let token = getToken();
if (String(token).length > 10) {
java.longToast('当前已登录,请退出登录后重新登录');
return true;
}
let email = result.邮箱;
let pwd = result.密码;
if (!email || !pwd) {
java.longToast('请先输入账号密码!');
return false;
}
try {
let data = request('/login_api', 'POST', {
register_email: email,
password: pwd
});
let response = parseJsonSafely(data);
if (response && response.code == 0) {
setAllCookies('qttoken=' + response.key);
java.longToast('✅️登录成功');
return true;
}
java.longToast('❌登录失败:' + ((response && response.msg) || '未知错误'));
return false;
} catch (e) {
java.longToast('❌登录失败,服务器错误');
return false;
}
}
// 退出登陆
function logout() {
removeAllCookies();
}
// 用户后台(需要浏览器打开)
function user() {
if (String(getToken()).length < 10) {
java.longToast('请先登陆');
return;
}
java.startBrowserAwait(BaseUrl() + '/user', '用户后台');
}
// 查看信息
function checkStatus() {
if (String(getToken()).length < 10) {
java.longToast('请先登陆');
return;
}
let res = parseJsonSafely(request('/user_api', 'POST'));
if (!res || res.id == undefined) {
java.toast('获取用户信息失败');
return;
}
result.邮箱 = res.email;
source.putLoginInfo(JSON.stringify(result));
java.longToast('昵称:' + (res.nickname || '未设置'));
}