mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-16 13:01:14 +00:00
refactor: umami
This commit is contained in:
parent
42ba524e4e
commit
b795e6c3d2
@ -1,4 +1,5 @@
|
|||||||
export class RequestUtil {
|
export class RequestUtil {
|
||||||
|
//适用于获取服务器下发cookies时获取
|
||||||
static async HttpGetCookies(url: string, method: string = 'GET'): Promise<Map<string, string>> {
|
static async HttpGetCookies(url: string, method: string = 'GET'): Promise<Map<string, string>> {
|
||||||
const response = await fetch(url, { method: method });
|
const response = await fetch(url, { method: method });
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
@ -18,6 +19,7 @@ export class RequestUtil {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
// 请求和回复都是JSON data传原始内容 自动编码json
|
||||||
static async HttpGetJson<T>(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}):
|
static async HttpGetJson<T>(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}):
|
||||||
Promise<T> {
|
Promise<T> {
|
||||||
let body: BodyInit | undefined = undefined;
|
let body: BodyInit | undefined = undefined;
|
||||||
@ -45,4 +47,28 @@ export class RequestUtil {
|
|||||||
throw new Error(`Failed to fetch JSON: ${error.message}`);
|
throw new Error(`Failed to fetch JSON: ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 请求返回都是原始内容
|
||||||
|
static async HttpGetText(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}): Promise<string> {
|
||||||
|
let requestInit: RequestInit = { method: method };
|
||||||
|
if (method.toUpperCase() === 'POST' && data !== undefined) {
|
||||||
|
if (headers) {
|
||||||
|
headers['Content-Type'] = 'application/json';
|
||||||
|
requestInit.headers = new Headers(headers);
|
||||||
|
} else {
|
||||||
|
requestInit.headers = new Headers({ 'Content-Type': 'application/json' });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
requestInit.headers = new Headers(headers);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const response = await fetch(url, { ...requestInit, body: data });
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
|
}
|
||||||
|
const jsonResult = await response.text();
|
||||||
|
return jsonResult;
|
||||||
|
} catch (error: any) {
|
||||||
|
throw new Error(`Failed to fetch JSON: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,31 +1,7 @@
|
|||||||
import { request } from 'node:https';
|
import { RequestUtil } from './request';
|
||||||
export function postLoginStatus() {
|
|
||||||
const req = request(
|
export async function postLoginStatus() {
|
||||||
{
|
return new Promise(async (resolve, reject) => {
|
||||||
hostname: 'napcat.wumiao.wang',
|
|
||||||
path: '/api/send',
|
|
||||||
port: 443,
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(res) => {
|
|
||||||
//let data = '';
|
|
||||||
res.on('data', (chunk) => {
|
|
||||||
//data += chunk;
|
|
||||||
});
|
|
||||||
res.on('error', (err) => {
|
|
||||||
});
|
|
||||||
res.on('end', () => {
|
|
||||||
//console.log('Response:', data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
||||||
req.on('error', (e) => {
|
|
||||||
// console.error('Request error:', e);
|
|
||||||
});
|
|
||||||
const StatesData = {
|
const StatesData = {
|
||||||
type: 'event',
|
type: 'event',
|
||||||
payload: {
|
payload: {
|
||||||
@ -34,11 +10,16 @@ export function postLoginStatus() {
|
|||||||
'screen': '1920x1080',
|
'screen': '1920x1080',
|
||||||
'language': 'zh-CN',
|
'language': 'zh-CN',
|
||||||
'title': 'OneBot.Login',
|
'title': 'OneBot.Login',
|
||||||
'url': '/login/onebot11/1.3.2',
|
'url': '/login/onebot11/1.3.5',
|
||||||
'referrer': 'https://napcat.demo.cn/login?type=onebot11'
|
'referrer': 'https://napcat.demo.cn/login?type=onebot11'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
req.write(JSON.stringify(StatesData));
|
await RequestUtil.HttpGetText('https://napcat.wumiao.wang/api/send',
|
||||||
|
'POST',
|
||||||
req.end();
|
StatesData, {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'
|
||||||
|
});
|
||||||
|
resolve(true);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ napCatCore.onLoginSuccess((uin, uid) => {
|
|||||||
console.log('登录成功!');
|
console.log('登录成功!');
|
||||||
WebUiDataRuntime.setQQLoginStatus(true);
|
WebUiDataRuntime.setQQLoginStatus(true);
|
||||||
WebUiDataRuntime.setQQLoginUin(uin.toString());
|
WebUiDataRuntime.setQQLoginUin(uin.toString());
|
||||||
postLoginStatus();
|
postLoginStatus().catch(logDebug);
|
||||||
});
|
});
|
||||||
const showQRCode = async (url: string, base64: string, buffer: Buffer) => {
|
const showQRCode = async (url: string, base64: string, buffer: Buffer) => {
|
||||||
await WebUiDataRuntime.setQQLoginQrcodeURL(url);
|
await WebUiDataRuntime.setQQLoginQrcodeURL(url);
|
||||||
|
Loading…
Reference in New Issue
Block a user