From b3f57c21c54621c681f62a78a41ef1214002b659 Mon Sep 17 00:00:00 2001 From: Florian Baumann Date: Tue, 15 Feb 2022 15:49:50 +0100 Subject: [PATCH] Refactored Price History view fixes #3 #2 --- src/serra/helpers.go | 41 ++++++++++++++++++++++++----------------- src/serra/root.go | 26 +++----------------------- 2 files changed, 27 insertions(+), 40 deletions(-) diff --git a/src/serra/helpers.go b/src/serra/helpers.go index 189beb7..e93bfec 100644 --- a/src/serra/helpers.go +++ b/src/serra/helpers.go @@ -90,23 +90,15 @@ func find_set_by_code(coll *Collection, setcode string) (*Set, error) { } func show_card_details(card *Card) error { - fmt.Printf("* %dx %s%s%s (%s/%s)\n", card.SerraCount, Purple, card.Name, Reset, card.Set, card.CollectorNumber) - fmt.Printf(" Added: %s\n", stringToTime(card.SerraCreated)) - fmt.Printf(" Rarity: %s\n", card.Rarity) - fmt.Printf(" Scryfall: %s\n", strings.Replace(card.ScryfallURI, "?utm_source=api", "", 1)) - fmt.Printf(" Current Value: %s%.2f EUR%s\n", Yellow, card.Prices.Eur, Reset) - fmt.Printf(" History:\n") - var before float64 - for _, e := range card.SerraPrices { - if e.Value > before { - fmt.Printf(" * %s %s%.2f EUR%s\n", stringToTime(e.Date), Green, e.Value, Reset) - } else if e.Value < before { - fmt.Printf(" * %s %s%.2f EUR%s\n", stringToTime(e.Date), Red, e.Value, Reset) - } else { - fmt.Printf(" * %s %.2f EUR\n", stringToTime(e.Date), e.Value) - } - before = e.Value - } + fmt.Printf("%s%s%s (%s/%s)\n", Purple, card.Name, Reset, card.Set, card.CollectorNumber) + fmt.Printf("Added: %s\n", stringToTime(card.SerraCreated)) + fmt.Printf("Count: %dx\n", card.SerraCount) + fmt.Printf("Rarity: %s\n", card.Rarity) + fmt.Printf("Scryfall: %s\n", strings.Replace(card.ScryfallURI, "?utm_source=api", "", 1)) + fmt.Printf("Current Value: %s%.2f EUR%s\n", Yellow, card.Prices.Eur, Reset) + + fmt.Printf("\n%sHistory%s\n", Green, Reset) + print_price_history(card.SerraPrices, "* ") fmt.Println() return nil } @@ -168,3 +160,18 @@ func convert_rarities(rar []primitive.M) Rarities { return ri } + +func print_price_history(prices []PriceEntry, prefix string) { + + var before float64 + for _, e := range prices { + if e.Value > before && before != 0 { + fmt.Printf("%s%s%s %.2f EUR%s (%+.2f%%)\n", prefix, stringToTime(e.Date), Green, e.Value, Reset, (e.Value/before*100)-100) + } else if e.Value < before { + fmt.Printf("%s%s%s %.2f EUR%s (%+.2f%%)\n", prefix, stringToTime(e.Date), Red, e.Value, Reset, (e.Value/before*100)-100) + } else { + fmt.Printf("%s%s %.2f EUR%s\n", prefix, stringToTime(e.Date), e.Value, Reset) + } + before = e.Value + } +} diff --git a/src/serra/root.go b/src/serra/root.go index 1b9f975..352f30f 100644 --- a/src/serra/root.go +++ b/src/serra/root.go @@ -280,18 +280,7 @@ func ShowSet(setname string) error { LogMessage(fmt.Sprintf("Uncommons: %.0f", ri.Uncommons), "normal") LogMessage(fmt.Sprintf("Commons: %.0f", ri.Commons), "normal") fmt.Printf("\n%sPrice History:%s\n", Pink, Reset) - - var before float64 - for _, e := range sets[0].SerraPrices { - if e.Value > before { - fmt.Printf("* %s %s%.2f EUR%s\n", stringToTime(e.Date), Green, e.Value, Reset) - } else if e.Value < before { - fmt.Printf("* %s %s%.2f EUR%s\n", stringToTime(e.Date), Red, e.Value, Reset) - } else { - fmt.Printf("* %s %.2f EUR%s\n", stringToTime(e.Date), e.Value) - } - before = e.Value - } + print_price_history(sets[0].SerraPrices, "* ") fmt.Printf("\n%sMost valuable cards%s\n", Pink, Reset) ccards := 0 @@ -591,18 +580,9 @@ func Stats() { fmt.Printf("Current: %s%.2f%s\n", Pink, stats[0]["value"], Reset) total, _ := totalcoll.storage_find_total() - var before float64 fmt.Printf("History: \n") - for _, e := range total.Value { - if e.Value > before { - fmt.Printf("* %s %s%.2f EUR%s\n", stringToTime(e.Date), Green, e.Value, Reset) - } else if e.Value < before { - fmt.Printf("* %s %s%.2f EUR%s\n", stringToTime(e.Date), Red, e.Value, Reset) - } else { - fmt.Printf("* %s %.2f EUR\n", stringToTime(e.Date), e.Value) - } - before = e.Value - } + print_price_history(total.Value, "* ") + // LogMessage(fmt.Sprintf("Mana costs in Collection"), "green") // groupStage = bson.D{ // {"$group", bson.D{