feat: better handling of oversized mails, and add junk option
This commit is contained in:
@@ -11,11 +11,12 @@ import (
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
IMAP IMAPConfig `yaml:"imap"`
|
||||
AI AIConfig `yaml:"ai"`
|
||||
Context ContextConfig `yaml:"context"`
|
||||
Polling PollingConfig `yaml:"polling"`
|
||||
Logging LoggingConfig `yaml:"logging"`
|
||||
IMAP IMAPConfig `yaml:"imap"`
|
||||
AI AIConfig `yaml:"ai"`
|
||||
Context ContextConfig `yaml:"context"`
|
||||
Polling PollingConfig `yaml:"polling"`
|
||||
Logging LoggingConfig `yaml:"logging"`
|
||||
Processing ProcessingConfig `yaml:"processing"`
|
||||
}
|
||||
|
||||
type IMAPConfig struct {
|
||||
@@ -49,6 +50,11 @@ type LoggingConfig struct {
|
||||
FilePath string `yaml:"file_path"`
|
||||
}
|
||||
|
||||
type ProcessingConfig struct {
|
||||
MaxEmailSizeBytes int `yaml:"max_email_size_bytes"` // Maximum email body size in bytes (0 = no limit)
|
||||
SkipJunkEmails bool `yaml:"skip_junk_emails"` // Skip emails marked as junk/spam
|
||||
}
|
||||
|
||||
func readFileContent(path string) (string, error) {
|
||||
content, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
@@ -106,19 +112,21 @@ func Load(path string) (*Config, error) {
|
||||
}
|
||||
|
||||
logger.WithFields(logrus.Fields{
|
||||
"imapServer": config.IMAP.Server,
|
||||
"imapPort": config.IMAP.Port,
|
||||
"imapUsername": config.IMAP.Username,
|
||||
"imapMailboxIn": config.IMAP.MailboxIn,
|
||||
"imapDraftBox": config.IMAP.DraftBox,
|
||||
"imapUseTLS": config.IMAP.UseTLS,
|
||||
"aiModel": config.AI.Model,
|
||||
"aiTemperature": config.AI.Temperature,
|
||||
"aiMaxTokens": config.AI.MaxTokens,
|
||||
"contextUrlCount": len(config.Context.URLs),
|
||||
"pollingInterval": config.Polling.Interval,
|
||||
"loggingLevel": config.Logging.Level,
|
||||
"loggingFilePath": config.Logging.FilePath,
|
||||
"imapServer": config.IMAP.Server,
|
||||
"imapPort": config.IMAP.Port,
|
||||
"imapUsername": config.IMAP.Username,
|
||||
"imapMailboxIn": config.IMAP.MailboxIn,
|
||||
"imapDraftBox": config.IMAP.DraftBox,
|
||||
"imapUseTLS": config.IMAP.UseTLS,
|
||||
"aiModel": config.AI.Model,
|
||||
"aiTemperature": config.AI.Temperature,
|
||||
"aiMaxTokens": config.AI.MaxTokens,
|
||||
"contextUrlCount": len(config.Context.URLs),
|
||||
"pollingInterval": config.Polling.Interval,
|
||||
"loggingLevel": config.Logging.Level,
|
||||
"loggingFilePath": config.Logging.FilePath,
|
||||
"maxEmailSizeBytes": config.Processing.MaxEmailSizeBytes,
|
||||
"skipJunkEmails": config.Processing.SkipJunkEmails,
|
||||
}).Debug("Configuration loaded successfully")
|
||||
|
||||
return &config, nil
|
||||
|
||||
Reference in New Issue
Block a user