From 35bc36ad88a004913bd28218ad77cfb60b4a58fa Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Thu, 13 Jan 2022 10:50:09 +0100 Subject: [PATCH] add sorting option --- serra.go | 5 +++-- src/serra/root.go | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/serra.go b/serra.go index 67d3483..7d70aed 100644 --- a/serra.go +++ b/serra.go @@ -23,6 +23,7 @@ var opts struct { CardId []string `docopt:""` SetCode string `docopt:",--set"` Count int64 `docopt:"--count"` + Sort string `docopt:"--sort"` Rarity string `docopt:"--rarity"` } @@ -34,7 +35,7 @@ func main() { Usage: serra add ... [--count=] serra remove ... - serra cards [--rarity=] [--set=] + serra cards [--rarity=] [--set=] [--sort=] serra card ... serra missing serra set @@ -60,7 +61,7 @@ Options: } else if opts.Remove { serra.Remove(opts.CardId) } else if opts.Cards { - serra.Cards(opts.Rarity, opts.SetCode) + serra.Cards(opts.Rarity, opts.SetCode, opts.Sort) } else if opts.Card { serra.ShowCard(opts.CardId) } else if opts.Sets { diff --git a/src/serra/root.go b/src/serra/root.go index 75e6486..dad7ec7 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -80,7 +80,7 @@ func Remove(cards []string) { } } -func Cards(rarity, set string) { +func Cards(rarity, set, sort string) { var total float64 client := storage_connect() @@ -98,11 +98,22 @@ func Cards(rarity, set string) { filter = append(filter, bson.E{"rarity", "rare"}) } + var sortStage bson.D + switch sort { + case "value": + sortStage = bson.D{{"prices.eur", 1}} + case "collectornumber": + sortStage = bson.D{{"collectornumber", 1}} + case "name": + sortStage = bson.D{{"name", 1}} + } + fmt.Println(sortStage) + if len(set) > 0 { filter = append(filter, bson.E{"set", set}) } - cards, _ := coll.storage_find(filter, bson.D{{"name", 1}}) + cards, _ := coll.storage_find(filter, sortStage) for _, card := range cards { LogMessage(fmt.Sprintf("* %dx %s%s%s (%s/%s) %s%.2f EUR%s", card.SerraCount, Purple, card.Name, Reset, card.Set, card.CollectorNumber, Yellow, card.Prices.Eur, Reset), "normal")