package main import ( "flag" "log" "os" "path/filepath" "git.meatbag.se/varl/subsyt/internal/config" "git.meatbag.se/varl/subsyt/internal/dl" "git.meatbag.se/varl/subsyt/internal/metadata" "git.meatbag.se/varl/subsyt/internal/opml" "git.meatbag.se/varl/subsyt/internal/scheduler" ) func run(cfg config.Config) { provider := cfg.Provider["youtube"] opml, err := opml.Load(provider.Opml_file) if err != nil { panic(err) } for _, outlines := range opml.Body.Outline { log.Printf("Archiving videos from OPML: %s\n", outlines.Title) for _, outline := range outlines.Outlines { dl.Youtube(dl.Download{ Url: outline.XmlUrl, OutDir: filepath.Join(cfg.Out_dir, outline.Title), DryRun: cfg.Dry_run, }, provider) metadata.Generate(cfg.Out_dir, outline.Title, cfg.Dry_run) } } } func main() { configPtr := flag.String("config", "", "path to config file") flag.Parse() configEnv := os.Getenv("CONFIG") var configPath string if *configPtr != "" { configPath = *configPtr } else if configEnv != "" { configPath = configEnv } else { configPath = "./config.toml" } log.Println("resolved config file", configPath) cfg, err := config.Load(configPath) if err != nil { panic(err) } s := scheduler.Scheduler{} s.Start(run, cfg) }