From d39694a072dfa80b71b311621a63ae58b0025b51 Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Fri, 1 Apr 2022 09:41:59 +0200 Subject: [PATCH] Add name search to card --- src/serra/card.go | 9 +++++++-- src/serra/root.go | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/serra/card.go b/src/serra/card.go index 67d3a0d..fb224c5 100644 --- a/src/serra/card.go +++ b/src/serra/card.go @@ -12,6 +12,7 @@ func init() { cardCmd.Flags().StringVarP(&rarity, "rarity", "r", "", "Filter by rarity of cards (mythic, rare, uncommon, common)") cardCmd.Flags().StringVarP(&set, "set", "e", "", "Filter by set code (usg/mmq/vow)") cardCmd.Flags().StringVarP(&sort, "sort", "s", "name", "How to sort cards (value/number/name)") + cardCmd.Flags().StringVarP(&name, "name", "n", "", "Name of the card (regex compatible)") rootCmd.AddCommand(cardCmd) } @@ -25,7 +26,7 @@ otherwise you'll get a list of cards as a search result.`, SilenceErrors: true, RunE: func(cmd *cobra.Command, cards []string) error { if len(cards) == 0 { - Cards(rarity, set, sort) + Cards(rarity, set, sort, name) } else { ShowCard(cards) } @@ -49,7 +50,7 @@ func ShowCard(cardids []string) { } } -func Cards(rarity, set, sort string) { +func Cards(rarity, set, sort, name string) { var total float64 client := storage_connect() @@ -83,6 +84,10 @@ func Cards(rarity, set, sort string) { filter = append(filter, bson.E{"set", set}) } + if len(name) > 0 { + filter = append(filter, bson.E{"name", bson.D{{"$regex", ".*" + name + ".*"}, {"$options", "i"}}}) + } + cards, _ := coll.storage_find(filter, sortStage) for _, card := range cards { diff --git a/src/serra/root.go b/src/serra/root.go index 6d114e6..ffe66c7 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -10,6 +10,7 @@ import ( var Version = "unknown" var count int64 var limit float64 +var name string var rarity, set, sort string var rootCmd = &cobra.Command{