add .OriginalMIMEType variable to reply template

This commit is contained in:
Leszek Cimała 2020-01-08 21:44:16 +01:00 committed by Drew DeVault
parent 5255585b3b
commit d238272bdb
4 changed files with 39 additions and 18 deletions

View file

@ -157,6 +157,17 @@ func (reply) Execute(aerc *widgets.Aerc, args []string) error {
buf := new(bytes.Buffer)
buf.ReadFrom(reader)
original.Text = buf.String()
if len(msg.BodyStructure.Parts) == 0 {
original.MIMEType = fmt.Sprintf("%s/%s",
msg.BodyStructure.MIMEType, msg.BodyStructure.MIMESubType)
} else {
// TODO: still will be "multipart/mixed" for mixed mails with
// attachments, fix this after aerc could handle responding to
// such mails
original.MIMEType = fmt.Sprintf("%s/%s",
msg.BodyStructure.Parts[0].MIMEType,
msg.BodyStructure.Parts[0].MIMESubType)
}
addTab()
})
return nil

View file

@ -60,6 +60,12 @@ available always.
Example:
{{.Subject}}
*MIME Type*
MIME Type is available for quoted reply.
- OriginalMIMEType: MIME type info of quoted mail part. Usually
"text/plain" or "text/html".
*Original Message*
When using quoted reply or forward, the original message is available.
It can be used using two functions that are available to templates.

View file

@ -25,6 +25,7 @@ type TemplateData struct {
OriginalText string
OriginalFrom []*mail.Address
OriginalDate time.Time
OriginalMIMEType string
}
func TestTemplateData() TemplateData {
@ -39,6 +40,7 @@ func TestTemplateData() TemplateData {
Date: time.Now().Format("Mon Jan 2, 2006 at 3:04 PM"),
From: "John Doe <john@example.com>",
Text: "This is only a test text",
MIMEType: "text/plain",
}
return ParseTemplateData(defaults, original)
@ -56,6 +58,7 @@ func ParseTemplateData(defaults map[string]string, original models.OriginalMail)
OriginalText: original.Text,
OriginalFrom: parseAddressList(original.From),
OriginalDate: originalDate,
OriginalMIMEType: original.MIMEType,
}
return td
}

View file

@ -170,4 +170,5 @@ type OriginalMail struct {
Date string
From string
Text string
MIMEType string
}