package main import ( "encoding/json" "fmt" "log" _ "database/sql" _ "github.com/go-sql-driver/mysql" _ "github.com/mattn/go-sqlite3" "github.com/jmoiron/sqlx" ) type App struct { Offers []Angebot Shops []Shop Config *Config DB *sqlx.DB } type Angebot struct { Name string Shop string Url string Original_price int Discounted_price int Image_url string Spirit_type string Valid_until string } type Shop struct { Name string Url string Logo_url string Shipping_costs int Free_shipping string } func main() { var err error app := App{Config: &Config{}} app.Config.parseConfig("") if "sqlite3" == app.Config.DBDriver { //app.DB, err = sqlx.Connect(app.Config.DBDriver, app.Config.DBPath) app.DB, err = sqlx.Connect(app.Config.DBDriver, "./alkobote.db") } else { app.DB, err = sqlx.Connect(app.Config.DBDriver, app.Config.DBUser+":"+app.Config.DBPassword+"@"+app.Config.DBHost+"/"+app.Config.DBDBName+app.Config.DBOptions) } if err != nil { log.Fatal(err) } err = app.createTables() if err != nil { log.Fatal(err) } W := ScrapeBottleWord() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "BottleWorld") W = ScrapeMCWhisky() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "MC Whisky") W = ScrapeRumundCo() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Rum und Co") W = ScrapeWhic() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Whic") W = ScrapeWhiskyde() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Whisky.de") W = ScrapeWhiskysitenl() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Whiskysite.nl") W = ScrapeWhiskyworld() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Whiskyworld") W = ScrapeWhiskyzone() err = app.save_offer(W) if err != nil { log.Fatal(err) } printName(W, "Whiskyzone") } func printName(W []Angebot, name string) { fmt.Println("-------------------") fmt.Println("Sonderangebote von " + name) fmt.Println("-------------------") output, err := json.MarshalIndent(W, "", " ") if err != nil { log.Fatal(err) } fmt.Println(string(output)) }