diff --git a/main.go b/main.go index a26de93..fa7414e 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "log" "os" "strings" + "os/exec" "path/filepath" "encoding/base64" @@ -18,6 +19,7 @@ const CREDENTIALS_DIR = "creds" const TOKEN_FILE = "token.json" const CREDENTIALS_FILE = "credentials.json" const USER = "me" +const EMAILADDR = "downloader.kasernen@gmail.com" func getEmail(service *gmail.Service, msgID string) *gmail.Message { r, err := service.Users.Messages.Get(USER, msgID).Format("FULL").Do() @@ -75,25 +77,35 @@ func main() { fmt.Println("No messages found") return } + fmt.Println("Messages:") for _, msg := range r.Messages { fmt.Printf("- %s\n", msg.Id) mail := getEmail(service, msg.Id) fromAddr, msgBody := getEmailPlaintext(mail) fmt.Printf("From: %s\n", fromAddr) - fmt.Printf("Message:\n%s\n", msgBody) + fmt.Printf("Link: %s", msgBody) + + cmd := exec.Command("yt-dlp", msgBody) + err = cmd.Run() + if err != nil { + log.Fatalf("Video download failed: %v", err) + } var message gmail.Message - messageStr := []byte( - "From: downloader.kasernen@gmail.com\r\n" + - "To: danielbrasholt@gmail.com\r\n" + + messageStr := fmt.Sprintf( + "From: %s\r\n" + + "To: %s\r\n" + "Subject: Request received\r\n\r\n" + - "Message body") - message.Raw = base64.URLEncoding.EncodeToString(messageStr) + "Message body", + EMAILADDR, + fromAddr) + message.Raw = base64.URLEncoding.EncodeToString([]byte(messageStr)) _, err = service.Users.Messages.Send(USER, &message).Do() if err != nil { log.Fatalf("Unable to send email: %v", err) } - fmt.Println("Email sent") + fmt.Printf("Download completed, confirmation sent to: %s\n", fromAddr) + fmt.Println() } }