Procházet zdrojové kódy

plugins/base: fix mailbox unread count

master
Simon Ser před 4 roky
rodič
revize
3036cc4436
V databázi nebyl nalezen žádný známý klíč pro tento podpis ID GPG klíče: FDE7BE0E88F5E48
2 změnil soubory, kde provedl 29 přidání a 12 odebrání
  1. +23
    -10
      plugins/base/imap.go
  2. +6
    -2
      plugins/base/routes.go

+ 23
- 10
plugins/base/imap.go Zobrazit soubor

@@ -27,16 +27,6 @@ func (mbox *MailboxInfo) URL() *url.URL {
}
}

type MailboxStatus struct {
*imap.MailboxStatus
}

func (mbox *MailboxStatus) URL() *url.URL {
return &url.URL{
Path: fmt.Sprintf("/mailbox/%v", url.PathEscape(mbox.Name)),
}
}

func listMailboxes(conn *imapclient.Client) ([]MailboxInfo, error) {
ch := make(chan *imap.MailboxInfo, 10)
done := make(chan error, 1)
@@ -65,6 +55,29 @@ func listMailboxes(conn *imapclient.Client) ([]MailboxInfo, error) {
return mailboxes, nil
}

type MailboxStatus struct {
*imap.MailboxStatus
}

func (mbox *MailboxStatus) URL() *url.URL {
return &url.URL{
Path: fmt.Sprintf("/mailbox/%v", url.PathEscape(mbox.Name)),
}
}

func getMailboxStatus(conn *imapclient.Client, name string) (*MailboxStatus, error) {
items := []imap.StatusItem{
imap.StatusMessages,
imap.StatusUidValidity,
imap.StatusUnseen,
}
status, err := conn.Status(name, items)
if err != nil {
return nil, fmt.Errorf("failed to get mailbox status: %v", err)
}
return &MailboxStatus{status}, nil
}

type mailboxType int

const (


+ 6
- 2
plugins/base/routes.go Zobrazit soubor

@@ -111,7 +111,9 @@ func handleGetMailbox(ctx *alps.Context) error {
if err != nil {
return err
}
mbox = &MailboxStatus{c.Mailbox()}
if mbox, err = getMailboxStatus(c, mboxName); err != nil {
return err
}
return nil
})
if err != nil {
@@ -213,7 +215,9 @@ func handleGetPart(ctx *alps.Context, raw bool) error {
if msg, part, err = getMessagePart(c, mboxName, uid, partPath); err != nil {
return err
}
mbox = &MailboxStatus{c.Mailbox()}
if mbox, err = getMailboxStatus(c, mboxName); err != nil {
return err
}
return nil
})
if err != nil {


Načítá se…
Zrušit
Uložit