Files
Ant-Browser/backend/automation_script_api.go
T
ant-black 70132417ad publish: 1.2.0 snapshot (f3d7ec5)
channel: master

version: 1.2.0

source-ref: D:\code\open_source\ant-chrome master

source-commit: f3d7ec5

merged-public-base: 3d264eb
2026-05-05 18:08:10 +08:00

74 lines
2.1 KiB
Go

package backend
import (
"path/filepath"
"strings"
"ant-chrome/backend/internal/automation"
)
func (a *App) automationScriptStore() *automation.ScriptStore {
return automation.NewScriptStore(a.resolveAppPath(filepath.ToSlash(filepath.Join("data", "automation", "scripts"))))
}
func (a *App) AutomationScriptList() ([]automation.ScriptRecord, error) {
store := a.automationScriptStore()
if err := a.ensureAutomationScriptDefaults(store); err != nil {
return nil, err
}
items, err := store.List()
if err != nil {
return nil, err
}
return a.enrichAutomationScriptRecords(items), nil
}
func (a *App) AutomationScriptGet(scriptID string) (*automation.ScriptRecord, error) {
store := a.automationScriptStore()
if err := a.ensureAutomationScriptDefaults(store); err != nil {
return nil, err
}
record, err := store.Get(scriptID)
if err != nil {
return nil, err
}
enriched := a.enrichAutomationScriptRecord(record)
return &enriched, nil
}
func (a *App) AutomationScriptSave(input automation.ScriptRecord) (*automation.ScriptRecord, error) {
record, err := a.automationScriptStore().Save(a.enrichAutomationScriptRecord(input))
if err != nil {
return nil, err
}
return &record, nil
}
func (a *App) AutomationScriptDelete(scriptID string) error {
return a.automationScriptStore().Delete(scriptID)
}
func (a *App) enrichAutomationScriptRecords(items []automation.ScriptRecord) []automation.ScriptRecord {
if len(items) == 0 {
return []automation.ScriptRecord{}
}
result := make([]automation.ScriptRecord, 0, len(items))
for _, item := range items {
result = append(result, a.enrichAutomationScriptRecord(item))
}
return result
}
func (a *App) enrichAutomationScriptRecord(record automation.ScriptRecord) automation.ScriptRecord {
switch strings.ToLower(strings.TrimSpace(record.TargetConfig.Mode)) {
case "existing":
record.TargetConfig.Selector = a.enrichAutomationExactTargetSelector(record.TargetConfig.Selector)
case "create":
record.TargetConfig.TemplateSelector = a.enrichAutomationExactTargetSelector(record.TargetConfig.TemplateSelector)
}
return record
}