From 6712c161673f94c27063a91db27249f81e075835 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sun, 29 Mar 2026 08:35:56 -0500 Subject: [PATCH] Updated to feedkit v0.9.0 --- cmd/weatherfeeder/main.go | 16 ++++------------ cmd/weatherfeeder/main_test.go | 27 +++++++++++++++++++++++++++ go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/cmd/weatherfeeder/main.go b/cmd/weatherfeeder/main.go index 9405691..6569c8f 100644 --- a/cmd/weatherfeeder/main.go +++ b/cmd/weatherfeeder/main.go @@ -59,19 +59,11 @@ func main() { log.Fatalf("source expected kinds validation failed (sources[%d] name=%q driver=%q): %v", i, sc.Name, sc.Driver, err) } - // If this is a polling source, every is required. - if _, ok := in.(fksources.PollSource); ok && sc.Every.Duration <= 0 { - log.Fatalf( - "polling source missing/invalid interval (sources[%d] name=%q driver=%q): sources[].every must be > 0", - i, sc.Name, sc.Driver, - ) + job, err := fkscheduler.JobFromSourceConfig(in, sc) + if err != nil { + log.Fatalf("build scheduler job failed (sources[%d] name=%q driver=%q): %v", i, sc.Name, sc.Driver, err) } - - // For stream sources, Every is ignored; it is fine if omitted/zero. - jobs = append(jobs, fkscheduler.Job{ - Source: in, - Every: sc.Every.Duration, - }) + jobs = append(jobs, job) } // --- Build sinks --- diff --git a/cmd/weatherfeeder/main_test.go b/cmd/weatherfeeder/main_test.go index 5aef5cb..a978f13 100644 --- a/cmd/weatherfeeder/main_test.go +++ b/cmd/weatherfeeder/main_test.go @@ -13,9 +13,11 @@ import ( fkprocessors "gitea.maximumdirect.net/ejr/feedkit/processors" fkdedupe "gitea.maximumdirect.net/ejr/feedkit/processors/dedupe" fknormalize "gitea.maximumdirect.net/ejr/feedkit/processors/normalize" + fkscheduler "gitea.maximumdirect.net/ejr/feedkit/scheduler" fksources "gitea.maximumdirect.net/ejr/feedkit/sources" wfnormalizers "gitea.maximumdirect.net/ejr/weatherfeeder/internal/normalizers" + wfsources "gitea.maximumdirect.net/ejr/weatherfeeder/internal/sources" ) type testInput struct { @@ -74,6 +76,31 @@ func TestExampleConfigLoads(t *testing.T) { } } +func TestExampleConfigSourcesBuildSchedulerJobs(t *testing.T) { + cfg, err := config.Load("config.yml") + if err != nil { + t.Fatalf("config.Load(config.yml) unexpected error: %v", err) + } + + reg := fksources.NewRegistry() + wfsources.RegisterBuiltins(reg) + + for i, sc := range cfg.Sources { + in, err := reg.BuildInput(sc) + if err != nil { + t.Fatalf("BuildInput(sources[%d]) error = %v", i, err) + } + + job, err := fkscheduler.JobFromSourceConfig(in, sc) + if err != nil { + t.Fatalf("JobFromSourceConfig(sources[%d]) error = %v", i, err) + } + if job.Source == nil { + t.Fatalf("JobFromSourceConfig(sources[%d]) returned nil source", i) + } + } +} + func TestProcessorRegistryBuildsNormalizeThenDedupeChain(t *testing.T) { chain, err := buildProcessorChainForTests() if err != nil { diff --git a/go.mod b/go.mod index 4ef4814..c75e622 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module gitea.maximumdirect.net/ejr/weatherfeeder go 1.25 -require gitea.maximumdirect.net/ejr/feedkit v0.8.2 +require gitea.maximumdirect.net/ejr/feedkit v0.9.0 require ( github.com/klauspost/compress v1.17.2 // indirect diff --git a/go.sum b/go.sum index 7d05c8c..b3dba72 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -gitea.maximumdirect.net/ejr/feedkit v0.8.2 h1:6AMxNacfqJ8SXQhFAUMW3LgiVxixs50tf+S8Q9Ivm+Y= -gitea.maximumdirect.net/ejr/feedkit v0.8.2/go.mod h1:U6xC9xZLN3cL4yi7YBVyzGoHYRLJXusFCAKlj2kdYYQ= +gitea.maximumdirect.net/ejr/feedkit v0.9.0 h1:8D580icx+FRj5Do+xCp23FCRSS+PCh2BfZZBmsqpFms= +gitea.maximumdirect.net/ejr/feedkit v0.9.0/go.mod h1:U6xC9xZLN3cL4yi7YBVyzGoHYRLJXusFCAKlj2kdYYQ= github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=