mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-28 05:30:29 +08:00
Compare commits
3 Commits
84c89105b4
...
7743097b51
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7743097b51 | ||
|
|
6d21f904b3 | ||
|
|
1da82c1b3b |
@ -10,6 +10,7 @@ import { triggerSysProxy } from '../sys/sysproxy'
|
|||||||
import { patchMihomoConfig } from '../core/mihomoApi'
|
import { patchMihomoConfig } from '../core/mihomoApi'
|
||||||
import { quitWithoutCore, restartCore } from '../core/manager'
|
import { quitWithoutCore, restartCore } from '../core/manager'
|
||||||
import { floatingWindow, triggerFloatingWindow } from './floatingWindow'
|
import { floatingWindow, triggerFloatingWindow } from './floatingWindow'
|
||||||
|
import { updateTrayIcon } from './tray'
|
||||||
import i18next from '../../shared/i18n'
|
import i18next from '../../shared/i18n'
|
||||||
|
|
||||||
export async function registerShortcut(
|
export async function registerShortcut(
|
||||||
@ -51,6 +52,7 @@ export async function registerShortcut(
|
|||||||
// ignore
|
// ignore
|
||||||
} finally {
|
} finally {
|
||||||
ipcMain.emit('updateTrayMenu')
|
ipcMain.emit('updateTrayMenu')
|
||||||
|
await updateTrayIcon()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -74,6 +76,7 @@ export async function registerShortcut(
|
|||||||
// ignore
|
// ignore
|
||||||
} finally {
|
} finally {
|
||||||
ipcMain.emit('updateTrayMenu')
|
ipcMain.emit('updateTrayMenu')
|
||||||
|
await updateTrayIcon()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -86,6 +89,7 @@ export async function registerShortcut(
|
|||||||
}).show()
|
}).show()
|
||||||
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
||||||
ipcMain.emit('updateTrayMenu')
|
ipcMain.emit('updateTrayMenu')
|
||||||
|
await updateTrayIcon()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case 'globalModeShortcut': {
|
case 'globalModeShortcut': {
|
||||||
@ -97,6 +101,7 @@ export async function registerShortcut(
|
|||||||
}).show()
|
}).show()
|
||||||
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
||||||
ipcMain.emit('updateTrayMenu')
|
ipcMain.emit('updateTrayMenu')
|
||||||
|
await updateTrayIcon()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case 'directModeShortcut': {
|
case 'directModeShortcut': {
|
||||||
@ -108,6 +113,7 @@ export async function registerShortcut(
|
|||||||
}).show()
|
}).show()
|
||||||
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
mainWindow?.webContents.send('controledMihomoConfigUpdated')
|
||||||
ipcMain.emit('updateTrayMenu')
|
ipcMain.emit('updateTrayMenu')
|
||||||
|
await updateTrayIcon()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case 'quitWithoutCoreShortcut': {
|
case 'quitWithoutCoreShortcut': {
|
||||||
|
|||||||
@ -34,8 +34,20 @@ export function openFile(type: 'profile' | 'override', id: string, ext?: 'yaml'
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function openUWPTool(): Promise<void> {
|
export async function openUWPTool(): Promise<void> {
|
||||||
|
const execPromise = promisify(exec)
|
||||||
const execFilePromise = promisify(execFile)
|
const execFilePromise = promisify(execFile)
|
||||||
const uwpToolPath = path.join(resourcesDir(), 'files', 'enableLoopback.exe')
|
const uwpToolPath = path.join(resourcesDir(), 'files', 'enableLoopback.exe')
|
||||||
|
|
||||||
|
const { checkAdminPrivileges } = await import('../core/manager')
|
||||||
|
const isAdmin = await checkAdminPrivileges()
|
||||||
|
|
||||||
|
if (!isAdmin) {
|
||||||
|
const escapedPath = uwpToolPath.replace(/'/g, "''")
|
||||||
|
const command = `powershell -Command "Start-Process -FilePath '${escapedPath}' -Verb RunAs -Wait"`
|
||||||
|
|
||||||
|
await execPromise(command, { windowsHide: true })
|
||||||
|
return
|
||||||
|
}
|
||||||
await execFilePromise(uwpToolPath)
|
await execFilePromise(uwpToolPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -272,7 +272,13 @@ async function migration(): Promise<void> {
|
|||||||
}
|
}
|
||||||
// add default skip auth prefix
|
// add default skip auth prefix
|
||||||
if (!skipAuthPrefixes) {
|
if (!skipAuthPrefixes) {
|
||||||
await patchControledMihomoConfig({ 'skip-auth-prefixes': ['127.0.0.1/32'] })
|
await patchControledMihomoConfig({ 'skip-auth-prefixes': ['127.0.0.1/32', '::1/128'] })
|
||||||
|
} else if (skipAuthPrefixes.length >= 1 && skipAuthPrefixes[0] === '127.0.0.1/32') {
|
||||||
|
const filteredPrefixes = skipAuthPrefixes.filter(ip => ip !== '::1/128')
|
||||||
|
const newPrefixes = [filteredPrefixes[0], '::1/128', ...filteredPrefixes.slice(1)]
|
||||||
|
if (JSON.stringify(newPrefixes) !== JSON.stringify(skipAuthPrefixes)) {
|
||||||
|
await patchControledMihomoConfig({ 'skip-auth-prefixes': newPrefixes })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// add default authentication
|
// add default authentication
|
||||||
if (!authentication) {
|
if (!authentication) {
|
||||||
|
|||||||
@ -65,7 +65,7 @@ export const defaultControledMihomoConfig: Partial<IMihomoConfig> = {
|
|||||||
'lan-allowed-ips': ['0.0.0.0/0', '::/0'],
|
'lan-allowed-ips': ['0.0.0.0/0', '::/0'],
|
||||||
'lan-disallowed-ips': [],
|
'lan-disallowed-ips': [],
|
||||||
authentication: [],
|
authentication: [],
|
||||||
'skip-auth-prefixes': ['127.0.0.1/32'],
|
'skip-auth-prefixes': ['127.0.0.1/32', '::1/128'],
|
||||||
tun: {
|
tun: {
|
||||||
enable: false,
|
enable: false,
|
||||||
device: process.platform === 'darwin' ? 'utun1500' : 'Mihomo',
|
device: process.platform === 'darwin' ? 'utun1500' : 'Mihomo',
|
||||||
|
|||||||
@ -48,7 +48,7 @@ const Mihomo: React.FC = () => {
|
|||||||
'external-controller': externalController = '',
|
'external-controller': externalController = '',
|
||||||
secret,
|
secret,
|
||||||
authentication = [],
|
authentication = [],
|
||||||
'skip-auth-prefixes': skipAuthPrefixes = ['127.0.0.1/32'],
|
'skip-auth-prefixes': skipAuthPrefixes = ['127.0.0.1/32', '::1/128'],
|
||||||
'log-level': logLevel = 'info',
|
'log-level': logLevel = 'info',
|
||||||
'find-process-mode': findProcessMode = 'strict',
|
'find-process-mode': findProcessMode = 'strict',
|
||||||
'allow-lan': allowLan,
|
'allow-lan': allowLan,
|
||||||
@ -743,7 +743,7 @@ const Mihomo: React.FC = () => {
|
|||||||
return (
|
return (
|
||||||
<div key={index} className="flex mb-2">
|
<div key={index} className="flex mb-2">
|
||||||
<Input
|
<Input
|
||||||
disabled={index === 0}
|
disabled={index === 0 || index === 1}
|
||||||
size="sm"
|
size="sm"
|
||||||
fullWidth
|
fullWidth
|
||||||
placeholder={t('mihomo.ipSegment.placeholder')}
|
placeholder={t('mihomo.ipSegment.placeholder')}
|
||||||
@ -758,7 +758,7 @@ const Mihomo: React.FC = () => {
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{index < skipAuthPrefixesInput.length && index !== 0 && (
|
{index < skipAuthPrefixesInput.length && index !== 0 && index !== 1 && (
|
||||||
<Button
|
<Button
|
||||||
className="ml-2"
|
className="ml-2"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user