scripts: Add level descriptions and names

This commit is contained in:
Alexander Polynomdivision
2018-10-22 18:39:24 +02:00
parent 2ce9791800
commit 842e685c59
4 changed files with 90 additions and 1 deletions

View File

@@ -0,0 +1,68 @@
import csv
import sys
import os
import pymongo
def log(msg, err=False, tabs=0):
if (not err):
print("[*] " + "\t" * tabs + msg)
else:
print("[X] " + "\t" * tabs + msg)
def dbg(msg, tabs=0):
print("[D] " + "\t" * tabs + msg)
def csv_to_level(filename):
skip = 0
path = os.path.join("../data/", filename)
dbg("Reading from {0} ({1})".format(filename, path), tabs=2)
queries = []
with open(path, newline="") as csvfile:
reader = csv.reader(csvfile, delimiter=",", quotechar="|")
for raw in reader:
skip += 1
# Skip the header lines
# if (skip < num_lines_to_skip + 1):
if (skip < 3):
continue
# Remove any whitespaces in front of or after the string
row = [col.strip() for col in raw]
queries += (({
"level": int(row[0])
}, {
"$set": {
"name": row[1],
"description": row[4]
}
}),)
return queries
log("Lateinicus CSV to level DB Model")
if len(sys.argv) < 3 and os.getenv("DEBUG") == None:
log("Not enough arguments!", err=True)
log("Usage: csv_vocab_to_mongo.py <URI> <Database>", err=True)
sys.exit(1)
log("Creating queries")
queries = csv_to_level("levels.csv")
if os.getenv("DEBUG") != None:
log("{} entries generated".format(len(queries)))
log("Query: {}".format(queries[0][0]))
log("Update: {}".format(queries[0][1]))
sys.exit()
# Connect to the database
log("Updating levels")
log("Connecting...", tabs=1)
client = pymongo.MongoClient(sys.argv[1])
log("Getting DB...", tabs=1)
db = client[sys.argv[2]]
index = 1
for query in queries:
log("Updating [{0}/{1}]...".format(index, len(queries)), tabs=1)
index += 1
res = db["levels"].update_one(query[0], query[1])