60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
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 <releaser> [<releaser>...]")
|
|
}
|
|
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))
|
|
}
|