diff options
author | Simon Ser <contact@emersion.fr> | 2020-05-20 16:25:25 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-05-20 16:25:25 +0200 |
commit | 8589228c73a8abb5de890bfbd3fa8ab2807dfda0 (patch) | |
tree | 2332b85ca8e47aa1ff4766cf341dbfa306d48501 /plugins | |
parent | ac7a3fb1562696af5dd57d20ddd74979fd7b5650 (diff) | |
download | alps-8589228c73a8abb5de890bfbd3fa8ab2807dfda0.tar.gz alps-8589228c73a8abb5de890bfbd3fa8ab2807dfda0.zip |
Replace IMAPMessage.TextPartName with TextPart
Diffstat (limited to 'plugins')
-rwxr-xr-x | plugins/base/imap.go | 39 | ||||
-rw-r--r-- | plugins/base/public/mailbox.html | 2 |
2 files changed, 17 insertions, 24 deletions
diff --git a/plugins/base/imap.go b/plugins/base/imap.go index 06e6e20..04ce8d7 100755 --- a/plugins/base/imap.go +++ b/plugins/base/imap.go @@ -158,12 +158,22 @@ func (msg *IMAPMessage) URL() *url.URL { } } -func (msg *IMAPMessage) TextPartName() string { +func newIMAPPartNode(msg *IMAPMessage, path []int, part *imap.BodyStructure) *IMAPPartNode { + filename, _ := part.Filename() + return &IMAPPartNode{ + Path: path, + MIMEType: strings.ToLower(part.MIMEType + "/" + part.MIMESubType), + Filename: filename, + Message: msg, + } +} + +func (msg *IMAPMessage) TextPart() *IMAPPartNode { if msg.BodyStructure == nil { - return "" + return nil } - var best []int + var best *IMAPPartNode isTextPlain := false msg.BodyStructure.Walk(func(path []int, part *imap.BodyStructure) bool { if !strings.EqualFold(part.MIMEType, "text") { @@ -176,33 +186,16 @@ func (msg *IMAPMessage) TextPartName() string { switch strings.ToLower(part.MIMESubType) { case "plain": isTextPlain = true - best = path + best = newIMAPPartNode(msg, path, part) case "html": if !isTextPlain { - best = path + best = newIMAPPartNode(msg, path, part) } } return true }) - if best == nil { - return "" - } - l := make([]string, len(best)) - for i, partNum := range best { - l[i] = strconv.Itoa(partNum) - } - return strings.Join(l, ".") -} - -func newIMAPPartNode(msg *IMAPMessage, path []int, part *imap.BodyStructure) *IMAPPartNode { - filename, _ := part.Filename() - return &IMAPPartNode{ - Path: path, - MIMEType: strings.ToLower(part.MIMEType + "/" + part.MIMESubType), - Filename: filename, - Message: msg, - } + return best } func (msg *IMAPMessage) Attachments() []IMAPPartNode { diff --git a/plugins/base/public/mailbox.html b/plugins/base/public/mailbox.html index 45729d1..ff2e3a9 100644 --- a/plugins/base/public/mailbox.html +++ b/plugins/base/public/mailbox.html @@ -27,7 +27,7 @@ <ul> {{range .Messages}} <li> - <a href="/message/{{$.Mailbox.Name | pathescape}}/{{.Uid}}?part={{.TextPartName}}"> + <a href="{{.TextPart.URL false}}"> {{if .Envelope.Subject}} {{.Envelope.Subject}} {{else}} |