mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2024-11-16 11:42:21 +08:00
Merge 7cc19d1da5
into a0f9fb90ee
This commit is contained in:
commit
9653decfa1
|
@ -24,11 +24,11 @@ const LogPage = () => {
|
|||
const [match, setMatch] = useState(() => (_: string) => true);
|
||||
|
||||
const filterLogs = useMemo(() => {
|
||||
return logData
|
||||
.filter((data) =>
|
||||
logState === "all" ? true : data.type.includes(logState)
|
||||
)
|
||||
.filter((data) => match(data.payload));
|
||||
return logData.filter(
|
||||
(data) =>
|
||||
(logState === "all" ? true : data.type.includes(logState)) &&
|
||||
match(data.payload)
|
||||
);
|
||||
}, [logData, logState, match]);
|
||||
|
||||
return (
|
||||
|
|
|
@ -134,25 +134,48 @@ export const getProxies = async () => {
|
|||
|
||||
const { GLOBAL: global, DIRECT: direct, REJECT: reject } = proxyRecord;
|
||||
|
||||
let groups = Object.values(proxyRecord)
|
||||
.filter((each) => each.name !== "GLOBAL" && each.all)
|
||||
.map((each) => ({
|
||||
...each,
|
||||
all: each.all!.map((item) => generateItem(item)),
|
||||
}));
|
||||
interface Group {
|
||||
all: IProxyItem[];
|
||||
name: string;
|
||||
type: string;
|
||||
udp: boolean;
|
||||
xudp: boolean;
|
||||
tfo: boolean;
|
||||
history: {
|
||||
time: string;
|
||||
delay: number;
|
||||
}[];
|
||||
}
|
||||
|
||||
let groups: Group[] = Object.values(proxyRecord).reduce<Group[]>(
|
||||
(acc, each) => {
|
||||
if (each.name !== "GLOBAL" && each.all) {
|
||||
acc.push({
|
||||
...each,
|
||||
all: each.all!.map((item) => generateItem(item)),
|
||||
});
|
||||
}
|
||||
|
||||
return acc;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
if (global?.all) {
|
||||
let globalGroups = global.all
|
||||
.filter((name) => proxyRecord[name]?.all)
|
||||
.map((name) => proxyRecord[name])
|
||||
.map((each) => ({
|
||||
...each,
|
||||
all: each.all!.map((item) => generateItem(item)),
|
||||
}));
|
||||
let globalNames = globalGroups.map((each) => each.name);
|
||||
let globalGroups: Group[] = global.all.reduce<Group[]>((acc, name) => {
|
||||
if (proxyRecord[name]?.all) {
|
||||
acc.push({
|
||||
...proxyRecord[name],
|
||||
all: proxyRecord[name].all!.map((item) => generateItem(item)),
|
||||
});
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
let globalNames = new Set(globalGroups.map((each) => each.name));
|
||||
groups = groups
|
||||
.filter((group) => {
|
||||
return !globalNames.includes(group.name);
|
||||
return !globalNames.has(group.name);
|
||||
})
|
||||
.concat(globalGroups);
|
||||
}
|
||||
|
|
|
@ -7,23 +7,22 @@ export async function getClashLogs() {
|
|||
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;
|
||||
const time = dayjs(_time).format("MM-DD HH:mm:ss");
|
||||
return { time, type, payload };
|
||||
}
|
||||
return logs.reduce<ILogItem[]>((acc, log) => {
|
||||
const result = log.match(regex);
|
||||
if (result) {
|
||||
const [_, _time, type, payload] = result;
|
||||
const time = dayjs(_time).format("MM-DD HH:mm:ss");
|
||||
acc.push({ time, type, payload });
|
||||
return acc;
|
||||
}
|
||||
|
||||
const result2 = log.match(newRegex);
|
||||
if (result2) {
|
||||
const [_, time, type, payload] = result2;
|
||||
return { time, type, payload };
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter(Boolean) as ILogItem[];
|
||||
const result2 = log.match(newRegex);
|
||||
if (result2) {
|
||||
const [_, time, type, payload] = result2;
|
||||
acc.push({ time, type, payload });
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
}
|
||||
|
||||
export async function getProfiles() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user