mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
fear: webui quick login
This commit is contained in:
parent
13ecaa0ad4
commit
34d881426f
2
src/core
2
src/core
@ -1 +1 @@
|
||||
Subproject commit 852cad57c43ecc6113516db1abc591fb22e913fd
|
||||
Subproject commit 8cf3b85ffb49d9cc223d850a2a955b799b841bd7
|
26
src/index.ts
26
src/index.ts
@ -63,6 +63,32 @@ const quickLoginQQ = cmdOptions.qq;
|
||||
// console.error('登录失败', result);
|
||||
// napCatCore.qrLogin().then().catch(console.error);
|
||||
// });
|
||||
napCatCore.getQuickLoginList().then((res) => {
|
||||
// 遍历 res.LocalLoginInfoList[x].isQuickLogin是否可以可以 res.LocalLoginInfoList[x].uin 转为string 加入string[] 最后遍历完成调用DataRuntime.setQQQuickLoginList
|
||||
DataRuntime.setQQQuickLoginList(res.LocalLoginInfoList.filter((item) => item.isQuickLogin).map((item) => item.uin.toString()));
|
||||
});
|
||||
|
||||
DataRuntime.setQQQuickLogin(async (uin: string) => {
|
||||
let QuickLogin: Promise<{ result: boolean, message: string }> = new Promise((resolve, reject) => {
|
||||
if (quickLoginQQ) {
|
||||
log('正在快速登录 ', quickLoginQQ);
|
||||
napCatCore.quickLogin(quickLoginQQ).then(res => {
|
||||
if (res.loginErrorInfo.errMsg) {
|
||||
resolve({ result: false, message: res.loginErrorInfo.errMsg });
|
||||
}
|
||||
resolve({ result: true, message: '' });
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
resolve({ result: false, message: '快速登录发生错误' });
|
||||
});
|
||||
} else {
|
||||
resolve({ result: false, message: '快速登录失败' });
|
||||
}
|
||||
});
|
||||
let result = await QuickLogin;
|
||||
return result;
|
||||
});
|
||||
|
||||
if (quickLoginQQ) {
|
||||
log('正在快速登录 ', quickLoginQQ);
|
||||
napCatCore.quickLogin(quickLoginQQ).then(res => {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { RequestHandler } from "express";
|
||||
import { DataRuntime } from "../helper/Data";
|
||||
import { sleep } from "@/common/utils/helper";
|
||||
const isEmpty = (data: any) => data === undefined || data === null || data === '';
|
||||
export const QQGetQRcodeHandler: RequestHandler = async (req, res) => {
|
||||
if (await DataRuntime.getQQLoginStatus()) {
|
||||
@ -36,26 +37,41 @@ export const QQCheckLoginStatusHandler: RequestHandler = (req, res) => {
|
||||
});
|
||||
};
|
||||
export const QQSetQuickLoginHandler: RequestHandler = async (req, res) => {
|
||||
// 未完成
|
||||
const { token } = req.body;
|
||||
if (token) {
|
||||
const isLogin = await DataRuntime.getQQLoginStatus();
|
||||
let { uin } = req.body;
|
||||
let isLogin = await DataRuntime.getQQLoginStatus();
|
||||
if (isLogin) {
|
||||
res.send({
|
||||
code: -1,
|
||||
message: 'QQ Is Logined'
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 未实现
|
||||
if (isEmpty(uin)) {
|
||||
res.send({
|
||||
code: -1,
|
||||
message: 'uin is empty'
|
||||
});
|
||||
return;
|
||||
}
|
||||
let ret = await DataRuntime.getQQQuickLogin(uin);
|
||||
if (!ret.result) {
|
||||
res.send({
|
||||
code: -1,
|
||||
message: ret.message
|
||||
});
|
||||
return;
|
||||
}
|
||||
//本来应该验证 但是http不宜这么搞 建议前端验证
|
||||
//isLogin = await DataRuntime.getQQLoginStatus();
|
||||
res.send({
|
||||
code: 0,
|
||||
message: 'success'
|
||||
});
|
||||
}
|
||||
export const QQGetQuickLoginListHandler: RequestHandler = async (req, res) => {
|
||||
// 未完成
|
||||
const { token } = req.body;
|
||||
if (token) {
|
||||
const isLogin = await DataRuntime.getQQLoginStatus();
|
||||
}
|
||||
// 未实现
|
||||
const quickLoginList = await DataRuntime.getQQQuickLoginList();
|
||||
res.send({
|
||||
code: 0,
|
||||
message: 'success'
|
||||
data: quickLoginList
|
||||
});
|
||||
}
|
@ -1,9 +1,24 @@
|
||||
let LoginRuntime = {
|
||||
interface LoginRuntimeType {
|
||||
LoginCurrentTime: number;
|
||||
LoginCurrentRate: number;
|
||||
QQLoginStatus: boolean;
|
||||
QQQRCodeURL: string;
|
||||
QQLoginUin: number;
|
||||
NapCatHelper: {
|
||||
CoreQuickLogin: (uin: string) => Promise<{ result: boolean, message: string }>;
|
||||
QQLoginList: string[]
|
||||
}
|
||||
}
|
||||
let LoginRuntime: LoginRuntimeType = {
|
||||
LoginCurrentTime: Date.now(),
|
||||
LoginCurrentRate: 0,
|
||||
QQLoginStatus: false, //得去那边注册个回调刷新
|
||||
QQLoginStatus: false, //已实现 但太傻了 得去那边注册个回调刷新
|
||||
QQQRCodeURL: "",
|
||||
QQLoginUin: 0
|
||||
QQLoginUin: 0,
|
||||
NapCatHelper: {
|
||||
CoreQuickLogin: async (uin: string) => { return { result: false, message: '' }; },
|
||||
QQLoginList: []
|
||||
}
|
||||
}
|
||||
export const DataRuntime = {
|
||||
checkLoginRate: async function (RateLimit: number): Promise<boolean> {
|
||||
@ -40,5 +55,17 @@ export const DataRuntime = {
|
||||
,
|
||||
getQQLoginUin: async function (): Promise<number> {
|
||||
return LoginRuntime.QQLoginUin;
|
||||
},
|
||||
getQQQuickLoginList: async function (): Promise<any[]> {
|
||||
return LoginRuntime.NapCatHelper.QQLoginList;
|
||||
},
|
||||
setQQQuickLoginList: async function (list: string[]): Promise<void> {
|
||||
LoginRuntime.NapCatHelper.QQLoginList = list;
|
||||
},
|
||||
setQQQuickLogin(func: (uin: string) => Promise<{ result: boolean, message: string }>): void {
|
||||
LoginRuntime.NapCatHelper.CoreQuickLogin = func;
|
||||
},
|
||||
getQQQuickLogin: async function (uin: string): Promise<{ result: boolean, message: string }> {
|
||||
return await LoginRuntime.NapCatHelper.CoreQuickLogin(uin);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user