From f2a2b4e65dbd485c77738a00a8358e9a37aeb2a5 Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Tue, 30 Jan 2024 12:12:24 +0100 Subject: [PATCH] add cmc card search feature --- src/serra/card.go | 5 +++++ src/serra/root.go | 1 + 2 files changed, 6 insertions(+) diff --git a/src/serra/card.go b/src/serra/card.go index d10f003..5c62547 100644 --- a/src/serra/card.go +++ b/src/serra/card.go @@ -14,6 +14,7 @@ func init() { cardCmd.Flags().StringVarP(&set, "set", "e", "", "Filter by set code (usg/mmq/vow)") cardCmd.Flags().StringVarP(&sortby, "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().Int64VarP(&cmc, "cmc", "m", -1, "Cumulative mana cost of card") cardCmd.Flags().StringVarP(&color, "color", "i", "", "Color identity of card (w,u,b,r,g)") cardCmd.Flags().StringVarP(&oracle, "oracle", "o", "", "Contains string in card text") cardCmd.Flags().StringVarP(&cardType, "type", "t", "", "Contains string in card type line") @@ -105,6 +106,10 @@ func Cards(rarity, set, sortby, name, oracle, cardType string, reserved, foil bo filter = append(filter, bson.E{"name", bson.D{{"$regex", ".*" + name + ".*"}, {"$options", "i"}}}) } + if cmc > -1 { + filter = append(filter, bson.E{"cmc", cmc}) + } + if len(oracle) > 0 { filter = append(filter, bson.E{"oracletext", bson.D{{"$regex", ".*" + oracle + ".*"}, {"$options", "i"}}}) } diff --git a/src/serra/root.go b/src/serra/root.go index b9f751c..5a5b618 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -9,6 +9,7 @@ var ( address string cardType string color string + cmc int64 count int64 detail bool foil bool