aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/base/imap.go
diff options
context:
space:
mode:
authorLibravatarLibravatar Simon Ser <[email protected]> 2019-12-17 12:42:04 +0100
committerLibravatarLibravatar Simon Ser <[email protected]> 2019-12-17 12:42:04 +0100
commit2a2a48c7fafc4a32b1f4a4629e1d5447e29e8d57 (patch)
tree3f459e942f60a606e87bec00ae237039d9eea6bb /plugins/base/imap.go
parent3aea768cad3a5c9bb2a16039beee4b3dc8ee9d48 (diff)
downloadalps-2a2a48c7fafc4a32b1f4a4629e1d5447e29e8d57.tar.gz
alps-2a2a48c7fafc4a32b1f4a4629e1d5447e29e8d57.tar.bz2
alps-2a2a48c7fafc4a32b1f4a4629e1d5447e29e8d57.zip
Add a form to set message flags
References: https://todo.sr.ht/~sircmpwn/koushin/36
Diffstat (limited to 'plugins/base/imap.go')
-rw-r--r--plugins/base/imap.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index 3ccc73a..433a63e 100644
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -174,6 +174,15 @@ func (msg *IMAPMessage) PartTree() *IMAPPartNode {
return imapPartTree(msg.BodyStructure, nil)
}
+func (msg *IMAPMessage) HasFlag(flag string) bool {
+ for _, f := range msg.Flags {
+ if imap.CanonicalFlag(f) == flag {
+ return true
+ }
+ }
+ return false
+}
+
func listMessages(conn *imapclient.Client, mboxName string, page int) ([]IMAPMessage, error) {
if err := ensureMailboxSelected(conn, mboxName); err != nil {
return nil, err
@@ -295,6 +304,7 @@ func getMessagePart(conn *imapclient.Client, mboxName string, uid uint32, partPa
imap.FetchEnvelope,
imap.FetchUid,
imap.FetchBodyStructure,
+ imap.FetchFlags,
partHeaderSection.FetchItem(),
partBodySection.FetchItem(),
}