diff --git a/cmd/archive.go b/cmd/archive.go index af6a495..86e1d1c 100644 --- a/cmd/archive.go +++ b/cmd/archive.go @@ -39,8 +39,9 @@ var archiveCmd = &cobra.Command{ } minifluxConfig := miniflux.MinifluxConfig{ - Host: viper.GetString("miniflux_host"), - Token: viper.GetString("miniflux_token"), + Host: viper.GetString("miniflux_host"), + Token: viper.GetString("miniflux_token"), + FeedId: viper.GetInt64("miniflux_feed_id"), } app.Archive(minifluxConfig, serviceConfig) diff --git a/cmd/root.go b/cmd/root.go index 02f96ad..d76b44e 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -13,9 +13,10 @@ import ( ) var ( - cfgFile string - miniflux_host string - miniflux_token string + cfgFile string + miniflux_host string + miniflux_token string + miniflux_feed_id int64 ) // rootCmd represents the base command when called without any subcommands @@ -50,8 +51,10 @@ func init() { rootCmd.PersistentFlags().StringVar(&miniflux_host, "miniflux-host", "", "127.0.0.1") rootCmd.PersistentFlags().StringVar(&miniflux_token, "miniflux-token", "", "XXX-XXX-XXX") + rootCmd.PersistentFlags().Int64Var(&miniflux_feed_id, "miniflux-feed_id", 0, "1") viper.BindPFlag("miniflux_host", rootCmd.PersistentFlags().Lookup("miniflux-host")) viper.BindPFlag("miniflux_token", rootCmd.PersistentFlags().Lookup("miniflux-token")) + viper.BindPFlag("miniflux_feed_id", rootCmd.PersistentFlags().Lookup("miniflux-feed-id")) } // initConfig reads in config file and ENV variables if set. @@ -82,6 +85,7 @@ func initConfig() { requiredParams := [...]string{ "miniflux_host", "miniflux_token", + "miniflux_feed_id", } for _, param := range requiredParams { diff --git a/go.mod b/go.mod index 6cbb854..3a8addd 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/joho/godotenv v1.5.1 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 + miniflux.app/v2 v2.2.3 ) require ( @@ -29,5 +30,4 @@ require ( golang.org/x/text v0.20.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - miniflux.app/v2 v2.2.3 // indirect ) diff --git a/go.sum b/go.sum index e1274c6..054ac6a 100644 --- a/go.sum +++ b/go.sum @@ -65,12 +65,8 @@ go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/app/archive.go b/internal/app/archive.go index 8479ae1..48c8f02 100644 --- a/internal/app/archive.go +++ b/internal/app/archive.go @@ -13,5 +13,11 @@ func Archive(minifluxConfig miniflux.MinifluxConfig, serviceConfig ServiceConfig logger.Fatal("Could not connect to the miniflux server: %v", err) } - fmt.Println(mf) + result, err := mf.GetEntries() + if err != nil { + logger.Fatal("Could not retrieve entries from the miniflux feed: %v", err) + } + + entry := result.Entries[0] + fmt.Println(entry.Title, entry.Status, entry.Tags) } diff --git a/internal/miniflux/miniflux.go b/internal/miniflux/miniflux.go index 9810a5a..66a4842 100644 --- a/internal/miniflux/miniflux.go +++ b/internal/miniflux/miniflux.go @@ -6,9 +6,10 @@ import ( ) type MinifluxConfig struct { - Host string - User string - Token string + Host string + User string + Token string + FeedId int64 } type Miniflux struct { @@ -16,6 +17,14 @@ type Miniflux struct { client *mfApi.Client } +func (mf *Miniflux) GetEntries() (*mfApi.EntryResultSet, error) { + filter := &mfApi.Filter{ + Statuses: []string{mfApi.EntryStatusRead, mfApi.EntryStatusRemoved}, + } + + return mf.client.FeedEntries(mf.FeedId, filter) +} + func NewMiniflux(config MinifluxConfig) (*Miniflux, error) { mf := &Miniflux{ MinifluxConfig: config,