parser

package
v0.0.0-...-c5d900d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2019 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Service = fx.Provide(func(lc fx.Lifecycle, params Params) Parser {
	var nbWorkers = int(1)
	if params.Args != nil {
		nbWorkers = params.Args.NbParsers
	}
	logger := params.Logger
	if logger == nil {
		logger = log15.New()
		logger.SetHandler(log15.DiscardHandler())
	}
	p := NewParser(
		nbWorkers,
		params.Args.NoDKIM,
		params.Collector,
		params.Consumer,
		params.GeoIP,
		params.Tool,
		params.Phishtank,
		logger,
	)
	utils.Append(lc, p, logger)
	return p
})

Functions

func AnalyseAttachment

func AnalyseAttachment(filename string, ct string, r io.Reader, t extractors.ExifTool, l log15.Logger) (*models.Attachment, error)

func AnalyzeArchive

func AnalyzeArchive(typ types.Type, reader *bytes.Reader, size int64, logger log15.Logger) (*models.Archive, error)

func AnalyzeRar

func AnalyzeRar(reader io.Reader, logger log15.Logger) (*models.Archive, error)

func AnalyzeTar

func AnalyzeTar(reader io.Reader, logger log15.Logger) (*models.Archive, error)

func AnalyzeZip

func AnalyzeZip(reader io.ReaderAt, size int64, logger log15.Logger) (*models.Archive, error)

func ParseAddress

func ParseAddress(addr string) (*mail.Address, error)

func ParseAddressList

func ParseAddressList(addrs string) ([]*mail.Address, error)

func ParsePart

func ParsePart(part io.Reader, tool extractors.ExifTool, logger log15.Logger) (string, string, []string, []*models.Attachment)

func StringDecode

func StringDecode(text string) (string, error)

StringDecode splits text to list of words, decodes every word and assembles it back into a decoded string

func WordDecode

func WordDecode(word string) (string, error)

WordDecode decodes word if necessary and returns decoded data

Types

type Params

type Params struct {
	fx.In
	Args      *arguments.Args      `optional:"true"`
	Collector collectors.Collector `optional:"true"`
	Consumer  consumers.Consumer   `optional:"true"`
	Tool      extractors.ExifTool  `optional:"true"`
	GeoIP     utils.GeoIP          `optional:"true"`
	Phishtank phishtank.Phishtank  `optional:"true"`
	Logger    log15.Logger         `optional:"true"`
}

type Parser

type Parser interface {
	utils.Service
	utils.Startable
	Parse(i *models.IncomingMail) (*models.FeaturesMail, error)
	ParseMany(context.Context, <-chan *models.IncomingMail, chan<- *models.FeaturesMail)
}

func NewParser

func NewParser(nbWorkers int,
	nodkim bool,
	collector collectors.Collector,
	consumer consumers.Consumer,
	geoip utils.GeoIP,
	tool extractors.ExifTool,
	phishtank phishtank.Phishtank,
	logger log15.Logger,
) Parser

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL