mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2025-12-26 20:50:30 +08:00
fix: deleted subscriptions reappearing
* chore: udpate download link * fix: deleted subscriptions reappearing --------- Co-authored-by: ezequielnick <107352853+ezequielnick@users.noreply.github.com>
This commit is contained in:
parent
4946d73183
commit
195306f251
@ -1,6 +1,6 @@
|
||||
import { getControledMihomoConfig } from './controledMihomo'
|
||||
import { mihomoProfileWorkDir, mihomoWorkDir, profileConfigPath, profilePath } from '../utils/dirs'
|
||||
import { addProfileUpdater } from '../core/profileUpdater'
|
||||
import { addProfileUpdater, removeProfileUpdater } from '../core/profileUpdater'
|
||||
import { readFile, rm, writeFile } from 'fs/promises'
|
||||
import { restartCore } from '../core/manager'
|
||||
import { getAppConfig } from './app'
|
||||
@ -82,6 +82,9 @@ export async function addProfileItem(item: Partial<IProfileItem>): Promise<void>
|
||||
}
|
||||
|
||||
export async function removeProfileItem(id: string): Promise<void> {
|
||||
// 先清理自动更新定时器,防止已删除的订阅重新出现
|
||||
await removeProfileUpdater(id)
|
||||
|
||||
const config = await getProfileConfig()
|
||||
config.items = config.items?.filter((item) => item.id !== id)
|
||||
let shouldRestart = false
|
||||
|
||||
@ -112,4 +112,15 @@ export async function addProfileUpdater(item: IProfileItem): Promise<void> {
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function removeProfileUpdater(id: string): Promise<void> {
|
||||
if (intervalPool[id]) {
|
||||
if (intervalPool[id] instanceof Cron) {
|
||||
(intervalPool[id] as Cron).stop()
|
||||
} else {
|
||||
clearInterval(intervalPool[id] as NodeJS.Timeout)
|
||||
}
|
||||
delete intervalPool[id]
|
||||
}
|
||||
}
|
||||
@ -104,7 +104,7 @@ import { getImageDataURL } from './image'
|
||||
import { startMonitor } from '../resolve/trafficMonitor'
|
||||
import { closeFloatingWindow, showContextMenu, showFloatingWindow } from '../resolve/floatingWindow'
|
||||
import i18next from 'i18next'
|
||||
import { addProfileUpdater } from '../core/profileUpdater'
|
||||
import { addProfileUpdater, removeProfileUpdater } from '../core/profileUpdater'
|
||||
|
||||
function ipcErrorWrapper<T>( // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
fn: (...args: any[]) => Promise<T> // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
@ -187,6 +187,7 @@ export function registerIpcMainHandlers(): void {
|
||||
ipcMain.handle('addProfileItem', (_e, item) => ipcErrorWrapper(addProfileItem)(item))
|
||||
ipcMain.handle('removeProfileItem', (_e, id) => ipcErrorWrapper(removeProfileItem)(id))
|
||||
ipcMain.handle('addProfileUpdater', (_e, item) => ipcErrorWrapper(addProfileUpdater)(item))
|
||||
ipcMain.handle('removeProfileUpdater', (_e, id) => ipcErrorWrapper(removeProfileUpdater)(id))
|
||||
ipcMain.handle('getOverrideConfig', (_e, force) => ipcErrorWrapper(getOverrideConfig)(force))
|
||||
ipcMain.handle('setOverrideConfig', (_e, config) => ipcErrorWrapper(setOverrideConfig)(config))
|
||||
ipcMain.handle('getOverrideItem', (_e, id) => ipcErrorWrapper(getOverrideItem)(id))
|
||||
|
||||
@ -167,6 +167,10 @@ export async function addProfileUpdater(item: IProfileItem): Promise<void> {
|
||||
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('addProfileUpdater', item))
|
||||
}
|
||||
|
||||
export async function removeProfileUpdater(id: string): Promise<void> {
|
||||
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('removeProfileUpdater', id))
|
||||
}
|
||||
|
||||
export async function getProfileStr(id: string): Promise<string> {
|
||||
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('getProfileStr', id))
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user