summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorMax2018-02-05 17:47:03 +0100
committerMax2018-02-05 17:47:03 +0100
commit7ca22dc3e6a5fb1815de2c42b868458e1efb9ef9 (patch)
tree218bd25f29136169163cc46160b6fe75b999e2e1 /main.go
parent5064a5f7562c6edfb446b176ca029f90bf6316d0 (diff)
downloadalkobote-7ca22dc3e6a5fb1815de2c42b868458e1efb9ef9.tar.gz
Adds detection of expired offers.
Diffstat (limited to 'main.go')
-rw-r--r--main.go81
1 files changed, 31 insertions, 50 deletions
diff --git a/main.go b/main.go
index beb3aa1..3dc3fc0 100644
--- a/main.go
+++ b/main.go
@@ -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
+}