|
|
@@ -11,6 +11,7 @@ import (
|
|
|
"miniflux.app/database"
|
|
|
"miniflux.app/locale"
|
|
|
"miniflux.app/logger"
|
|
|
+ feedHandler "miniflux.app/reader/handler"
|
|
|
"miniflux.app/storage"
|
|
|
"miniflux.app/ui/static"
|
|
|
"miniflux.app/version"
|
|
|
@@ -28,6 +29,7 @@ const (
|
|
|
flagConfigFileHelp = "Load configuration file"
|
|
|
flagConfigDumpHelp = "Print parsed configuration values"
|
|
|
flagHealthCheckHelp = `Perform a health check on the given endpoint (the value "auto" try to guess the health check endpoint).`
|
|
|
+ flagCronjobHelp = "Run Miniflux as a cronjob to refresh a batch of feeds and exit"
|
|
|
)
|
|
|
|
|
|
// Parse parses command line arguments.
|
|
|
@@ -45,6 +47,7 @@ func Parse() {
|
|
|
flagConfigFile string
|
|
|
flagConfigDump bool
|
|
|
flagHealthCheck string
|
|
|
+ flagCronjob bool
|
|
|
)
|
|
|
|
|
|
flag.BoolVar(&flagInfo, "info", false, flagInfoHelp)
|
|
|
@@ -61,6 +64,7 @@ func Parse() {
|
|
|
flag.StringVar(&flagConfigFile, "c", "", flagConfigFileHelp)
|
|
|
flag.BoolVar(&flagConfigDump, "config-dump", false, flagConfigDumpHelp)
|
|
|
flag.StringVar(&flagHealthCheck, "healthcheck", "", flagHealthCheckHelp)
|
|
|
+ flag.BoolVar(&flagCronjob, "cronjob", false, flagCronjobHelp)
|
|
|
flag.Parse()
|
|
|
|
|
|
cfg := config.NewParser()
|
|
|
@@ -187,5 +191,21 @@ func Parse() {
|
|
|
createAdmin(store)
|
|
|
}
|
|
|
|
|
|
+ if flagCronjob {
|
|
|
+ jobs, err := store.NewBatch(config.Opts.BatchSize())
|
|
|
+ if err != nil {
|
|
|
+ logger.Error("[Cronjob] %v", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ logger.Info("[Cronjob]] Processing %d jobs", len(jobs))
|
|
|
+
|
|
|
+ for _, job := range jobs {
|
|
|
+ if err := feedHandler.RefreshFeed(store, job.UserID, job.FeedID); err != nil {
|
|
|
+ logger.Error("[Cronjob] Refreshing the feed #%d returned this error: %v", job.FeedID, err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
startDaemon(store)
|
|
|
}
|