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(). NewWriter().
WithCondition(func(p *parser.Part) (keep bool) { WithCondition(func(p *parser.Part) (keep bool) {
disp, _, err := p.Header.ContentDisposition() 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) buf := new(bytes.Buffer)

View File

@ -1,19 +1,13 @@
package parser package parser
import ( import (
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"github.com/emersion/go-message" "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 { type Parser struct {
stack []*Part stack []*Part
root *Part root *Part
@ -49,7 +43,7 @@ func (p *Parser) Part(number []int) (part *Part, err error) {
part = p.root part = p.root
for _, n := range number { for _, n := range number {
if part, err = part.Part(n); err != nil { if part, err = part.Child(n); err != nil {
return return
} }
} }
@ -57,13 +51,17 @@ func (p *Parser) Part(number []int) (part *Part, err error) {
return return
} }
func (p *Parser) parse(r io.Reader) (err error) { func (p *Parser) parse(r io.Reader) error {
e, err := message.Read(r) entity, err := message.Read(r)
if err != nil { 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() { func (p *Parser) enter() {

View File

@ -14,7 +14,7 @@ type Part struct {
children Parts 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 { if len(p.children) < n {
return nil, errors.New("no such part") return nil, errors.New("no such part")
} }