Browse Source

Cleanup for release

master
Gregory Rudolph 4 years ago
parent
commit
eb34de9307
Signed by: rudi
GPG Key ID: EF64F3CBD1A1EBDD
  1. 19
      mailHelper.go
  2. 99
      main.go
  3. 2
      test.pgp

19
mailHelper.go

@ -3,9 +3,8 @@ package main @@ -3,9 +3,8 @@ package main
import "fmt"
import "io/ioutil"
import "net/smtp"
import "samhofi.us/x/keybase"
func send(e Email, api keybase.ChatAPI) {
func send(e Email) {
e.Body = appendSignature(e.Body)
message := fmt.Sprintf("From: %s\n", conf.MyEmail)
@ -23,24 +22,28 @@ func send(e Email, api keybase.ChatAPI) { @@ -23,24 +22,28 @@ func send(e Email, api keybase.ChatAPI) {
log.LogInfo("Message created")
log.LogDebug(message)
log.LogInfo("Sending message")
go chat.React(api.Msg.ID, ":mailbox_with_no_mail:")
if conf.KeyPass == "" {
go chat.React(api.Msg.ID, ":unlock:")
log.LogDebug("Unsigned Message")
} else {
go chat.React(api.Msg.ID, ":lock_with_ink_pen:")
log.LogDebug("Signed Message")
}
err := smtp.SendMail(conf.SmtpServer,
smtp.PlainAuth("", conf.MyEmail, conf.EmailPass, conf.AuthServer),
conf.MyEmail, e.Recipients, []byte(message))
go chat.React(api.Msg.ID, ":mailbox_with_no_mail:")
if err != nil {
log.LogErrorType(err)
chat.React(api.Msg.ID, ":warning:")
return
}
go chat.React(api.Msg.ID, ":mailbox_with_mail:")
log.LogInfo("Email Sent")
}
func loadBodyFromFile(path string) string {
bytes, err := ioutil.ReadFile(path)
if err != nil {
log.LogErrorType(err)
return ""
}
return string(bytes)
}
func appendSignature(body string) string {
bytes, err := ioutil.ReadFile("default.sig")

99
main.go

@ -4,113 +4,38 @@ import ( @@ -4,113 +4,38 @@ import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"strings"
"syscall"
"time"
"github.com/rudi9719/loggy"
"golang.org/x/crypto/ssh/terminal"
"samhofi.us/x/keybase"
)
var (
k = keybase.NewKeybase()
logOpts = loggy.LogOpts{
OutFile: "Keybase-Email.log",
KBTeam: "nightmarehaus.logs",
KBChann: "general",
ProgName: "KB-Email",
OutFile: "Reports.log",
ProgName: "Reports",
Level: 4,
UseStdout: true,
}
chann = keybase.Channel{
Name: "rudi9719",
MembersType: keybase.USER,
}
chat keybase.Chat
log = loggy.NewLogger(logOpts)
conf = Config{}
)
func main() {
if !k.LoggedIn {
log.LogPanic("Keybase not logged in.")
}
log.LogInfo(fmt.Sprintf("Bot started using account %s", k.Username))
conf = loadConfig()
setupCredentials()
log.LogInfo("Starting keybase")
chat = k.NewChat(chann)
k.Run(func(api keybase.ChatAPI) {
handleMessage(api)
})
}
func handleMessage(api keybase.ChatAPI) {
if api.Msg.Content.Type != "text" {
log.LogDebug("Wrong message type detected.")
return
}
parts := strings.Split(api.Msg.Content.Text.Body, " ")
if parts[0] != "!email" {
log.LogDebug("Wrong command detected")
return
}
if api.Msg.Sender.Username != k.Username {
log.LogDebug("Wrong username detected.")
chat = k.NewChat(api.Msg.Channel)
chat.Reply(api.Msg.ID, "[EMBot] No thanks!")
return
}
if len(parts) < 4 {
log.LogDebug("Wrong length of parts detected.")
chat.Send("[KB-Email] Not enough components to send email.")
return
}
chann = api.Msg.Channel
chat = k.NewChat(chann)
//setupCredentials()
args := os.Args[1:]
var e Email
partCounter := 1
for _, subj := range parts[1:] {
if strings.Contains(subj, "@") {
break
}
partCounter++
e.Subject += fmt.Sprintf("%s ", subj)
}
for _, to := range parts {
if strings.HasPrefix(to, "to:") {
if strings.Contains(to, "@") {
e.Recipients = append(e.Recipients, strings.Replace(to, "to:", "", -1))
partCounter++
}
}
}
for _, cc := range parts {
if strings.HasPrefix(cc, "cc:") {
if strings.Contains(cc, "@") {
e.Cc = append(e.Cc, strings.Replace(cc, "cc:", "", -1))
partCounter++
}
}
}
for _, bcc := range parts {
if strings.HasPrefix(bcc, "bcc:") {
if strings.Contains(bcc, "@") {
e.Bcc = append(e.Bcc, strings.Replace(bcc, "bcc:", "", -1))
partCounter++
}
}
}
for _, word := range parts[partCounter:] {
e.Body += fmt.Sprintf("%s ", word)
e.Subject = args[0]
e.Body = loadBodyFromFile(args[1])
for _, arg := range args[2:] {
e.Recipients = append(e.Recipients, arg)
}
log.LogDebug(fmt.Sprintf("%+v", e))
go send(e, api)
send(e)
time.Sleep(1 * time.Second)
}
func loadConfig() Config {

2
test.pgp

@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQpIYXNoOiBTSEEyNTYKCkhlbGxvLCB3b3JsZCEKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCndzRmNCQUVCQ0FBUUJRSmVSd0JMQ1JBYXUrNnl2c3RBZXdBQVFTa1FBQ3YzcEF0T1JyTnJUbjRGdG0xajN0ZFAKNk5SUHBuYXZNN0pBSVczR2V6d2RSY05VdENTaFI4dW5SUGMzWGY3RUdyeFVPK21BR1BOamhGZy9IU3p6cysrRAo0aTBmOGJBUDl3SnpqTE5maklPdXZrZll1M1ZMbEk2eStDZGNUQWZuTVhJa1Z0akJDaS9QcmNJVWhGay9NSXRmCnpxSUtQREloMnhOcG9PRWJhanFlR3hxS3c5cGJQcUhsSzBLMlpHUE9FcVJkZ3YzKy9YQWovcW1pdk41VDNVZlYKeUtXTDlybldoVktaZytUVUVSbEdmV3I5d1FvM3R4czFvMFZkQ3IrREd6OEFZUE5vZ2o2TytrSGZ3MU5yWm0xWQpmaGw5T1Z0MlkyQ3BsWnNaQ3IrRDAvRTVPY3FLZXdzZWptMmQ4NSs4VUFUMHJ0ZThvTnd2YnJON3dzQWl6emlrCm45Tk02eTBvVFo1bDVNR1ZiYjMvNW9lMmd1OVh3elc1YTl1YUdUb2tlWXRNYWdHV3RCeFl1UHprSmxYTDliREcKSlNiUDZpQXB6TW81UnRub0xKblduQ3Nya1Y5Z0w4NUd3RlZCM1dQTUdhdmtQNDBkWjY2YWFxdXh2UWdSQkpEUAowNWx6QVR1Z1cyYkJVUDRiVHpKWUtuNmZ4Y2o2QXFaSTI4RnFpdEhReHBqb2dzSUw2UjFzUjdxS3cwZ3pSY1V1CkJqajFtbnUwNFplVlBhVmZDakRGRDVRZS9tRDhtb2VTMzlLdFQ5azdYaTRNdHNKdnZub0tDUkh1R1FVV2M1R2IKVFNsZ04xc2tacjNYOHUzQUU5TjVCQ3kreVlGL3RRbnljTGZjd2RQb0RIZ2dyTkdSUHRRWHVQeE5nbmtmbmYzNApXYjNuWGJkS3UwOUlIUXlnSUIzTQo9WXdvdgotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0=
Loading…
Cancel
Save