format: remove parse methods, use the one from go-message
This commit is contained in:
parent
20ec2c8eeb
commit
24f1c575ae
3 changed files with 9 additions and 38 deletions
|
@ -16,7 +16,6 @@ import (
|
|||
"github.com/pkg/errors"
|
||||
|
||||
"git.sr.ht/~sircmpwn/aerc/lib"
|
||||
"git.sr.ht/~sircmpwn/aerc/lib/format"
|
||||
"git.sr.ht/~sircmpwn/aerc/models"
|
||||
"git.sr.ht/~sircmpwn/aerc/widgets"
|
||||
"git.sr.ht/~sircmpwn/aerc/worker/types"
|
||||
|
@ -84,7 +83,7 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
if config.From == "" {
|
||||
return errors.New("No 'From' configured for this account")
|
||||
}
|
||||
from, err := format.ParseAddress(config.From)
|
||||
from, err := mail.ParseAddress(config.From)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "ParseAddress(config.From)")
|
||||
}
|
||||
|
|
|
@ -61,14 +61,17 @@ func (reply) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
return errors.New("No account selected")
|
||||
}
|
||||
conf := acct.AccountConfig()
|
||||
from, err := format.ParseAddress(conf.From)
|
||||
from, err := mail.ParseAddress(conf.From)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
aliases, err := format.ParseAddressList(conf.Aliases)
|
||||
var aliases []*mail.Address
|
||||
if conf.Aliases != "" {
|
||||
aliases, err = mail.ParseAddressList(conf.Aliases)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
store := widget.Store()
|
||||
if store == nil {
|
||||
|
|
|
@ -3,46 +3,15 @@ package format
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"mime"
|
||||
gomail "net/mail"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"git.sr.ht/~sircmpwn/aerc/models"
|
||||
"github.com/emersion/go-message"
|
||||
"github.com/emersion/go-message/mail"
|
||||
)
|
||||
|
||||
func ParseAddress(address string) (*mail.Address, error) {
|
||||
addrs, err := gomail.ParseAddress(address)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return (*mail.Address)(addrs), nil
|
||||
}
|
||||
|
||||
func ParseAddressList(s string) ([]*mail.Address, error) {
|
||||
if len(s) == 0 {
|
||||
// we don't consider an empty list to be an error
|
||||
return nil, nil
|
||||
}
|
||||
parser := gomail.AddressParser{
|
||||
&mime.WordDecoder{message.CharsetReader},
|
||||
}
|
||||
list, err := parser.ParseList(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
addrs := make([]*mail.Address, len(list))
|
||||
for i, a := range list {
|
||||
addrs[i] = (*mail.Address)(a)
|
||||
}
|
||||
return addrs, nil
|
||||
}
|
||||
|
||||
// AddressForHumans formats the address. If the address's name
|
||||
// contains non-ASCII characters it will be quoted but not encoded.
|
||||
// Meant for display purposes to the humans, not for sending over the wire.
|
||||
|
@ -83,7 +52,7 @@ func ParseMessageFormat(format string, timeFmt string, ctx Ctx) (string,
|
|||
retval := make([]byte, 0, len(format))
|
||||
var args []interface{}
|
||||
|
||||
accountFromAddress, err := ParseAddress(ctx.FromAddress)
|
||||
accountFromAddress, err := mail.ParseAddress(ctx.FromAddress)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue