add sorting option

This commit is contained in:
Florian Baumann 2022-01-13 10:50:09 +01:00
parent c78c766825
commit 35bc36ad88
2 changed files with 16 additions and 4 deletions

View File

@ -23,6 +23,7 @@ var opts struct {
CardId []string `docopt:"<cardid>"`
SetCode string `docopt:"<setcode>,--set"`
Count int64 `docopt:"--count"`
Sort string `docopt:"--sort"`
Rarity string `docopt:"--rarity"`
}
@ -34,7 +35,7 @@ func main() {
Usage:
serra add <cardid>... [--count=<number>]
serra remove <cardid>...
serra cards [--rarity=<rarity>] [--set=<setcode>]
serra cards [--rarity=<rarity>] [--set=<setcode>] [--sort=<sort>]
serra card <cardid>...
serra missing <setcode>
serra set <setcode>
@ -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 {

View File

@ -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")