download video, then email sender
This commit is contained in:
parent
b0442e619c
commit
b874389ed2
26
main.go
26
main.go
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
|
||||||
|
|
@ -18,6 +19,7 @@ const CREDENTIALS_DIR = "creds"
|
||||||
const TOKEN_FILE = "token.json"
|
const TOKEN_FILE = "token.json"
|
||||||
const CREDENTIALS_FILE = "credentials.json"
|
const CREDENTIALS_FILE = "credentials.json"
|
||||||
const USER = "me"
|
const USER = "me"
|
||||||
|
const EMAILADDR = "downloader.kasernen@gmail.com"
|
||||||
|
|
||||||
func getEmail(service *gmail.Service, msgID string) *gmail.Message {
|
func getEmail(service *gmail.Service, msgID string) *gmail.Message {
|
||||||
r, err := service.Users.Messages.Get(USER, msgID).Format("FULL").Do()
|
r, err := service.Users.Messages.Get(USER, msgID).Format("FULL").Do()
|
||||||
|
|
@ -75,25 +77,35 @@ func main() {
|
||||||
fmt.Println("No messages found")
|
fmt.Println("No messages found")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("Messages:")
|
fmt.Println("Messages:")
|
||||||
for _, msg := range r.Messages {
|
for _, msg := range r.Messages {
|
||||||
fmt.Printf("- %s\n", msg.Id)
|
fmt.Printf("- %s\n", msg.Id)
|
||||||
mail := getEmail(service, msg.Id)
|
mail := getEmail(service, msg.Id)
|
||||||
fromAddr, msgBody := getEmailPlaintext(mail)
|
fromAddr, msgBody := getEmailPlaintext(mail)
|
||||||
fmt.Printf("From: %s\n", fromAddr)
|
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
|
var message gmail.Message
|
||||||
messageStr := []byte(
|
messageStr := fmt.Sprintf(
|
||||||
"From: downloader.kasernen@gmail.com\r\n" +
|
"From: %s\r\n" +
|
||||||
"To: danielbrasholt@gmail.com\r\n" +
|
"To: %s\r\n" +
|
||||||
"Subject: Request received\r\n\r\n" +
|
"Subject: Request received\r\n\r\n" +
|
||||||
"Message body")
|
"Message body",
|
||||||
message.Raw = base64.URLEncoding.EncodeToString(messageStr)
|
EMAILADDR,
|
||||||
|
fromAddr)
|
||||||
|
message.Raw = base64.URLEncoding.EncodeToString([]byte(messageStr))
|
||||||
_, err = service.Users.Messages.Send(USER, &message).Do()
|
_, err = service.Users.Messages.Send(USER, &message).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Unable to send email: %v", err)
|
log.Fatalf("Unable to send email: %v", err)
|
||||||
}
|
}
|
||||||
fmt.Println("Email sent")
|
fmt.Printf("Download completed, confirmation sent to: %s\n", fromAddr)
|
||||||
|
fmt.Println()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue