From 8d4bd7adbb8d21fcae4b0750af7ba4764f2bca4f Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Mon, 20 Feb 2023 09:33:22 +0100 Subject: [PATCH] Add --oralce --- src/serra/card.go | 9 +++++++-- src/serra/root.go | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/serra/card.go b/src/serra/card.go index d1af340..03dbeca 100644 --- a/src/serra/card.go +++ b/src/serra/card.go @@ -13,6 +13,7 @@ func init() { 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/added)") cardCmd.Flags().StringVarP(&name, "name", "n", "", "Name of the card (regex compatible)") + cardCmd.Flags().StringVarP(&oracle, "oracle", "o", "", "Contains string in card text") rootCmd.AddCommand(cardCmd) } @@ -26,7 +27,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, name) + Cards(rarity, set, sort, name, oracle) } else { ShowCard(cards) } @@ -50,7 +51,7 @@ func ShowCard(cardids []string) { } } -func Cards(rarity, set, sort, name string) { +func Cards(rarity, set, sort, name, oracle string) { var total float64 client := storage_connect() @@ -94,6 +95,10 @@ func Cards(rarity, set, sort, name string) { filter = append(filter, bson.E{"name", bson.D{{"$regex", ".*" + name + ".*"}, {"$options", "i"}}}) } + if len(oracle) > 0 { + filter = append(filter, bson.E{"oracletext", bson.D{{"$regex", ".*" + oracle + ".*"}, {"$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 812a8d3..d7bb47e 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -12,7 +12,10 @@ var count int64 var limit float64 var name string var since string -var rarity, set, sort string +var rarity string +var set string +var sort string +var oracle string var unique bool var rootCmd = &cobra.Command{