diff options
| author | Max | 2018-02-05 17:47:03 +0100 |
|---|---|---|
| committer | Max | 2018-02-05 17:47:03 +0100 |
| commit | 7ca22dc3e6a5fb1815de2c42b868458e1efb9ef9 (patch) | |
| tree | 218bd25f29136169163cc46160b6fe75b999e2e1 /main.go | |
| parent | 5064a5f7562c6edfb446b176ca029f90bf6316d0 (diff) | |
| download | alkobote-7ca22dc3e6a5fb1815de2c42b868458e1efb9ef9.tar.gz | |
Adds detection of expired offers.
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 81 |
1 files changed, 31 insertions, 50 deletions
@@ -4,10 +4,11 @@ import ( "encoding/json" "fmt" "log" + "time" _ "database/sql" _ "github.com/go-sql-driver/mysql" - _ "github.com/mattn/go-sqlite3" + //_ "github.com/mattn/go-sqlite3" "github.com/jmoiron/sqlx" ) @@ -17,9 +18,12 @@ type App struct { Shops []Shop Config *Config DB *sqlx.DB + Now int64 + Debug bool } type Angebot struct { + Id int Name string Shop string Url string @@ -27,7 +31,7 @@ type Angebot struct { Discounted_price int Image_url string Spirit_type string - Valid_until string + Valid_until int } type Shop struct { @@ -45,79 +49,43 @@ func main() { app := App{Config: &Config{}} app.Config.parseConfig("") + app.Now = time.Now().Unix() + 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") + app.DB, err = sqlx.Connect(app.Config.DBDriver, app.Config.DBPath) } 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) + if app.Config.Debug { + log.Println(app.Config.DBUser + ":" + app.Config.DBPassword + "@tcp(" + app.Config.DBHost + ":" + app.Config.DBPort + ")/" + app.Config.DBDBName + app.Config.DBOptions) + } + app.DB, err = sqlx.Connect(app.Config.DBDriver, app.Config.DBUser+":"+app.Config.DBPassword+"@tcp("+app.Config.DBHost+":"+app.Config.DBPort+")/"+app.Config.DBDBName+app.Config.DBOptions) } - printName(W, "Rum und Co") + defer app.DB.Close() - W = ScrapeWhic() - err = app.save_offer(W) if err != nil { log.Fatal(err) } - printName(W, "Whic") - W = ScrapeWhiskyde() - err = app.save_offer(W) + err = app.createTables() 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 := ScrapeHTML() - W = ScrapeWhiskyworld() err = app.save_offer(W) if err != nil { log.Fatal(err) } - printName(W, "Whiskyworld") - - W = ScrapeWhiskyzone() - err = app.save_offer(W) + err = app.remove_expired(W) if err != nil { log.Fatal(err) } - printName(W, "Whiskyzone") } func printName(W []Angebot, name string) { + return fmt.Println("-------------------") fmt.Println("Sonderangebote von " + name) fmt.Println("-------------------") @@ -129,3 +97,16 @@ func printName(W []Angebot, name string) { fmt.Println(string(output)) } + +func ScrapeHTML() []Angebot { + W := ScrapeBottleWord() + W = append(W, ScrapeMCWhisky()...) + W = append(W, ScrapeRumundCo()...) + W = append(W, ScrapeWhic()...) + W = append(W, ScrapeWhiskyde()...) + W = append(W, ScrapeWhiskysitenl()...) + W = append(W, ScrapeWhiskyworld()...) + W = append(W, ScrapeWhiskyzone()...) + + return W +} |
