add check command
This commit is contained in:
parent
5eac08c40b
commit
4580748ebe
BIN
imgs/check.png
Normal file
BIN
imgs/check.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
@ -69,6 +69,7 @@ Usage:
|
|||||||
Available Commands:
|
Available Commands:
|
||||||
add Add a card to your collection
|
add Add a card to your collection
|
||||||
card Search & show cards from your collection
|
card Search & show cards from your collection
|
||||||
|
check Check if a card is in your collection
|
||||||
completion Generate the autocompletion script for the specified shell
|
completion Generate the autocompletion script for the specified shell
|
||||||
flops What cards lost most value
|
flops What cards lost most value
|
||||||
help Help about any command
|
help Help about any command
|
||||||
@ -137,6 +138,12 @@ update. After all Sets are updated, the whole collection value is updated.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## Check
|
||||||
|
|
||||||
|
To add a card to your collection.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Adding all those cards, manually?
|
## Adding all those cards, manually?
|
||||||
|
|
||||||
Yes. While there are serveral OCR/Photo Scanners for mtg cards, I found they
|
Yes. While there are serveral OCR/Photo Scanners for mtg cards, I found they
|
||||||
|
|||||||
66
src/serra/check.go
Normal file
66
src/serra/check.go
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
package serra
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
checkCmd.Flags().StringVarP(&set, "set", "s", "", "Filter by set code (usg/mmq/vow)")
|
||||||
|
checkCmd.Flags().BoolVarP(&detail, "detail", "d", false, "Show details for cards (url)")
|
||||||
|
rootCmd.AddCommand(checkCmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
var checkCmd = &cobra.Command{
|
||||||
|
Aliases: []string{"c"},
|
||||||
|
Use: "check",
|
||||||
|
Short: "Check if a card is in your collection",
|
||||||
|
Long: "Check if a card is in your collection. Useful for list comparsions",
|
||||||
|
SilenceErrors: true,
|
||||||
|
RunE: func(cmd *cobra.Command, cards []string) error {
|
||||||
|
checkCards(cards, detail)
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func checkCards(cards []string, detail bool) error {
|
||||||
|
client := storageConnect()
|
||||||
|
coll := &Collection{client.Database("serra").Collection("cards")}
|
||||||
|
defer storageDisconnect(client)
|
||||||
|
|
||||||
|
// Loop over different cards
|
||||||
|
for _, card := range cards {
|
||||||
|
|
||||||
|
// Extract collector number and set name from card input & trim any leading 0 from collector number
|
||||||
|
collectorNumber := strings.TrimLeft(strings.Split(card, "/")[1], "0")
|
||||||
|
setName := strings.Split(card, "/")[0]
|
||||||
|
|
||||||
|
// Check if card is already in collection
|
||||||
|
co, err := coll.storageFind(bson.D{{"set", setName}, {"collectornumber", collectorNumber}}, bson.D{}, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
LogMessage(fmt.Sprintf("%v", err), "red")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// If Card is in collection, print yes.
|
||||||
|
if len(co) >= 1 {
|
||||||
|
c := co[0]
|
||||||
|
LogMessage(fmt.Sprintf("Yes - %s \"%s\" (%s, %.2f%s) is in your Collection", card, c.Name, c.Rarity, c.getValue(foil), getCurrency()), "green")
|
||||||
|
continue
|
||||||
|
} else {
|
||||||
|
if detail {
|
||||||
|
// fetch card from scyrfall if --detail was given
|
||||||
|
c, _ := fetchCard(setName, collectorNumber)
|
||||||
|
LogMessage(fmt.Sprintf("No - %s \"%s\" (%s, %.2f%s) is not in your Collection.", card, c.Name, c.Rarity, c.getValue(foil), getCurrency()), "red")
|
||||||
|
} else {
|
||||||
|
// Just print, the card name was not found
|
||||||
|
LogMessage(fmt.Sprintf("No \"%s\" is not in your Collection.", card), "red")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
storageDisconnect(client)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user