amuse.git

commit 3170a2bda9a76d74160c154e89f7f4a315fdeeee

Author: Adam <git@apiote.tk>

update films’ and tvseries’ data

 db/db.go | 32 ++++++++++++++++++++++++++++++++
 libamuse/manage.go | 29 +++++++++++++++++++++++++++++
 main.go | 7 +++++++


diff --git a/db/db.go b/db/db.go
index c37e984dc5e90c267daa3e95e27d3f607696b47d..978e7af9a3db4b9e12773756193e5ee4f3872f61 100644
--- a/db/db.go
+++ b/db/db.go
@@ -902,6 +902,38 @@
 	return tvQueue, nil
 }
 
+func GetWantlistUris() ([]string, error) {
+	uris := []string{}
+	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	if err != nil {
+		fmt.Fprintf(os.Stderr, "DB open err\n")
+		return uris, err
+	}
+	defer db.Close()
+
+	rows, err := db.Query(`select item_type, item_id from wantlist where item_type in ('film', 'tvserie')`)
+	if err != nil {
+		fmt.Fprintf(os.Stderr, "Select err: %v\n", err)
+		return uris, err
+	}
+	defer rows.Close()
+	
+	for rows.Next() {
+		var (
+			itemType string
+			itemId string
+		)
+		err := rows.Scan(&itemType, &itemId)
+		if err != nil {
+			fmt.Println("Scan error")
+			return uris, err
+		}
+		uris = append(uris, itemType+"/"+itemId)
+	}
+	return uris, nil
+}
+
+
 func GetUserExperiences(username, filter string, page int) (datastructure.Experiences, error) {
 	experiences := datastructure.Experiences{}
 	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")




diff --git a/libamuse/manage.go b/libamuse/manage.go
index 7fa56f2d726ebdb52692c543e040d01ce67fd8c9..f93bed1ab5cc7b06014e5024a6c4aaca84e1ef79 100644
--- a/libamuse/manage.go
+++ b/libamuse/manage.go
@@ -1,9 +1,38 @@
 package libamuse
 
 import (
+	"notabug.org/apiote/amuse/accounts"
+	"notabug.org/apiote/amuse/datastructure"
 	"notabug.org/apiote/amuse/db"
+
+	"strings"
+
+	"fmt"
 )
 
 func MakeAdmin(username string) error {
 	return db.MakeAdmin(username)
 }
+
+func TouchWantlist() error {
+	uris, err := db.GetWantlistUris()
+	if err != nil {
+		return err
+	}
+	auth := accounts.Authentication{Token: ""}
+	for _, uri := range uris {
+		fmt.Printf("Touching %s\n", uri)
+		type_id := strings.Split(uri, "/")
+		itemType := datastructure.ItemType(type_id[0])
+		itemId := type_id[1]
+		switch itemType {
+		case datastructure.ItemTypeFilm:
+			_, _ = ShowFilm(itemId, "en-GB", "text/html", auth)
+		case datastructure.ItemTypeTvserie:
+			_, _ = ShowTvSerie(itemId, "", "en-GB", "text/html", auth)
+		}
+
+	}
+
+	return nil
+}




diff --git a/main.go b/main.go
index 698409be3efaef6f50c7e25962f7318e973e9347..ac019a3e02120722cec70b8b65f57112cdc47179 100644
--- a/main.go
+++ b/main.go
@@ -38,6 +38,13 @@ 			os.Exit(1)
 		} else {
 			return
 		}
+	case "touch":
+		err := libamuse.TouchWantlist()
+		if err != nil {
+			os.Exit(1)
+		} else {
+			return
+		}
 	}
 
 	route(utils.Port)