diff options
author | Reto Brunner <reto@labrat.space> | 2019-06-12 08:31:51 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-06-14 10:42:24 -0400 |
commit | 626f91c4832c097b7036d5063b2f0491397a9c70 (patch) | |
tree | 786310a326cf120e1d4f630fe8ce74405579a9bb /worker/imap | |
parent | d3b5a76b4a8ad839991cb686711a0c0d24536d5e (diff) | |
download | aerc-626f91c4832c097b7036d5063b2f0491397a9c70.tar.gz |
imap: respect the folder config option
Diffstat (limited to 'worker/imap')
-rw-r--r-- | worker/imap/list.go | 13 | ||||
-rw-r--r-- | worker/imap/worker.go | 4 |
2 files changed, 16 insertions, 1 deletions
diff --git a/worker/imap/list.go b/worker/imap/list.go index 5e282ef7..552fb457 100644 --- a/worker/imap/list.go +++ b/worker/imap/list.go @@ -17,6 +17,19 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) { // no need to pass this to handlers if it can't be opened continue } + if len(imapw.config.folders) > 0 { + // apply user filter + found := false + for _, folder := range imapw.config.folders { + if folder == mbox.Name || imapw.selected.Name == mbox.Name { + found = true + break + } + } + if !found { + continue + } + } imapw.worker.PostMessage(&types.Directory{ Message: types.RespondTo(msg), Name: mbox.Name, diff --git a/worker/imap/worker.go b/worker/imap/worker.go index d978755e..aa59c27d 100644 --- a/worker/imap/worker.go +++ b/worker/imap/worker.go @@ -7,7 +7,7 @@ import ( "strings" "github.com/emersion/go-imap" - "github.com/emersion/go-imap-idle" + idle "github.com/emersion/go-imap-idle" "github.com/emersion/go-imap/client" "git.sr.ht/~sircmpwn/aerc/worker/types" @@ -26,6 +26,7 @@ type IMAPWorker struct { insecure bool addr string user *url.Userinfo + folders []string } client *imapClient @@ -75,6 +76,7 @@ func (w *IMAPWorker) handleMessage(msg types.WorkerMessage) error { } w.config.user = u.User + w.config.folders = msg.Config.Folders case *types.Connect: var ( c *client.Client |