From 880880df8ebe6405fc2c3ddbc5c04a22a53862a1 Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Thu, 28 Apr 2022 21:14:19 +0200 Subject: [PATCH] since option for tops/flops --- src/serra/gains.go | 15 ++++++++++----- src/serra/root.go | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/serra/gains.go b/src/serra/gains.go index 5c72fd3..645ebe8 100644 --- a/src/serra/gains.go +++ b/src/serra/gains.go @@ -2,6 +2,7 @@ package serra import ( "fmt" + "strconv" "github.com/spf13/cobra" "go.mongodb.org/mongo-driver/bson" @@ -12,7 +13,9 @@ 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") 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") } var topsCmd = &cobra.Command{ @@ -21,7 +24,7 @@ var topsCmd = &cobra.Command{ Short: "What cards gained most value", SilenceErrors: true, RunE: func(cmd *cobra.Command, args []string) error { - Gains(limit, -1) + Gains(limit, -1, since) return nil }, } @@ -32,18 +35,20 @@ var flopsCmd = &cobra.Command{ Short: "What cards lost most value", SilenceErrors: true, RunE: func(cmd *cobra.Command, args []string) error { - Gains(limit, 1) + Gains(limit, 1, since) return nil }, } -func Gains(limit float64, sort int) error { +func Gains(limit float64, sort int, since string) 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) + raise_pipeline := mongo.Pipeline{ bson.D{{"$project", bson.D{ @@ -52,7 +57,7 @@ func Gains(limit float64, sort int) error { {"collectornumber", true}, {"old", bson.D{{"$arrayElemAt", - bson.A{"$serra_prices.value", 0}, + bson.A{"$serra_prices.value", old}, }}, }, {"current", @@ -101,7 +106,7 @@ func Gains(limit float64, sort int) error { {"code", true}, {"old", bson.D{{"$arrayElemAt", - bson.A{"$serra_prices.value", 0}, + bson.A{"$serra_prices.value", old}, }}, }, {"current", diff --git a/src/serra/root.go b/src/serra/root.go index ffe66c7..a4b14fb 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -11,6 +11,7 @@ var Version = "unknown" var count int64 var limit float64 var name string +var since string var rarity, set, sort string var rootCmd = &cobra.Command{