Files
Ant-Browser/frontend/src/modules/dashboard/api.ts
T
Ant Browser Release Bot fc5a6fadbe publish: 1.1.0 snapshot (ff46de5)
channel: master
version: 1.1.0
source-ref: master
published-at-utc: 2026-03-20T14:14:07Z
2026-03-20 22:14:08 +08:00

82 lines
2.6 KiB
TypeScript

import type { DashboardStats } from './types'
const getBindings = async () => {
try {
return await import('../../wailsjs/go/main/App')
} catch {
return null
}
}
export async function fetchDashboardStats(): Promise<DashboardStats> {
const bindings: any = await getBindings()
if (bindings?.GetDashboardStats) {
try {
const data = await bindings.GetDashboardStats()
const licenseStatus = bindings.GetLicenseStatus ? await bindings.GetLicenseStatus() : { maxLimit: 20 }
return {
totalInstances: data?.totalInstances ?? 0,
runningInstances: data?.runningInstances ?? 0,
proxyCount: data?.proxyCount ?? 0,
coreCount: data?.coreCount ?? 0,
memUsedMB: data?.memUsedMB ?? 0,
maxProfileLimit: licenseStatus?.maxLimit ?? 20,
appVersion: data?.appVersion ?? 'unknown',
}
} catch (e) {
console.error('fetchDashboardStats error:', e)
}
}
return { totalInstances: 0, runningInstances: 0, proxyCount: 0, coreCount: 0, memUsedMB: 0, maxProfileLimit: 20, appVersion: 'unknown' }
}
export async function redeemCDKey(cdkey: string): Promise<{ success: boolean, message?: string }> {
const bindings: any = await getBindings()
if (bindings?.RedeemCDKey) {
try {
await bindings.RedeemCDKey(cdkey)
return { success: true }
} catch (e: any) {
return { success: false, message: e.message || '兑换失败' }
}
}
return { success: false, message: '系统 API 未就绪' }
}
export async function redeemGithubStar(): Promise<{ success: boolean, message?: string }> {
const bindings: any = await getBindings()
if (bindings?.RedeemGithubStar) {
try {
await bindings.RedeemGithubStar()
return { success: true }
} catch (e: any) {
return { success: false, message: e.message || '领取失败' }
}
}
return { success: false, message: '系统 API 未就绪' }
}
export async function reloadConfig(): Promise<void> {
const bindings: any = await getBindings()
if (bindings?.ReloadConfig) {
try {
await bindings.ReloadConfig()
} catch (e) {
console.error('reloadConfig error:', e)
}
}
}
export async function generateCDKeys(count: number): Promise<{ success: boolean, keys: string[], message?: string }> {
const bindings: any = await getBindings()
if (bindings?.GenerateCDKeys) {
try {
const keys = await bindings.GenerateCDKeys(count)
return { success: true, keys: keys || [] }
} catch (e: any) {
return { success: false, keys: [], message: e.message || '生成失败' }
}
}
return { success: false, keys: [], message: '系统 API 未就绪' }
}