mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-27 13:10:30 +08:00
support fixed proxy
This commit is contained in:
parent
1882a38aa2
commit
d49e9bc420
@ -9,7 +9,7 @@ import {
|
|||||||
import { generateProfile } from './factory'
|
import { generateProfile } from './factory'
|
||||||
import { getAppConfig, patchAppConfig, patchControledMihomoConfig } from '../config'
|
import { getAppConfig, patchAppConfig, patchControledMihomoConfig } from '../config'
|
||||||
import { dialog, safeStorage } from 'electron'
|
import { dialog, safeStorage } from 'electron'
|
||||||
import { pauseWebsockets } from './mihomoApi'
|
import { pauseWebsockets, startMihomoTraffic } from './mihomoApi'
|
||||||
import { writeFile } from 'fs/promises'
|
import { writeFile } from 'fs/promises'
|
||||||
import { promisify } from 'util'
|
import { promisify } from 'util'
|
||||||
import { mainWindow } from '..'
|
import { mainWindow } from '..'
|
||||||
@ -59,6 +59,7 @@ export async function startCore(): Promise<void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (data.toString().includes('RESTful API listening at')) {
|
if (data.toString().includes('RESTful API listening at')) {
|
||||||
|
await startMihomoTraffic()
|
||||||
retry = 10
|
retry = 10
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -389,9 +389,8 @@ const mihomoConnections = async (): Promise<void> => {
|
|||||||
|
|
||||||
export const pauseWebsockets = () => {
|
export const pauseWebsockets = () => {
|
||||||
const recoverList: (() => void)[] = []
|
const recoverList: (() => void)[] = []
|
||||||
// Traffic 始终开启
|
// Traffic 内核启动时始终开启
|
||||||
stopMihomoTraffic()
|
stopMihomoTraffic()
|
||||||
recoverList.push(startMihomoTraffic)
|
|
||||||
if (mihomoMemoryWs) {
|
if (mihomoMemoryWs) {
|
||||||
stopMihomoMemory()
|
stopMihomoMemory()
|
||||||
recoverList.push(startMihomoMemory)
|
recoverList.push(startMihomoMemory)
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import windowStateKeeper from 'electron-window-state'
|
|||||||
import { app, shell, BrowserWindow, Menu, dialog, Notification } from 'electron'
|
import { app, shell, BrowserWindow, Menu, dialog, Notification } from 'electron'
|
||||||
import { pauseWebsockets, startMihomoMemory, stopMihomoMemory } from './core/mihomoApi'
|
import { pauseWebsockets, startMihomoMemory, stopMihomoMemory } from './core/mihomoApi'
|
||||||
import { addProfileItem, getAppConfig } from './config'
|
import { addProfileItem, getAppConfig } from './config'
|
||||||
import { stopCore } from './core/manager'
|
import { startCore, stopCore } from './core/manager'
|
||||||
import { triggerSysProxy } from './sys/sysproxy'
|
import { triggerSysProxy } from './sys/sysproxy'
|
||||||
import icon from '../../resources/icon.png?asset'
|
import icon from '../../resources/icon.png?asset'
|
||||||
import { createTray } from './resolve/tray'
|
import { createTray } from './resolve/tray'
|
||||||
@ -13,6 +13,7 @@ import { join } from 'path'
|
|||||||
import { initShortcut } from './resolve/shortcut'
|
import { initShortcut } from './resolve/shortcut'
|
||||||
import { execSync } from 'child_process'
|
import { execSync } from 'child_process'
|
||||||
import { createElevateTask } from './sys/misc'
|
import { createElevateTask } from './sys/misc'
|
||||||
|
import { initProfileUpdater } from './core/profileUpdater'
|
||||||
|
|
||||||
export let mainWindow: BrowserWindow | null = null
|
export let mainWindow: BrowserWindow | null = null
|
||||||
|
|
||||||
@ -79,6 +80,14 @@ app.whenReady().then(async () => {
|
|||||||
dialog.showErrorBox('应用初始化失败', `${e}`)
|
dialog.showErrorBox('应用初始化失败', `${e}`)
|
||||||
app.quit()
|
app.quit()
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
await startCore()
|
||||||
|
setTimeout(async () => {
|
||||||
|
await initProfileUpdater()
|
||||||
|
}, 60000)
|
||||||
|
} catch (e) {
|
||||||
|
dialog.showErrorBox('内核启动失败', `${e}`)
|
||||||
|
}
|
||||||
|
|
||||||
// Default open or close DevTools by F12 in development
|
// Default open or close DevTools by F12 in development
|
||||||
// and ignore CommandOrControl + R in production.
|
// and ignore CommandOrControl + R in production.
|
||||||
|
|||||||
@ -27,9 +27,6 @@ import { startPacServer } from '../resolve/server'
|
|||||||
import { triggerSysProxy } from '../sys/sysproxy'
|
import { triggerSysProxy } from '../sys/sysproxy'
|
||||||
import { getAppConfig } from '../config'
|
import { getAppConfig } from '../config'
|
||||||
import { app } from 'electron'
|
import { app } from 'electron'
|
||||||
import { startCore } from '../core/manager'
|
|
||||||
import { initProfileUpdater } from '../core/profileUpdater'
|
|
||||||
import { startMihomoTraffic } from '../core/mihomoApi'
|
|
||||||
|
|
||||||
async function initDirs(): Promise<void> {
|
async function initDirs(): Promise<void> {
|
||||||
if (!existsSync(dataDir())) {
|
if (!existsSync(dataDir())) {
|
||||||
@ -138,11 +135,6 @@ export async function init(): Promise<void> {
|
|||||||
await startPacServer()
|
await startPacServer()
|
||||||
const { sysProxy } = await getAppConfig()
|
const { sysProxy } = await getAppConfig()
|
||||||
await triggerSysProxy(sysProxy.enable)
|
await triggerSysProxy(sysProxy.enable)
|
||||||
await startCore()
|
|
||||||
await startMihomoTraffic()
|
|
||||||
setTimeout(async () => {
|
|
||||||
await initProfileUpdater()
|
|
||||||
}, 60000)
|
|
||||||
|
|
||||||
initDeeplink()
|
initDeeplink()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,13 +52,14 @@ const ProxyItem: React.FC<Props> = (props) => {
|
|||||||
PubSub.unsubscribe(token)
|
PubSub.unsubscribe(token)
|
||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
const fixed = group.fixed && group.fixed === proxy.name
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
onPress={() => onSelect(group.name, proxy.name)}
|
onPress={() => onSelect(group.name, proxy.name)}
|
||||||
isPressable
|
isPressable
|
||||||
fullWidth
|
fullWidth
|
||||||
className={`${selected ? 'bg-primary/30' : 'bg-content2'}`}
|
className={`${fixed ? 'bg-secondary/30' : selected ? 'bg-primary/30' : 'bg-content2'}`}
|
||||||
radius="sm"
|
radius="sm"
|
||||||
>
|
>
|
||||||
<CardBody className="p-2">
|
<CardBody className="p-2">
|
||||||
|
|||||||
1
src/shared/types.d.ts
vendored
1
src/shared/types.d.ts
vendored
@ -147,6 +147,7 @@ interface IMihomoGroup {
|
|||||||
all: string[]
|
all: string[]
|
||||||
extra: Record<string, { alive: boolean; history: IMihomoHistory[] }>
|
extra: Record<string, { alive: boolean; history: IMihomoHistory[] }>
|
||||||
testUrl?: string
|
testUrl?: string
|
||||||
|
fixed?: string
|
||||||
hidden: boolean
|
hidden: boolean
|
||||||
history: IMihomoHistory[]
|
history: IMihomoHistory[]
|
||||||
icon: string
|
icon: string
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user