Introduce proper flags for tops/flops. fixes #1

This commit is contained in:
Florian Baumann 2023-04-17 15:35:50 +02:00
parent 0d51645516
commit c106a01a28
2 changed files with 16 additions and 8 deletions

View File

@ -2,7 +2,6 @@ package serra
import ( import (
"fmt" "fmt"
"strconv"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
@ -13,9 +12,11 @@ func init() {
rootCmd.AddCommand(topsCmd) rootCmd.AddCommand(topsCmd)
rootCmd.AddCommand(flopsCmd) rootCmd.AddCommand(flopsCmd)
topsCmd.Flags().Float64VarP(&limit, "limit", "l", 0, "Minimum card price to be shown in analysis") 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().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{ var topsCmd = &cobra.Command{
@ -24,7 +25,7 @@ var topsCmd = &cobra.Command{
Short: "What cards gained most value", Short: "What cards gained most value",
SilenceErrors: true, SilenceErrors: true,
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
Gains(limit, -1, since) Gains(limit, -1)
return nil return nil
}, },
} }
@ -35,19 +36,25 @@ var flopsCmd = &cobra.Command{
Short: "What cards lost most value", Short: "What cards lost most value",
SilenceErrors: true, SilenceErrors: true,
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
Gains(limit, 1, since) Gains(limit, 1)
return nil return nil
}, },
} }
func Gains(limit float64, sort int, since string) error { func Gains(limit float64, sort int) error {
client := storage_connect() client := storage_connect()
coll := &Collection{client.Database("serra").Collection("cards")} coll := &Collection{client.Database("serra").Collection("cards")}
setcoll := &Collection{client.Database("serra").Collection("sets")} setcoll := &Collection{client.Database("serra").Collection("sets")}
defer storage_disconnect(client) defer storage_disconnect(client)
old, _ := strconv.Atoi(since) var old int
if sinceBeginning {
old = 0
}
if sinceLastUpdate {
old = -2
}
currencyField := "$serra_prices.usd" currencyField := "$serra_prices.usd"
if getCurrency() == "EUR" { if getCurrency() == "EUR" {

View File

@ -16,7 +16,8 @@ var name string
var oracle string var oracle string
var rarity string var rarity string
var set string var set string
var since string var sinceBeginning bool
var sinceLastUpdate bool
var sortby string var sortby string
var cardType string var cardType string
var unique bool var unique bool