sieve

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action struct {
	Type  string
	Value string
}

Action represents a Sieve action

type Condition

type Condition struct {
	Type     string
	Field    string
	Operator string
	Value    string
	Not      bool
}

Condition represents a Sieve condition

type Filter

type Filter struct {
	ID         string
	Conditions []Condition
	Actions    []Action
	Script     string
}

Filter represents a Sieve filter rule

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles Sieve filtering operations

func NewManager

func NewManager(logger *zap.Logger, messageService service.MessageServiceInterface) *Manager

NewManager creates a new Sieve manager

func (*Manager) ApplyFilters

func (m *Manager) ApplyFilters(ctx context.Context, userID int64, message *domain.Message) (*domain.Message, error)

ApplyFilters applies Sieve filters to an incoming message

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser handles Sieve script parsing and execution

func NewParser

func NewParser(logger *zap.Logger) *Parser

NewParser creates a new Sieve parser

func (*Parser) Evaluate

func (p *Parser) Evaluate(filters []Filter, message *domain.Message) ([]Action, error)

Evaluate applies filters to a message

func (*Parser) Parse

func (p *Parser) Parse(script string) ([]Filter, error)

Parse parses a Sieve script into filter rules

Jump to

Keyboard shortcuts

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