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)