diff --git a/envvars.md b/envvars.md index 0892cc7..0b5c3eb 100644 --- a/envvars.md +++ b/envvars.md @@ -2,5 +2,6 @@ - LOG_ARCHIVER_URI - ONESHOT - PRODUCTION_MODE +- RETENTION_PERIOD_DAYS - MAIN_BOT_TOKEN - DISCORD_PROXY_URL \ No newline at end of file diff --git a/pkg/config/config.go b/pkg/config/config.go index 24958d7..67ebe06 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -3,13 +3,14 @@ package config import "github.com/caarlos0/env/v6" type Config struct { - DatabaseUri string `env:"DB_URI"` - LogArchiverUri string `env:"LOG_ARCHIVER_URI"` - OneShot bool `env:"ONESHOT"` - ProductionMode bool `env:"PRODUCTION_MODE" envDefault:"false"` - SentryDsn string `env:"SENTRY_DSN"` - MainBotToken string `env:"MAIN_BOT_TOKEN"` - DiscordProxyUrl string `env:"DISCORD_PROXY_URL"` + DatabaseUri string `env:"DB_URI"` + LogArchiverUri string `env:"LOG_ARCHIVER_URI"` + OneShot bool `env:"ONESHOT"` + ProductionMode bool `env:"PRODUCTION_MODE" envDefault:"false"` + RetentionPeriodDays int `env:"RETENTION_PERIOD_DAYS" envDefault:"30"` + SentryDsn string `env:"SENTRY_DSN"` + MainBotToken string `env:"MAIN_BOT_TOKEN"` + DiscordProxyUrl string `env:"DISCORD_PROXY_URL"` } func Parse() (conf Config) { diff --git a/pkg/daemon/daemon.go b/pkg/daemon/daemon.go index 467d3fc..9ce927e 100644 --- a/pkg/daemon/daemon.go +++ b/pkg/daemon/daemon.go @@ -19,8 +19,6 @@ import ( const ( BreakTime = time.Second - RetentionPeriod = time.Hour * 24 * 28 - // Without this the status poll below has no exit of its own. purgeTimeout = 5 * time.Minute @@ -48,7 +46,8 @@ func (d *Daemon) Run() { d.logger.Info("Starting run...") ctx := context.Background() - guildIds, err := d.database.GuildLeaveTime.GetBefore(ctx, RetentionPeriod) + retentionPeriod := time.Duration(d.config.RetentionPeriodDays) * 24 * time.Hour + guildIds, err := d.database.GuildLeaveTime.GetBefore(ctx, retentionPeriod) if err != nil { d.logger.Error("Error while fetching guild ids", zap.Error(err)) return