diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-03-31 11:10:10 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-03-31 11:10:10 -0400 |
commit | 1f23868652a2ce0e81bddd048e3e828efaff2d69 (patch) | |
tree | 9d7fd0362d7b43df2d674ac2ad17b79e2c2196a9 /worker | |
parent | 5d0402aeea1dcc69adb46227ab1cd73b5e768880 (diff) | |
download | aerc-1f23868652a2ce0e81bddd048e3e828efaff2d69.zip |
Pull BodyStructure up from IMAP worker
Diffstat (limited to 'worker')
-rw-r--r-- | worker/imap/fetch.go | 10 | ||||
-rw-r--r-- | worker/types/messages.go | 24 |
2 files changed, 25 insertions, 9 deletions
diff --git a/worker/imap/fetch.go b/worker/imap/fetch.go index 884ab73..d229126 100644 --- a/worker/imap/fetch.go +++ b/worker/imap/fetch.go @@ -12,6 +12,7 @@ func (imapw *IMAPWorker) handleFetchMessageHeaders( imapw.worker.Logger.Printf("Fetching message headers") items := []imap.FetchItem{ + imap.FetchBodyStructure, imap.FetchEnvelope, imap.FetchInternalDate, imap.FetchFlags, @@ -57,10 +58,11 @@ func (imapw *IMAPWorker) handleFetchMessages( }, nil) } else { imapw.worker.PostMessage(&types.MessageInfo{ - Envelope: _msg.Envelope, - Flags: _msg.Flags, - InternalDate: _msg.InternalDate, - Uid: _msg.Uid, + BodyStructure: _msg.BodyStructure, + Envelope: _msg.Envelope, + Flags: _msg.Flags, + InternalDate: _msg.InternalDate, + Uid: _msg.Uid, }, nil) } } diff --git a/worker/types/messages.go b/worker/types/messages.go index f38bb22..b1d1485 100644 --- a/worker/types/messages.go +++ b/worker/types/messages.go @@ -2,6 +2,7 @@ package types import ( "crypto/x509" + "io" "time" "github.com/emersion/go-imap" @@ -86,6 +87,12 @@ type FetchMessageBodies struct { Uids imap.SeqSet } +type FetchMessageBodyPart struct { + Message + Uid uint32 + Part int +} + type DeleteMessages struct { Message Uids imap.SeqSet @@ -120,11 +127,12 @@ type DirectoryContents struct { type MessageInfo struct { Message - Envelope *imap.Envelope - Flags []string - InternalDate time.Time - Size uint32 - Uid uint32 + BodyStructure *imap.BodyStructure + Envelope *imap.Envelope + Flags []string + InternalDate time.Time + Size uint32 + Uid uint32 } type MessageBody struct { @@ -133,6 +141,12 @@ type MessageBody struct { Uid uint32 } +type MessageBodyPart struct { + Message + Reader *io.Reader + Uid uint32 +} + type MessagesDeleted struct { Message Uids []uint32 |