Skip to content

Commit

Permalink
Add export to tcghome and moxfield
Browse files Browse the repository at this point in the history
  • Loading branch information
noqqe committed Mar 14, 2024
1 parent 51e139a commit 7ad8597
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions src/serra/export.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package serra

import (
"encoding/csv"
"encoding/json"
"fmt"
"log"
"os"

"github.com/spf13/cobra"
)
Expand Down Expand Up @@ -38,6 +41,10 @@ var exportCmd = &cobra.Command{
switch format {
case "tcgpowertools":
exportTCGPowertools(cardList)
case "tcghome":
exportTCGHome(cardList)
case "moxfield":
exportMoxfield(cardList)
case "json":
exportJson(cardList)
}
Expand All @@ -58,6 +65,62 @@ func exportTCGPowertools(cards []Card) {
}
}

func exportMoxfield(cards []Card) {

// Structure
// https://www.moxfield.com/help/importing-collection

records := [][]string{{
"Count", "Name", "Edition", "Condition", "Language", "Foil", "Collector Number", "Alter", "Proxy", "Purchase Price"}}

w := csv.NewWriter(os.Stdout)

for _, card := range cards {
records = append(records,
[]string{fmt.Sprintf("%d", card.SerraCount), card.Name, card.Set, "NM", "English", "FALSE", card.CollectorNumber, "FALSE", "FALSE", ""})
}

for _, record := range records {
if err := w.Write(record); err != nil {
log.Fatalln("error writing record to csv:", err)
}
}

w.Flush()

if err := w.Error(); err != nil {
log.Fatal(err)
}
}

func exportTCGHome(cards []Card) {

// Strucutre
// https://app.tcg-home.com/e686ea62-7078-4f52-bd6f-515e18c7dc6a

records := [][]string{{
"amount", "name", "finish", "set", "collector_number", "language", "condition", "scryfall_id", "purchase_price"}}

w := csv.NewWriter(os.Stdout)

for _, card := range cards {
records = append(records,
[]string{fmt.Sprintf("%d", card.SerraCount), card.Name, "", card.Set, card.CollectorNumber, "English", "EX", card.ID, ""})
}

for _, record := range records {
if err := w.Write(record); err != nil {
log.Fatalln("error writing record to csv:", err)
}
}

w.Flush()

if err := w.Error(); err != nil {
log.Fatal(err)
}
}

func exportJson(cards []Card) {
ehj, _ := json.MarshalIndent(cards, "", " ")
fmt.Println(string(ehj))
Expand Down

0 comments on commit 7ad8597

Please sign in to comment.