mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-27 21:20:29 +08:00
add outbound interface display
This commit is contained in:
parent
182f2375f1
commit
2a4548b2a5
394
.github/workflows/build.yml
vendored
394
.github/workflows/build.yml
vendored
@ -69,63 +69,6 @@ jobs:
|
|||||||
body_path: changelog.md
|
body_path: changelog.md
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
windows7:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
arch:
|
|
||||||
- x64
|
|
||||||
- ia32
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
env:
|
|
||||||
npm_config_arch: ${{ matrix.arch }}
|
|
||||||
npm_config_target_arch: ${{ matrix.arch }}
|
|
||||||
run: |
|
|
||||||
pnpm install
|
|
||||||
pnpm add @mihomo-party/sysproxy-win32-${{ matrix.arch }}-msvc
|
|
||||||
pnpm add -D electron@22.3.27
|
|
||||||
(Get-Content electron-builder.yml) -replace 'windows', 'win7' | Set-Content electron-builder.yml
|
|
||||||
pnpm prepare --${{ matrix.arch }}
|
|
||||||
- name: Build
|
|
||||||
env:
|
|
||||||
npm_config_arch: ${{ matrix.arch }}
|
|
||||||
npm_config_target_arch: ${{ matrix.arch }}
|
|
||||||
run: pnpm build:win --${{ matrix.arch }}
|
|
||||||
- name: Add Portable Flag
|
|
||||||
run: |
|
|
||||||
New-Item -Path "PORTABLE" -ItemType File
|
|
||||||
Get-ChildItem dist/*portable.7z | ForEach-Object {
|
|
||||||
7z a $_.FullName PORTABLE
|
|
||||||
}
|
|
||||||
- name: Generate checksums
|
|
||||||
run: pnpm checksum setup.exe portable.7z
|
|
||||||
- name: Upload Artifacts
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: Win7 ${{ matrix.arch }}
|
|
||||||
path: |
|
|
||||||
dist/*.sha256
|
|
||||||
dist/*setup.exe
|
|
||||||
dist/*portable.7z
|
|
||||||
if-no-files-found: error
|
|
||||||
- name: Publish Release
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
uses: softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
dist/*.sha256
|
|
||||||
dist/*setup.exe
|
|
||||||
dist/*portable.7z
|
|
||||||
body_path: changelog.md
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -225,225 +168,32 @@ jobs:
|
|||||||
body_path: changelog.md
|
body_path: changelog.md
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
macos10:
|
artifact:
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
arch:
|
|
||||||
- x64
|
|
||||||
- arm64
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
env:
|
|
||||||
npm_config_arch: ${{ matrix.arch }}
|
|
||||||
npm_config_target_arch: ${{ matrix.arch }}
|
|
||||||
run: |
|
|
||||||
pnpm install
|
|
||||||
pnpm add @mihomo-party/sysproxy-darwin-${{ matrix.arch }}
|
|
||||||
pnpm add -D electron@32.2.2
|
|
||||||
pnpm prepare --${{ matrix.arch }}
|
|
||||||
- name: Build
|
|
||||||
env:
|
|
||||||
npm_config_arch: ${{ matrix.arch }}
|
|
||||||
npm_config_target_arch: ${{ matrix.arch }}
|
|
||||||
run: |
|
|
||||||
sed -i "" -e "s/macos/catalina/" electron-builder.yml
|
|
||||||
chmod +x build/pkg-scripts/postinstall
|
|
||||||
pnpm build:mac --${{ matrix.arch }}
|
|
||||||
- name: Generate checksums
|
|
||||||
run: pnpm checksum .pkg
|
|
||||||
- name: Upload Artifacts
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
if: startsWith(github.ref, 'refs/heads/')
|
||||||
uses: actions/upload-artifact@v4
|
needs: [windows, linux, macos]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
concurrency:
|
||||||
|
group: artifact
|
||||||
|
cancel-in-progress: false
|
||||||
|
steps:
|
||||||
|
- name: Download Artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Catalina ${{ matrix.arch }}
|
path: bin/
|
||||||
path: |
|
merge-multiple: true
|
||||||
dist/*.sha256
|
|
||||||
dist/*.pkg
|
- name: Upload Prerelease
|
||||||
if-no-files-found: error
|
uses: softprops/action-gh-release@v1
|
||||||
- name: Publish Release
|
if: ${{ success() }}
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
uses: softprops/action-gh-release@v2
|
|
||||||
with:
|
with:
|
||||||
|
tag_name: pre-release
|
||||||
files: |
|
files: |
|
||||||
dist/*.sha256
|
bin/*
|
||||||
dist/*.pkg
|
prerelease: true
|
||||||
body_path: changelog.md
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
artifact-windows:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
needs: windows
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
concurrency:
|
|
||||||
group: artifact
|
|
||||||
cancel-in-progress: false
|
|
||||||
services:
|
|
||||||
telegram-bot-api:
|
|
||||||
image: aiogram/telegram-bot-api:latest
|
|
||||||
env:
|
|
||||||
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
|
|
||||||
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
|
|
||||||
ports:
|
|
||||||
- 8081:8081
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: pnpm install
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: 'Windows*'
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Upload Artifacts
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
ARTIFACT_TARGET: windows
|
|
||||||
run: pnpm artifact
|
|
||||||
|
|
||||||
artifact-windows7:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
needs: windows7
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
concurrency:
|
|
||||||
group: artifact
|
|
||||||
cancel-in-progress: false
|
|
||||||
services:
|
|
||||||
telegram-bot-api:
|
|
||||||
image: aiogram/telegram-bot-api:latest
|
|
||||||
env:
|
|
||||||
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
|
|
||||||
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
|
|
||||||
ports:
|
|
||||||
- 8081:8081
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: pnpm install
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: 'Win7*'
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Upload Artifacts
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
ARTIFACT_TARGET: windows7
|
|
||||||
run: pnpm artifact
|
|
||||||
|
|
||||||
artifact-macos:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
needs: macos
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
concurrency:
|
|
||||||
group: artifact
|
|
||||||
cancel-in-progress: false
|
|
||||||
services:
|
|
||||||
telegram-bot-api:
|
|
||||||
image: aiogram/telegram-bot-api:latest
|
|
||||||
env:
|
|
||||||
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
|
|
||||||
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
|
|
||||||
ports:
|
|
||||||
- 8081:8081
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: pnpm install
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: 'MacOS*'
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Upload Artifacts
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
ARTIFACT_TARGET: macos
|
|
||||||
run: pnpm artifact
|
|
||||||
|
|
||||||
artifact-macos10:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
needs: macos10
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
concurrency:
|
|
||||||
group: artifact
|
|
||||||
cancel-in-progress: false
|
|
||||||
services:
|
|
||||||
telegram-bot-api:
|
|
||||||
image: aiogram/telegram-bot-api:latest
|
|
||||||
env:
|
|
||||||
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
|
|
||||||
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
|
|
||||||
ports:
|
|
||||||
- 8081:8081
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: pnpm install
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: 'Catalina*'
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Upload Artifacts
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
ARTIFACT_TARGET: macos10
|
|
||||||
run: pnpm artifact
|
|
||||||
|
|
||||||
artifact-linux:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
needs: linux
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
concurrency:
|
|
||||||
group: artifact
|
|
||||||
cancel-in-progress: false
|
|
||||||
services:
|
|
||||||
telegram-bot-api:
|
|
||||||
image: aiogram/telegram-bot-api:latest
|
|
||||||
env:
|
|
||||||
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
|
|
||||||
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
|
|
||||||
ports:
|
|
||||||
- 8081:8081
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
- name: Install Dependencies
|
|
||||||
run: pnpm install
|
|
||||||
- name: Download Artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: 'Linux*'
|
|
||||||
merge-multiple: true
|
|
||||||
- name: Upload Artifacts
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
ARTIFACT_TARGET: linux
|
|
||||||
run: pnpm artifact
|
|
||||||
|
|
||||||
updater:
|
updater:
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
needs: [windows, macos, windows7, macos10]
|
needs: [windows, macos, linux]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@ -452,10 +202,6 @@ jobs:
|
|||||||
run: npm install -g pnpm
|
run: npm install -g pnpm
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
- name: Telegram Notification
|
|
||||||
env:
|
|
||||||
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
||||||
run: pnpm telegram
|
|
||||||
- name: Generate latest.yml
|
- name: Generate latest.yml
|
||||||
run: pnpm updater
|
run: pnpm updater
|
||||||
- name: Publish Release
|
- name: Publish Release
|
||||||
@ -464,105 +210,3 @@ jobs:
|
|||||||
files: latest.yml
|
files: latest.yml
|
||||||
body_path: changelog.md
|
body_path: changelog.md
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
aur-release-updater:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
pkgname:
|
|
||||||
- mihomo-party-electron-bin
|
|
||||||
- mihomo-party-electron
|
|
||||||
- mihomo-party-bin
|
|
||||||
- mihomo-party
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
needs: linux
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Update Version
|
|
||||||
run: |
|
|
||||||
sed -i "s/pkgver=.*/pkgver=$(echo ${{ github.ref }} | tr -d 'refs/tags/v')/" aur/${{ matrix.pkgname }}/PKGBUILD
|
|
||||||
- name: Update Checksums
|
|
||||||
if: matrix.pkgname == 'mihomo-party' || matrix.pkgname == 'mihomo-party-electron'
|
|
||||||
run: |
|
|
||||||
wget https://github.com/mihomo-party-org/mihomo-party/archive/refs/tags/$(echo ${{ github.ref }} | tr -d 'refs/tags/').tar.gz -O release.tar.gz
|
|
||||||
sed -i "s/sha256sums=.*/sha256sums=(\"$(sha256sum ./release.tar.gz | awk '{print $1}')\"/" aur/mihomo-party/PKGBUILD
|
|
||||||
sed -i "s/sha256sums=.*/sha256sums=(\"$(sha256sum ./release.tar.gz | awk '{print $1}')\"/" aur/mihomo-party-electron/PKGBUILD
|
|
||||||
- name: Update Checksums
|
|
||||||
if: matrix.pkgname == 'mihomo-party-bin' || matrix.pkgname == 'mihomo-party-electron-bin'
|
|
||||||
run: |
|
|
||||||
wget https://github.com/mihomo-party-org/mihomo-party/releases/download/$(echo ${{ github.ref }} | tr -d 'refs/tags/')/mihomo-party-linux-$(echo ${{ github.ref }} | tr -d 'refs/tags/v')-amd64.deb -O amd64.deb
|
|
||||||
wget https://github.com/mihomo-party-org/mihomo-party/releases/download/$(echo ${{ github.ref }} | tr -d 'refs/tags/')/mihomo-party-linux-$(echo ${{ github.ref }} | tr -d 'refs/tags/v')-arm64.deb -O arm64.deb
|
|
||||||
sed -i "s/sha256sums_x86_64=.*/sha256sums_x86_64=(\"$(sha256sum ./amd64.deb | awk '{print $1}')\")/" aur/mihomo-party-bin/PKGBUILD
|
|
||||||
sed -i "s/sha256sums_aarch64=.*/sha256sums_aarch64=(\"$(sha256sum ./arm64.deb | awk '{print $1}')\")/" aur/mihomo-party-bin/PKGBUILD
|
|
||||||
sed -i "s/sha256sums_x86_64=.*/sha256sums_x86_64=(\"$(sha256sum ./amd64.deb | awk '{print $1}')\")/" aur/mihomo-party-electron-bin/PKGBUILD
|
|
||||||
sed -i "s/sha256sums_aarch64=.*/sha256sums_aarch64=(\"$(sha256sum ./arm64.deb | awk '{print $1}')\")/" aur/mihomo-party-electron-bin/PKGBUILD
|
|
||||||
- name: Publish AUR package
|
|
||||||
uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
|
|
||||||
with:
|
|
||||||
pkgname: ${{ matrix.pkgname }}
|
|
||||||
pkgbuild: aur/${{ matrix.pkgname }}/PKGBUILD
|
|
||||||
commit_username: pompurin404
|
|
||||||
commit_email: pompurin404@mihomo.party
|
|
||||||
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
|
||||||
commit_message: Update AUR package
|
|
||||||
ssh_keyscan_types: rsa,ed25519
|
|
||||||
allow_empty_commits: false
|
|
||||||
|
|
||||||
aur-git-updater:
|
|
||||||
if: startsWith(github.ref, 'refs/heads/')
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: update version
|
|
||||||
run: |
|
|
||||||
sed -i "s/pkgver=.*/pkgver=$(git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' | tr -d 'v')/" aur/mihomo-party-git/PKGBUILD
|
|
||||||
- name: Publish AUR package
|
|
||||||
uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
|
|
||||||
with:
|
|
||||||
pkgname: mihomo-party-git
|
|
||||||
pkgbuild: aur/mihomo-party-git/PKGBUILD
|
|
||||||
commit_username: pompurin404
|
|
||||||
commit_email: pompurin404@mihomo.party
|
|
||||||
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
|
||||||
commit_message: Update AUR package
|
|
||||||
ssh_keyscan_types: rsa,ed25519
|
|
||||||
allow_empty_commits: false
|
|
||||||
|
|
||||||
winget:
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
name: Update WinGet Package
|
|
||||||
needs: windows
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Get Tag Name
|
|
||||||
run: echo "VERSION=$(echo ${{ github.ref }} | tr -d 'refs/tags/v')" >> $GITHUB_ENV
|
|
||||||
- name: Submit to Winget
|
|
||||||
uses: vedantmgoyal9/winget-releaser@main
|
|
||||||
with:
|
|
||||||
identifier: Mihomo-Party.Mihomo-Party
|
|
||||||
version: ${{env.VERSION}}
|
|
||||||
release-tag: v${{env.VERSION}}
|
|
||||||
installers-regex: 'mihomo-party-windows-.*setup\.exe$'
|
|
||||||
token: ${{ secrets.POMPURIN404_TOKEN }}
|
|
||||||
|
|
||||||
homebrew:
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
|
||||||
name: Update Homebrew cask
|
|
||||||
needs: [macos, macos10]
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: Set up Git
|
|
||||||
run: |
|
|
||||||
git config --global user.email mihomo-party-bot[bot]@users.noreply.github.com
|
|
||||||
git config --global user.name mihomo-party-bot[bot]
|
|
||||||
- name: Update Homebrew cask
|
|
||||||
env:
|
|
||||||
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.POMPURIN404_TOKEN }}
|
|
||||||
run: |
|
|
||||||
brew tap mihomo-party-org/mihomo-party
|
|
||||||
brew update
|
|
||||||
brew bump-cask-pr mihomo-party --version $(echo ${{ github.ref }} | tr -d 'refs/tags/v') --no-browse
|
|
||||||
|
|||||||
@ -46,6 +46,11 @@ export async function mihomoVersion(): Promise<IMihomoVersion> {
|
|||||||
return await instance.get('/version')
|
return await instance.get('/version')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const mihomoConfig = async (): Promise<IMihomoConfigs> => {
|
||||||
|
const instance = await getAxios()
|
||||||
|
return await instance.get('/configs')
|
||||||
|
}
|
||||||
|
|
||||||
export const patchMihomoConfig = async (patch: Partial<IMihomoConfig>): Promise<void> => {
|
export const patchMihomoConfig = async (patch: Partial<IMihomoConfig>): Promise<void> => {
|
||||||
const instance = await getAxios()
|
const instance = await getAxios()
|
||||||
return await instance.patch('/configs', patch)
|
return await instance.patch('/configs', patch)
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import {
|
|||||||
mihomoUpgrade,
|
mihomoUpgrade,
|
||||||
mihomoUpgradeGeo,
|
mihomoUpgradeGeo,
|
||||||
mihomoVersion,
|
mihomoVersion,
|
||||||
|
mihomoConfig,
|
||||||
patchMihomoConfig
|
patchMihomoConfig
|
||||||
} from '../core/mihomoApi'
|
} from '../core/mihomoApi'
|
||||||
import { checkAutoRun, disableAutoRun, enableAutoRun } from '../sys/autoRun'
|
import { checkAutoRun, disableAutoRun, enableAutoRun } from '../sys/autoRun'
|
||||||
@ -112,6 +113,7 @@ function ipcErrorWrapper<T>( // eslint-disable-next-line @typescript-eslint/no-e
|
|||||||
}
|
}
|
||||||
export function registerIpcMainHandlers(): void {
|
export function registerIpcMainHandlers(): void {
|
||||||
ipcMain.handle('mihomoVersion', ipcErrorWrapper(mihomoVersion))
|
ipcMain.handle('mihomoVersion', ipcErrorWrapper(mihomoVersion))
|
||||||
|
ipcMain.handle('mihomoConfig', ipcErrorWrapper(mihomoConfig))
|
||||||
ipcMain.handle('mihomoCloseConnection', (_e, id) => ipcErrorWrapper(mihomoCloseConnection)(id))
|
ipcMain.handle('mihomoCloseConnection', (_e, id) => ipcErrorWrapper(mihomoCloseConnection)(id))
|
||||||
ipcMain.handle('mihomoCloseAllConnections', ipcErrorWrapper(mihomoCloseAllConnections))
|
ipcMain.handle('mihomoCloseAllConnections', ipcErrorWrapper(mihomoCloseAllConnections))
|
||||||
ipcMain.handle('mihomoRules', ipcErrorWrapper(mihomoRules))
|
ipcMain.handle('mihomoRules', ipcErrorWrapper(mihomoRules))
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { Button, Card, CardBody, CardFooter, Tooltip } from '@nextui-org/react'
|
|||||||
import { FaCircleArrowDown, FaCircleArrowUp } from 'react-icons/fa6'
|
import { FaCircleArrowDown, FaCircleArrowUp } from 'react-icons/fa6'
|
||||||
import { useLocation, useNavigate } from 'react-router-dom'
|
import { useLocation, useNavigate } from 'react-router-dom'
|
||||||
import { calcTraffic } from '@renderer/utils/calc'
|
import { calcTraffic } from '@renderer/utils/calc'
|
||||||
|
import { mihomoConfig } from '@renderer/utils/ipc'
|
||||||
import React, { useEffect, useState } from 'react'
|
import React, { useEffect, useState } from 'react'
|
||||||
import { useSortable } from '@dnd-kit/sortable'
|
import { useSortable } from '@dnd-kit/sortable'
|
||||||
import { CSS } from '@dnd-kit/utilities'
|
import { CSS } from '@dnd-kit/utilities'
|
||||||
@ -30,6 +31,7 @@ const ConnCard: React.FC<Props> = (props) => {
|
|||||||
|
|
||||||
const [upload, setUpload] = useState(0)
|
const [upload, setUpload] = useState(0)
|
||||||
const [download, setDownload] = useState(0)
|
const [download, setDownload] = useState(0)
|
||||||
|
const [interfaceName, setInterfaceName] = useState('')
|
||||||
const {
|
const {
|
||||||
attributes,
|
attributes,
|
||||||
listeners,
|
listeners,
|
||||||
@ -66,6 +68,7 @@ const ConnCard: React.FC<Props> = (props) => {
|
|||||||
window.electron.ipcRenderer.on('mihomoTraffic', async (_e, info: IMihomoTrafficInfo) => {
|
window.electron.ipcRenderer.on('mihomoTraffic', async (_e, info: IMihomoTrafficInfo) => {
|
||||||
setUpload(info.up)
|
setUpload(info.up)
|
||||||
setDownload(info.down)
|
setDownload(info.down)
|
||||||
|
mihomoConfig().then(config => setInterfaceName(config['interface-name']));
|
||||||
const data = series
|
const data = series
|
||||||
data.shift()
|
data.shift()
|
||||||
data.push(info.up + info.down)
|
data.push(info.up + info.down)
|
||||||
@ -159,11 +162,12 @@ const ConnCard: React.FC<Props> = (props) => {
|
|||||||
</div>
|
</div>
|
||||||
</CardBody>
|
</CardBody>
|
||||||
<CardFooter className="pt-1">
|
<CardFooter className="pt-1">
|
||||||
<h3
|
<div
|
||||||
className={`text-md font-bold ${match ? 'text-primary-foreground' : 'text-foreground'}`}
|
className={`flex justify-between items-center w-full text-md font-bold ${match ? 'text-primary-foreground' : 'text-foreground'}`}
|
||||||
>
|
>
|
||||||
连接
|
<h3>连接</h3>
|
||||||
</h3>
|
<h3 className="truncate max-w-[65%]">{interfaceName}</h3>
|
||||||
|
</div>
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
</Card>
|
</Card>
|
||||||
<ResponsiveContainer
|
<ResponsiveContainer
|
||||||
@ -222,8 +226,9 @@ const ConnCard: React.FC<Props> = (props) => {
|
|||||||
</h3>
|
</h3>
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
)
|
||||||
</div>
|
}
|
||||||
|
</div >
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,10 @@ export async function mihomoVersion(): Promise<IMihomoVersion> {
|
|||||||
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('mihomoVersion'))
|
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('mihomoVersion'))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function mihomoConfig(): Promise<IMihomoConfigs> {
|
||||||
|
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('mihomoConfig'))
|
||||||
|
}
|
||||||
|
|
||||||
export async function mihomoCloseConnection(id: string): Promise<void> {
|
export async function mihomoCloseConnection(id: string): Promise<void> {
|
||||||
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('mihomoCloseConnection', id))
|
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('mihomoCloseConnection', id))
|
||||||
}
|
}
|
||||||
|
|||||||
43
src/shared/types.d.ts
vendored
43
src/shared/types.d.ts
vendored
@ -47,6 +47,49 @@ interface IMihomoVersion {
|
|||||||
meta: boolean
|
meta: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface IMihomoConfigs {
|
||||||
|
port: number
|
||||||
|
'socks-port': number
|
||||||
|
'redir-port': number
|
||||||
|
'tproxy-port': number
|
||||||
|
'mixed-port': number
|
||||||
|
tun: IMihomoTunDetail
|
||||||
|
'allow-lan': boolean
|
||||||
|
'skip-auth-prefixes': string[]
|
||||||
|
'lan-allowed-ips': string[]
|
||||||
|
'lan-disallowed-ips': string[]
|
||||||
|
'bind-address': string
|
||||||
|
'interface-name': string
|
||||||
|
mode: OutboundMode
|
||||||
|
'unified-delay': boolean
|
||||||
|
'log-level': LogLevel
|
||||||
|
ipv6: boolean
|
||||||
|
'routing-mark': number
|
||||||
|
'tcp-concurrent': boolean
|
||||||
|
'find-process-mode': FindProcessMode
|
||||||
|
'geodata-mode': boolean
|
||||||
|
'global-client-fingerprint': string
|
||||||
|
'global-ua': string
|
||||||
|
'etag-support': boolean
|
||||||
|
'keep-alive-idle': number
|
||||||
|
'keep-alive-interval': number
|
||||||
|
'disable-keep-alive': boolean
|
||||||
|
sniffing: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IMihomoTunDetail {
|
||||||
|
enable: boolean
|
||||||
|
stack: TunStack
|
||||||
|
'auto-route': boolean
|
||||||
|
'auto-redirect'?: boolean
|
||||||
|
'auto-detect-interface': boolean
|
||||||
|
'dns-hijack': string[]
|
||||||
|
device: string
|
||||||
|
mtu: number
|
||||||
|
'inet4-address': string[]
|
||||||
|
'inet6-address': string[]
|
||||||
|
}
|
||||||
|
|
||||||
interface IMihomoTrafficInfo {
|
interface IMihomoTrafficInfo {
|
||||||
up: number
|
up: number
|
||||||
down: number
|
down: number
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user