diff options
author | Tim Culverhouse <tim@timculverhouse.com> | 2023-04-16 09:53:44 -0500 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-04-22 22:40:12 +0200 |
commit | 5b0a98b8c936532fa5444b1cabf53d7c929d19c1 (patch) | |
tree | b04415f6120d944cd74c45464a771d064cdd4305 /worker | |
parent | f13fbe7a27756c63d85f40c15320664d634f59e2 (diff) | |
download | aerc-5b0a98b8c936532fa5444b1cabf53d7c929d19c1.tar.gz |
directory: use directory to store rue counts
Store the Directory RUE counts on the Directory data model. Use
DirectoryInfo messages to update the Directory model. Access Directories
via the dirlist instead of via the msgstore. Remove unused fields on
DirectoryInfo, all backends now give accurate counts.
Move refetch logic into dirlist
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry<robin@jarry.cc>
Diffstat (limited to 'worker')
-rw-r--r-- | worker/imap/checkmail.go | 6 | ||||
-rw-r--r-- | worker/imap/list.go | 6 | ||||
-rw-r--r-- | worker/maildir/worker.go | 7 | ||||
-rw-r--r-- | worker/mbox/models.go | 11 | ||||
-rw-r--r-- | worker/notmuch/worker.go | 7 |
5 files changed, 9 insertions, 28 deletions
diff --git a/worker/imap/checkmail.go b/worker/imap/checkmail.go index 05441a3c..76da58ad 100644 --- a/worker/imap/checkmail.go +++ b/worker/imap/checkmail.go @@ -58,11 +58,7 @@ func (w *IMAPWorker) handleCheckMailMessage(msg *types.CheckMail) { } w.worker.PostMessage(&types.DirectoryInfo{ Info: &models.DirectoryInfo{ - Flags: status.Flags, - Name: status.Name, - ReadOnly: status.ReadOnly, - AccurateCounts: true, - + Name: status.Name, Exists: int(status.Messages), Recent: int(status.Recent), Unseen: int(status.Unseen), diff --git a/worker/imap/list.go b/worker/imap/list.go index 07aa2971..657779e5 100644 --- a/worker/imap/list.go +++ b/worker/imap/list.go @@ -56,11 +56,7 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) { for _, status := range statuses { imapw.worker.PostMessage(&types.DirectoryInfo{ Info: &models.DirectoryInfo{ - Flags: status.Flags, - Name: status.Name, - ReadOnly: status.ReadOnly, - AccurateCounts: true, - + Name: status.Name, Exists: int(status.Messages), Recent: int(status.Recent), Unseen: int(status.Unseen), diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go index c57f0d67..69d39fa8 100644 --- a/worker/maildir/worker.go +++ b/worker/maildir/worker.go @@ -186,17 +186,13 @@ func dirFiles(name string) ([]string, error) { func (w *Worker) getDirectoryInfo(name string) *models.DirectoryInfo { dirInfo := &models.DirectoryInfo{ - Name: name, - Flags: []string{}, - ReadOnly: false, + Name: name, // total messages Exists: 0, // new messages since mailbox was last opened Recent: 0, // total unread Unseen: 0, - - AccurateCounts: false, } dir := w.c.Store.Dir(name) @@ -263,7 +259,6 @@ func (w *Worker) getDirectoryInfo(name string) *models.DirectoryInfo { dirInfo.Recent++ } } - dirInfo.AccurateCounts = true return dirInfo } diff --git a/worker/mbox/models.go b/worker/mbox/models.go index 1546f01a..491128c5 100644 --- a/worker/mbox/models.go +++ b/worker/mbox/models.go @@ -42,13 +42,10 @@ func (md *mailboxContainer) DirectoryInfo(file string) *models.DirectoryInfo { exists = len(md.Uids()) } return &models.DirectoryInfo{ - Name: file, - Flags: []string{}, - ReadOnly: false, - Exists: exists, - Recent: 0, - Unseen: 0, - AccurateCounts: false, + Name: file, + Exists: exists, + Recent: 0, + Unseen: 0, } } diff --git a/worker/notmuch/worker.go b/worker/notmuch/worker.go index 199eb64f..b25a8786 100644 --- a/worker/notmuch/worker.go +++ b/worker/notmuch/worker.go @@ -273,16 +273,13 @@ func (w *worker) handleListDirectories(msg *types.ListDirectories) error { func (w *worker) getDirectoryInfo(name string, query string) *models.DirectoryInfo { dirInfo := &models.DirectoryInfo{ - Name: name, - Flags: []string{}, - ReadOnly: false, + Name: name, // total messages Exists: 0, // new messages since mailbox was last opened Recent: 0, // total unread - Unseen: 0, - AccurateCounts: true, + Unseen: 0, } count, err := w.db.QueryCountMessages(query) |