package main import ( "strings" log "github.com/sirupsen/logrus" ) func (app *App) insertShops() error { shops := getShopsFromStruct() query := `INSERT IGNORE INTO shop (name, url, short_url, logo_url, shipping_costs, free_shipping) VALUES(?, ?, ?, ?, ?, ?)` for _, v := range shops { _, err := app.DB.Exec(query, v.Name, v.Url, v.Short_url, v.Logo_url, v.Shipping_costs, v.Free_shipping) if err != nil { return err } } return nil } func getShopsFromStruct() []Shop { Shops := []Shop{} Shops = append(Shops, Shop{ Name: "Bottleworld", Url: "https://www.bottleworld.de", Short_url: "https://l.fuselkoenig.de/bottleworld", Logo_url: "", Shipping_costs: 599, Free_shipping: "130€", }) Shops = append(Shops, Shop{ Name: "MC Whisky", Url: "https://www.mcwhisky.com", Short_url: "https://l.fuselkoenig.de/mcwhisky", Logo_url: "", Shipping_costs: 590, Free_shipping: "75€", }) Shops = append(Shops, Shop{ Name: "Rum & Co", Url: "https://www.rumundco.de", Short_url: "https://l.fuselkoenig.de/rumundco", Logo_url: "", Shipping_costs: 595, Free_shipping: "100€", }) Shops = append(Shops, Shop{ Name: "Whic", Url: "https://whic.de", Short_url: "https://l.fuselkoenig.de/whic", Logo_url: "", Shipping_costs: 590, Free_shipping: "79€", }) Shops = append(Shops, Shop{ Name: "Whisky.de", Url: "https://www.whisky.de", Short_url: "https://l.fuselkoenig.de/whiskyde", Logo_url: "", Shipping_costs: 395, Free_shipping: "50€", }) Shops = append(Shops, Shop{ Name: "Whiskysite", Url: "https://www.whiskysite.nl", Short_url: "https://l.fuselkoenig.de/whiskysite", Logo_url: "", Shipping_costs: 795, Free_shipping: "", }) Shops = append(Shops, Shop{ Name: "Whisky World", Url: "https://www.whiskyworld.de", Short_url: "https://l.fuselkoenig.de/whiskyworld", Logo_url: "", Shipping_costs: 460, Free_shipping: "77€", }) Shops = append(Shops, Shop{ Name: "Whiskyzone", Url: "https://www.whiskyzone.de", Short_url: "https://l.fuselkoenig.de/whiskyzone", Logo_url: "", Shipping_costs: 495, Free_shipping: "75€", }) Shops = append(Shops, Shop{ Name: "Drankdozijn", Url: "https://Drankdozijn.de", Short_url: "https://l.fuselkoenig.de/drankdozijn", Logo_url: "", Shipping_costs: 595, Free_shipping: "250€", }) return Shops } func (app *App) getShops() ([]Shop, error) { Shops := []Shop{} var shop_query string if len(app.Config.ShopIDs) > 0 { shopIDs := strings.Join(app.Config.ShopIDs, `, `) if shopIDs != "" { shop_query = " WHERE id IN (" + shopIDs + ")" } } else if len(app.Config.ExcludeShopIDs) > 0 { excludeShopIDs := strings.Join(app.Config.ExcludeShopIDs, `, `) if excludeShopIDs != "" { shop_query = " WHERE id NOT IN (" + excludeShopIDs + ")" } } query := `SELECT id,name,short_url,url,logo_url,shipping_costs,free_shipping FROM shop ` + shop_query rows, err := app.DB.Queryx(query) if err != nil { return []Shop{}, err } defer rows.Close() for rows.Next() { var shop Shop err = rows.StructScan(&shop) if err != nil { return []Shop{}, err } log.Debug("Crawling: " + shop.Name) Shops = append(Shops, shop) } return Shops, nil }