From 12269c757d9ffcf93ba23a39c8e12cd222c5ae82 Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Sat, 12 Oct 2019 22:17:29 -0400 Subject: Add threading support for maildir --- worker/maildir/message.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'worker/maildir/message.go') diff --git a/worker/maildir/message.go b/worker/maildir/message.go index dc5646b..283a3cd 100644 --- a/worker/maildir/message.go +++ b/worker/maildir/message.go @@ -1,6 +1,7 @@ package maildir import ( + "bufio" "bytes" "fmt" "io" @@ -8,6 +9,7 @@ import ( "github.com/emersion/go-maildir" "github.com/emersion/go-message" + "github.com/emersion/go-message/textproto" "git.sr.ht/~sircmpwn/aerc/models" "git.sr.ht/~sircmpwn/aerc/worker/lib" @@ -119,3 +121,18 @@ func translateFlags(maildirFlags []maildir.Flag) []models.Flag { func (m Message) UID() uint32 { return m.uid } + +func (m Message) Headers() (*message.Header, error) { + f, err := m.dir.Open(m.key) + if err != nil { + return nil, err + } + defer f.Close() + br := bufio.NewReader(f) + h, err := textproto.ReadHeader(br) + if err != nil { + return nil, err + } + mh := message.Header{h} + return &mh, nil +} -- cgit v1.2.3