Add name search to card

This commit is contained in:
Florian Baumann 2022-04-01 09:41:59 +02:00
parent bb54b5ce88
commit d39694a072
2 changed files with 8 additions and 2 deletions

View File

@ -12,6 +12,7 @@ func init() {
cardCmd.Flags().StringVarP(&rarity, "rarity", "r", "", "Filter by rarity of cards (mythic, rare, uncommon, common)") 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(&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(&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) rootCmd.AddCommand(cardCmd)
} }
@ -25,7 +26,7 @@ otherwise you'll get a list of cards as a search result.`,
SilenceErrors: true, SilenceErrors: true,
RunE: func(cmd *cobra.Command, cards []string) error { RunE: func(cmd *cobra.Command, cards []string) error {
if len(cards) == 0 { if len(cards) == 0 {
Cards(rarity, set, sort) Cards(rarity, set, sort, name)
} else { } else {
ShowCard(cards) 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 var total float64
client := storage_connect() client := storage_connect()
@ -83,6 +84,10 @@ func Cards(rarity, set, sort string) {
filter = append(filter, bson.E{"set", set}) 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) cards, _ := coll.storage_find(filter, sortStage)
for _, card := range cards { for _, card := range cards {

View File

@ -10,6 +10,7 @@ import (
var Version = "unknown" var Version = "unknown"
var count int64 var count int64
var limit float64 var limit float64
var name string
var rarity, set, sort string var rarity, set, sort string
var rootCmd = &cobra.Command{ var rootCmd = &cobra.Command{