package main import ( "encoding/json" "fmt" "log" "os" "github.com/jmoiron/sqlx" "github.com/spf13/viper" _ "github.com/go-sql-driver/mysql" "git.kplus.net.ua/yevhen/resource-scraper/internal/releaseparser/groups/moonblood" ) func main() { if len(os.Args) < 2 { log.Fatal("usage: srrdb [...]") } releasers := os.Args[1:] // Читаємо config/secret.yaml (без змісту в коді — тільки потрібні ключі) viper.SetConfigFile("config/secret.yaml") if err := viper.ReadInConfig(); err != nil { log.Fatal("failed to read config/secret.yaml: ", err) } drv := viper.GetString("db.driver") dsn := viper.GetString("db.data_source_name") dbase, err := sqlx.Connect(drv, dsn) if err != nil { panic("Failed to connect to the database: " + err.Error()) } defer dbase.Close() out := make(map[string]moonblood.GroupStats, len(releasers)) for _, releaser := range releasers { var titles []string err = dbase.Select(&titles, `SELECT title FROM theamok_mdb.external_sources WHERE type = 'prescene' AND releaser = ?`, releaser) if err != nil { log.Fatal(err) } out[releaser] = moonblood.AnalyzeTitles(titles) } data, err := json.MarshalIndent(out, "", " ") if err != nil { log.Fatal(err) } fmt.Println(string(data)) }