更新 金票普票筛选和自动脚本消费主播过滤
This commit is contained in:
@@ -250,6 +250,24 @@ onMounted(() => {
|
||||
}
|
||||
})
|
||||
|
||||
// 监听过滤器变化,同步到后端配置
|
||||
watch(() => filters.value, async (newFilters) => {
|
||||
if (!isElectron()) return
|
||||
try {
|
||||
await window.electronAPI.updateAutomationConfig({
|
||||
filters: {
|
||||
gold: newFilters.gold,
|
||||
ordinary: newFilters.ordinary,
|
||||
minOnlineFans: newFilters.minOnlineFans ? parseInt(newFilters.minOnlineFans) : 0,
|
||||
maxOnlineFans: newFilters.maxOnlineFans ? parseInt(newFilters.maxOnlineFans) : 0,
|
||||
}
|
||||
})
|
||||
console.log('[HostListDialog] 过滤配置已同步:', newFilters)
|
||||
} catch (e) {
|
||||
console.error('同步过滤配置失败:', e)
|
||||
}
|
||||
}, { deep: true })
|
||||
|
||||
// Loading
|
||||
const loadHosts = async () => {
|
||||
if (!isElectron()) return
|
||||
@@ -272,6 +290,20 @@ const loadConfig = async () => {
|
||||
if (config?.filters?.hostsLevelList) {
|
||||
selectedLevels.value = new Set(config.filters.hostsLevelList)
|
||||
}
|
||||
// 加载金票/普票过滤配置
|
||||
if (config?.filters?.gold !== undefined) {
|
||||
filters.value.gold = config.filters.gold
|
||||
}
|
||||
if (config?.filters?.ordinary !== undefined) {
|
||||
filters.value.ordinary = config.filters.ordinary
|
||||
}
|
||||
// 加载在线人数过滤配置
|
||||
if (config?.filters?.minOnlineFans !== undefined && config.filters.minOnlineFans > 0) {
|
||||
filters.value.minOnlineFans = config.filters.minOnlineFans
|
||||
}
|
||||
if (config?.filters?.maxOnlineFans !== undefined && config.filters.maxOnlineFans > 0 && config.filters.maxOnlineFans < 9999999999999) {
|
||||
filters.value.maxOnlineFans = config.filters.maxOnlineFans
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('加载配置失败:', e)
|
||||
}
|
||||
|
||||
@@ -706,13 +706,40 @@ const handleStart = async (specificGroupIndex) => {
|
||||
}
|
||||
}
|
||||
|
||||
await Promise.allSettled(
|
||||
const results = await Promise.allSettled(
|
||||
startTasks.map(async ({ viewId, account, delay }) => {
|
||||
await new Promise(r => setTimeout(r, delay))
|
||||
return window.electronAPI.startTikTokAutomation(viewId, account)
|
||||
})
|
||||
)
|
||||
|
||||
// 检查启动结果
|
||||
const failedResults = results
|
||||
.map((r, i) => ({ result: r, task: startTasks[i] }))
|
||||
.filter(({ result }) => {
|
||||
if (result.status === 'rejected') return true
|
||||
if (result.status === 'fulfilled' && !result.value.success) return true
|
||||
return false
|
||||
})
|
||||
|
||||
// 如果全部失败,显示错误并不跳转
|
||||
if (failedResults.length === startTasks.length) {
|
||||
const firstError = failedResults[0]
|
||||
let errorMsg = '启动失败'
|
||||
if (firstError.result.status === 'rejected') {
|
||||
errorMsg = firstError.result.reason?.message || '启动失败'
|
||||
} else if (firstError.result.status === 'fulfilled') {
|
||||
errorMsg = firstError.result.value.error || '启动失败'
|
||||
}
|
||||
alert(`启动失败:${errorMsg}`)
|
||||
return
|
||||
}
|
||||
|
||||
// 如果部分失败,显示警告但继续
|
||||
if (failedResults.length > 0) {
|
||||
console.warn(`部分账号启动失败: ${failedResults.length}/${startTasks.length}`)
|
||||
}
|
||||
|
||||
setIsRunning(true)
|
||||
currentGroupIndex.value = activeGroupIndex
|
||||
const status = await window.electronAPI.getRotationStatus()
|
||||
|
||||
Reference in New Issue
Block a user