From c106a01a289babf8373579936410675f4971a66e Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Mon, 17 Apr 2023 15:35:50 +0200 Subject: [PATCH] Introduce proper flags for tops/flops. fixes #1 --- src/serra/gains.go | 21 ++++++++++++++------- src/serra/root.go | 3 ++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/serra/gains.go b/src/serra/gains.go index 2972e62..3920e11 100644 --- a/src/serra/gains.go +++ b/src/serra/gains.go @@ -2,7 +2,6 @@ package serra import ( "fmt" - "strconv" "github.com/spf13/cobra" "go.mongodb.org/mongo-driver/bson" @@ -13,9 +12,11 @@ func init() { rootCmd.AddCommand(topsCmd) rootCmd.AddCommand(flopsCmd) topsCmd.Flags().Float64VarP(&limit, "limit", "l", 0, "Minimum card price to be shown in analysis") - topsCmd.Flags().StringVarP(&since, "since", "s", "0", "Since when should the gains be calculated") + topsCmd.Flags().BoolVarP(&sinceLastUpdate, "since-last-update", "u", false, "Show gains since last update") + topsCmd.Flags().BoolVarP(&sinceBeginning, "since-beginning", "b", true, "Show gains since beginning of records") flopsCmd.Flags().Float64VarP(&limit, "limit", "l", 0, "Minimum card price to be shown in analysis") - flopsCmd.Flags().StringVarP(&since, "since", "s", "0", "Since when should the losses be calculated") + flopsCmd.Flags().BoolVarP(&sinceLastUpdate, "since-last-update", "u", false, "Show losses since last update") + flopsCmd.Flags().BoolVarP(&sinceBeginning, "since-beginning", "b", true, "Show losses since beginning of records") } var topsCmd = &cobra.Command{ @@ -24,7 +25,7 @@ var topsCmd = &cobra.Command{ Short: "What cards gained most value", SilenceErrors: true, RunE: func(cmd *cobra.Command, args []string) error { - Gains(limit, -1, since) + Gains(limit, -1) return nil }, } @@ -35,19 +36,25 @@ var flopsCmd = &cobra.Command{ Short: "What cards lost most value", SilenceErrors: true, RunE: func(cmd *cobra.Command, args []string) error { - Gains(limit, 1, since) + Gains(limit, 1) return nil }, } -func Gains(limit float64, sort int, since string) error { +func Gains(limit float64, sort int) error { client := storage_connect() coll := &Collection{client.Database("serra").Collection("cards")} setcoll := &Collection{client.Database("serra").Collection("sets")} defer storage_disconnect(client) - old, _ := strconv.Atoi(since) + var old int + if sinceBeginning { + old = 0 + } + if sinceLastUpdate { + old = -2 + } currencyField := "$serra_prices.usd" if getCurrency() == "EUR" { diff --git a/src/serra/root.go b/src/serra/root.go index 859caf4..e0b6489 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -16,7 +16,8 @@ var name string var oracle string var rarity string var set string -var since string +var sinceBeginning bool +var sinceLastUpdate bool var sortby string var cardType string var unique bool