refactor: tidy a bit

This commit is contained in:
James Houlahan
2020-08-05 15:00:31 +02:00
parent 0d4d95360f
commit f4374a02da
3 changed files with 17 additions and 14 deletions

View File

@ -277,7 +277,12 @@ func writeMIMEMessage(p *parser.Parser) (mime string, err error) {
NewWriter().
WithCondition(func(p *parser.Part) (keep bool) {
disp, _, err := p.Header.ContentDisposition()
return err != nil || disp != "attachment"
if err != nil {
return true
}
// TODO: Is it true that we don't want to write attachments? I thought this was for externals...
return disp != "attachment"
})
buf := new(bytes.Buffer)

View File

@ -1,19 +1,13 @@
package parser
import (
"fmt"
"io"
"io/ioutil"
"github.com/emersion/go-message"
)
// TODO: Set this to something that handles charsets.
func init() { // nolint[gochecknoinits]
message.CharsetReader = func(string, io.Reader) (io.Reader, error) {
panic("not implemented")
}
}
type Parser struct {
stack []*Part
root *Part
@ -49,7 +43,7 @@ func (p *Parser) Part(number []int) (part *Part, err error) {
part = p.root
for _, n := range number {
if part, err = part.Part(n); err != nil {
if part, err = part.Child(n); err != nil {
return
}
}
@ -57,13 +51,17 @@ func (p *Parser) Part(number []int) (part *Part, err error) {
return
}
func (p *Parser) parse(r io.Reader) (err error) {
e, err := message.Read(r)
func (p *Parser) parse(r io.Reader) error {
entity, err := message.Read(r)
if err != nil {
return
if !message.IsUnknownCharset(err) {
return err
} else {
fmt.Println(err)
}
}
return p.parseEntity(e)
return p.parseEntity(entity)
}
func (p *Parser) enter() {

View File

@ -14,7 +14,7 @@ type Part struct {
children Parts
}
func (p *Part) Part(n int) (part *Part, err error) {
func (p *Part) Child(n int) (part *Part, err error) {
if len(p.children) < n {
return nil, errors.New("no such part")
}