diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/neko/main.go | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/cmd/neko/main.go b/cmd/neko/main.go index 3fd03f6..cc724df 100644 --- a/cmd/neko/main.go +++ b/cmd/neko/main.go @@ -1,6 +1,7 @@ package main import ( + "flag" "fmt" "os" "time" @@ -10,8 +11,7 @@ import ( "adammathes.com/neko/internal/exporter" "adammathes.com/neko/models" "adammathes.com/neko/models/feed" - - "flag" + "adammathes.com/neko/models/item" "adammathes.com/neko/internal/safehttp" "adammathes.com/neko/internal/vlog" @@ -31,6 +31,8 @@ func Run(args []string) error { var help, update, verbose, proxyImages, secureCookies bool var configFile, dbfile, newFeed, export, password string var port, minutes int + var purge int + var purgeUnread bool f := flag.NewFlagSet("neko", flag.ContinueOnError) @@ -51,6 +53,9 @@ func Run(args []string) error { f.StringVar(&export, "export", "", "export feed: text, opml, html, json") f.StringVar(&export, "x", "", "export feed (short)") + f.IntVar(&purge, "purge", 0, "purge read items older than N days") + f.BoolVar(&purgeUnread, "purge-unread", false, "when purging, also include unread items") + // options f.StringVar(&dbfile, "database", "", "sqlite database file") f.StringVar(&dbfile, "d", "", "sqlite database file (short)") @@ -126,6 +131,16 @@ func Run(args []string) error { models.InitDB() + if purge > 0 { + vlog.Printf("purging items older than %d days (include unread: %t)\n", purge, purgeUnread) + affected, err := item.Purge(purge, purgeUnread) + if err != nil { + return err + } + vlog.Printf("purged %d items\n", affected) + return nil + } + if update { vlog.Printf("starting crawl\n") crawler.Crawl() |
