From cb0eea614027fe69ef1357918c35d58b8b03383d Mon Sep 17 00:00:00 2001 From: bel Date: Thu, 30 Jan 2020 03:27:49 +0000 Subject: [PATCH] add email notifications on failure --- config/config.go | 63 ++++++++++++++++++++++++++++++------------------ main.go | 8 +++++- 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/config/config.go b/config/config.go index 4be805c..2b8e1ea 100755 --- a/config/config.go +++ b/config/config.go @@ -1,29 +1,46 @@ package config -import "os" - -var ( - Feed = orEnv("FEED", "https://www.youtube.com/feeds/videos.xml?channel_id=UCwX0AEx-qIhQ9kgtlNhyIXw") - Root = orEnv("ROOT", "/tmp") +import ( + "local/args" + "local/sandbox/contact/contact" + "os" ) -func orEnv(k, v string) string { - if w, ok := os.LookupEnv(k); ok { - return w - } - return v -} +var ( + Feed string + Root string + To string + Subject string + Emailer *contact.Emailer +) -/* -config = { - "path" : "../TV/Shepherds_Chapel" , - "rss" : "https://www.youtube.com/feeds/videos.xml?channel_id=UCwX0AEx-qIhQ9kgtlNhyIXw" , - "last" : 0 , - "lasttime" : datetime.datetime(1999,1,1) , - "onlynew" : False , - "delay" : 12 , - "clear" : False , - "logloc" : "./log" , - "idle" : False , +func init() { + os.Setenv("LC_ALL", "C.UTF-8") + + as := args.NewArgSet() + + as.Append(args.STRING, "to", "message recipient", "squeaky2x3@gmail.com") + as.Append(args.STRING, "subject", "message subject", "youtuber error") + as.Append(args.STRING, "from", "message sender", "breellocaldev@gmail.com") + as.Append(args.STRING, "password", "message sender password", "ML3WQRFSqe9rQ8qNkm") + as.Append(args.STRING, "smtp", "smtp server:port", "smtp.gmail.com:465") + as.Append(args.STRING, "pop3", "pop3 server:port", "pop.gmail.com:995") + + as.Append(args.STRING, "feed", "feed URL", "https://www.youtube.com/feeds/videos.xml?channel_id=UCwX0AEx-qIhQ9kgtlNhyIXw") + as.Append(args.STRING, "root", "root to save videos", "/tmp") + + if err := as.Parse(); err != nil { + panic(err) + } + + Feed = as.Get("feed").GetString() + Root = as.Get("root").GetString() + To = as.Get("to").GetString() + Subject = as.Get("subject").GetString() + Emailer = &contact.Emailer{ + From: as.Get("from").GetString(), + SMTP: as.Get("smtp").GetString(), + POP3: as.Get("pop3").GetString(), + Password: as.Get("password").GetString(), + } } -*/ diff --git a/main.go b/main.go index a025170..bdbddc3 100755 --- a/main.go +++ b/main.go @@ -14,7 +14,6 @@ import ( ) func main() { - os.Setenv("LC_ALL", "C.UTF-8") client, err := youtubedl.New() if err != nil { panic(err) @@ -24,6 +23,13 @@ func main() { err := do(client) if err != nil { log.Println(err) + if err := config.Emailer.Send( + config.To, + config.Subject, + fmt.Sprintf("error getting youtuber: %v", err), + ); err != nil { + panic(err) + } } log.Printf("sleeping until %v", time.Now().Add(interval)) time.Sleep(interval)