mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 08:45:41 +08:00
feat: log info
This commit is contained in:
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
|
||||
import { useSetRecoilState } from "recoil";
|
||||
import { listen } from "@tauri-apps/api/event";
|
||||
import { getInformation } from "@/services/api";
|
||||
import { getClashLogs } from "@/services/cmds";
|
||||
import { atomLogData } from "@/services/states";
|
||||
|
||||
const MAX_LOG_NUM = 1000;
|
||||
@@ -13,6 +14,8 @@ export default function useLogSetup() {
|
||||
const setLogData = useSetRecoilState(atomLogData);
|
||||
|
||||
useEffect(() => {
|
||||
getClashLogs().then(setLogData);
|
||||
|
||||
let ws: WebSocket = null!;
|
||||
|
||||
const handler = (event: MessageEvent<any>) => {
|
||||
|
||||
@@ -1,6 +1,29 @@
|
||||
import { invoke } from "@tauri-apps/api/tauri";
|
||||
import Notice from "@/components/base/base-notice";
|
||||
|
||||
export async function getClashLogs() {
|
||||
const regex = /time="(.+?)"\s+level=(.+?)\s+msg="(.+?)"/;
|
||||
const newRegex = /(.+?)\s+(.+?)\s+(.+)/;
|
||||
const logs = await invoke<string[]>("get_clash_logs");
|
||||
|
||||
return logs
|
||||
.map((log) => {
|
||||
const result = log.match(regex);
|
||||
if (result) {
|
||||
const [_, time, type, payload] = result;
|
||||
return { time, type, payload };
|
||||
}
|
||||
|
||||
const result2 = log.match(newRegex);
|
||||
if (result2) {
|
||||
const [_, time, type, payload] = result2;
|
||||
return { time, type, payload };
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter(Boolean) as ApiType.LogItem[];
|
||||
}
|
||||
|
||||
export async function getProfiles() {
|
||||
return invoke<CmdType.ProfilesConfig>("get_profiles");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user