improve external controller

This commit is contained in:
pompurin404 2024-09-03 10:47:44 +08:00
parent 73613820e8
commit ceaacffe10
No known key found for this signature in database
2 changed files with 49 additions and 10 deletions

View File

@ -93,9 +93,9 @@ app.whenReady().then(async () => {
} }
try { try {
await startCore() await startCore()
setTimeout(async () => { setTimeout(() => {
await initProfileUpdater() initProfileUpdater()
}, 60000) }, 0)
} catch (e) { } catch (e) {
dialog.showErrorBox('内核启动出错', `${e}`) dialog.showErrorBox('内核启动出错', `${e}`)
} }

View File

@ -22,7 +22,7 @@ const Mihomo: React.FC = () => {
const { controledMihomoConfig, patchControledMihomoConfig } = useControledMihomoConfig() const { controledMihomoConfig, patchControledMihomoConfig } = useControledMihomoConfig()
const { const {
ipv6, ipv6,
'external-controller': externalController, 'external-controller': externalController = '127.0.0.1:9090',
secret, secret,
'log-level': logLevel = 'info', 'log-level': logLevel = 'info',
'find-process-mode': findProcessMode = 'strict', 'find-process-mode': findProcessMode = 'strict',
@ -43,7 +43,12 @@ const Mihomo: React.FC = () => {
const [httpPortInput, setHttpPortInput] = useState(httpPort) const [httpPortInput, setHttpPortInput] = useState(httpPort)
const [redirPortInput, setRedirPortInput] = useState(redirPort) const [redirPortInput, setRedirPortInput] = useState(redirPort)
const [tproxyPortInput, setTproxyPortInput] = useState(tproxyPort) const [tproxyPortInput, setTproxyPortInput] = useState(tproxyPort)
const [externalControllerInput, setExternalControllerInput] = useState(externalController) const [externalControllerServerInput, setExternalControllerServerInput] = useState(
externalController.split(':')[0]
)
const [externalControllerPortInput, setExternalControllerPortInput] = useState(
externalController.split(':')[1]
)
const [secretInput, setSecretInput] = useState(secret) const [secretInput, setSecretInput] = useState(secret)
const [upgrading, setUpgrading] = useState(false) const [upgrading, setUpgrading] = useState(false)
@ -258,15 +263,17 @@ const Mihomo: React.FC = () => {
</div> </div>
</SettingItem> </SettingItem>
)} )}
<SettingItem title="外部控制" divider> <SettingItem title="外部控制地址" divider>
<div className="flex"> <div className="flex">
{externalControllerInput !== externalController && ( {externalControllerServerInput !== externalController.split(':')[0] && (
<Button <Button
size="sm" size="sm"
color="primary" color="primary"
className="mr-2" className="mr-2"
onPress={() => { onPress={() => {
onChangeNeedRestart({ 'external-controller': externalControllerInput }) onChangeNeedRestart({
'external-controller': `${externalControllerServerInput}:${externalControllerPortInput}`
})
}} }}
> >
@ -275,9 +282,40 @@ const Mihomo: React.FC = () => {
<Input <Input
size="sm" size="sm"
value={externalControllerInput} className="w-[200px]"
value={externalControllerServerInput}
onValueChange={(v) => { onValueChange={(v) => {
setExternalControllerInput(v) setExternalControllerServerInput(v)
}}
/>
</div>
</SettingItem>
<SettingItem title="外部控制端口" divider>
<div className="flex">
{externalControllerPortInput !== externalController.split(':')[1] && (
<Button
size="sm"
color="primary"
className="mr-2"
onPress={() => {
onChangeNeedRestart({
'external-controller': `${externalControllerServerInput}:${externalControllerPortInput}`
})
}}
>
</Button>
)}
<Input
size="sm"
type="number"
max={65535}
min={0}
className="w-[200px]"
value={externalControllerPortInput}
onValueChange={(v) => {
setExternalControllerPortInput(v)
}} }}
/> />
</div> </div>
@ -300,6 +338,7 @@ const Mihomo: React.FC = () => {
<Input <Input
size="sm" size="sm"
type="password" type="password"
className="w-[200px]"
value={secretInput} value={secretInput}
onValueChange={(v) => { onValueChange={(v) => {
setSecretInput(v) setSecretInput(v)