49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
# coding=utf-8
|
|
|
|
import csv
|
|
import sys
|
|
import json
|
|
|
|
converted = []
|
|
|
|
typemap = {
|
|
"Aktion": "Action",
|
|
"Geld": "Treasure",
|
|
"Fluch": "Curse",
|
|
"Punkte": "Victory",
|
|
"Reaktion": "Reaction",
|
|
"Angriff": "Attack",
|
|
"Dauer": "Duration",
|
|
"Plündern": "Looter",
|
|
"Ritter": "Knight",
|
|
"Ruine": "Ruins",
|
|
"Unterschlupf": "Shelter",
|
|
"Reisender": "Traveller",
|
|
"Reserve": "Reserve",
|
|
}
|
|
|
|
with open(sys.argv[1], "U") as csvfile:
|
|
reader = csv.DictReader(csvfile)
|
|
for row in reader:
|
|
if not row["Typ"]:
|
|
continue
|
|
# row = {k: v.decode('ISO-8859-2').encode('utf-8') if type(v) == str else v for k, v in row.iteritems()}
|
|
# print chardet.detect(row['Kartentext'])
|
|
if "Ritter" in row["Typ"] and row["Kartenname"] != "Ritter":
|
|
continue
|
|
converted_row = {
|
|
"name": row["Kartenname"],
|
|
"cost": row["Kosten"],
|
|
"cardset": row["Edition"],
|
|
"description": row["Kartentext"],
|
|
"extra": row["Lange Erklärung"],
|
|
"types": [
|
|
typemap[t.strip()]
|
|
for t in row["Typ"].split("/")
|
|
if not t.strip() == "Ritter"
|
|
],
|
|
"potcost": row.get("potcost", 0),
|
|
}
|
|
converted.append(converted_row)
|
|
json.dump(converted, open(sys.argv[2], "wb"), indent=True)
|