musala/cmd/trello2mail/main.go

59 lines
1.3 KiB
Go
Raw Normal View History

2018-08-21 08:36:54 +00:00
package main
import (
2018-08-22 16:57:50 +00:00
"fmt"
2018-08-21 08:36:54 +00:00
)
func main() {
// Setup config
config := NewConfig()
config.Parse()
2018-08-21 08:36:54 +00:00
// Get task list as markdown
trelloCtx := NewTrello(config.TrelloToken)
var trelloBoardsList []TrelloBoard
if len(config.TrelloUrl) > 0 {
trelloBoard := trelloCtx.GetBoard(config.TrelloUrl)
trelloBoardsList = append(trelloBoardsList, trelloBoard)
} else {
trelloBoardsList = trelloCtx.GetBoards()
}
for _, trelloBoard := range trelloBoardsList {
2018-11-23 12:22:03 +00:00
if !trelloBoard.Starred || trelloBoard.Closed {
continue
}
fmt.Printf("Loading board %s\n", trelloBoard.Name)
trelloMarkdown := trelloBoard.ExportToMarkdown()
trelloHtml := trelloBoard.ExportToHtml()
config.EmailSubject = fmt.Sprintf("Daily mail for %s", trelloBoard.Name)
// Create email enveloppe
email := NewEmail()
email.SetHeaders(EmailConfig{
From: config.EmailFrom,
To: config.EmailTo,
Subject: config.EmailSubject,
})
email.SetBody(trelloHtml, trelloMarkdown)
// Connect and send email
transport := NewTransport(SmtpConfig{
Hostname: config.SmtpHostname,
Port: config.SmtpPort,
Username: config.SmtpUsername,
Password: config.SmtpPassword,
AuthType: config.SmtpAuthType,
SecurityType: config.SmtpSecurityType,
})
transport.Dial()
transport.Authenticate()
transport.Send(email)
transport.Quit()
}
2018-08-21 08:36:54 +00:00
}