feat: add Apple jobs crawler and implement duplicate-prevention logic for target loading

This commit is contained in:
2026-08-15 00:56:20 -07:00
parent 3d0156a7d8
commit f8bfc4b5e3
5 changed files with 335 additions and 8 deletions
+11 -8
View File
@@ -28,20 +28,23 @@ func (db *DB) LoadTargetsFromYAML(filepath string) error {
return fmt.Errorf("could not parse target config: %w", err)
}
// Check if we already have targets
targets, err := db.GetAllTargets()
// Get existing targets to prevent duplicates
existingTargets, err := db.GetAllTargets()
if err != nil {
return err
}
if len(targets) > 0 {
// Do not overwrite existing targets
return nil
existingURLs := make(map[string]bool)
for _, t := range existingTargets {
existingURLs[t.TargetURL] = true
}
for _, t := range config.Targets {
_, err := db.CreateTarget(t.Name, t.TargetURL, t.Platform)
if err != nil {
return fmt.Errorf("failed to insert target %s: %w", t.Name, err)
if !existingURLs[t.TargetURL] {
_, err := db.CreateTarget(t.Name, t.TargetURL, t.Platform)
if err != nil {
return fmt.Errorf("failed to insert target %s: %w", t.Name, err)
}
}
}
return nil