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

6
.gitignore vendored
View File

@ -16,4 +16,8 @@ server/*.pem
server/db/
# Script ignores
scripts/bee-movie.txt
scripts/bee-movie.txt
# Data ignores
# This is important!
data/tests/

17
data/levels.csv Normal file
View File

@ -0,0 +1,17 @@
,,,,
Level,Beschreibung,,,
1,Carpe diem!,,,Dieses Zitat von Horaz heißt "Nutze den Tag!".
2,Alea iacta est.,,,|Caesar sagte dieses berühmte Zitat, nachdem er den Rubikon übertreten hatte und mit seinen Truppen ins römische Kernland einmarschierte (diese durften das nicht betreten). Auf Deutsch heißt es " Die Würfel sind gefallen."|
3,Homo homini Lupus est.,,,|Mit dem Zitat " Der Mensch ist dem Menschen ein Wolf" deutet der Verfasser Titus an, dass Menschen sich besonders auch vor anderen Menschen in Acht nehmen sollten, da diese so grausam wie Wölfe sein können.|
4,In vino veritas.,,,|"Im Wein liegt die Wahrheit." Dieses ins Lateinische übersetzte Sprichwort drückt aus, dass man bei höherem Alkoholkonsum ehrlicher wird.|
5,Pecunia non olet.,,,|"Geld stinkt nicht." Dieses Zitat ist von Kaiser Vespasian. Nachdem dieser auf die öffentlichen Toiletten Steuern erhoben hatte, fragte ihn sein Sohn wie er dies rechtfertigen würde. Daraufhin hielt er ihm einen Geldbeutel unter die Nase und sprach das bekannte Zitat.|
6,|Veni, vidi, vici.|,,,|"Ich kam, sah und siegte." Nachdem Caesar ein gegnerisches Heer in kürzester Zeit besiegt hatte, soll er sogar ein Schild mit diesen drei Wortem bei seinem Siegeszug mi sich geführt haben.|
7,Exspecto patronum!,,,"Ich erwarte den Schutzgeist!" Dies ist ein Zauber aus der Welt von Harry Potter. Mit ihm kann man seinen Schutzgeist (Patronus) beschwören.
8,Draco dormiens nunquam titillandus!,,,"Kitzle niemals einen schlafenden Drachen!" Dies ist das pragmatische Motto von der Hogwarts-Schule für Zauberei und Hexerei.
9,Cogito ergo sum.,,,|"Ich denke, also bin ich."Entgegen des allgemeinen Glaubens stammt dieses Zitat aus dem 17. Jahrhundert und von dem Philosophen Descartes.|
10,Errare humanum est.,,,"Irren ist menschlich." Dieses Zitat stammt von Hieronymus und zeigt eines der menschlichsten Dinge auf.
11,In dubio pro reo,,,|"Im Zweifel für den Angeklagten." Dieses Zitat findet auch in der heutigen Juristik Anklang. Reichen die Beweise nicht zu einer Verurteilung aus, wird meist für den Angeklagten entschieden.|
12,Quod erat demonstrandum,,,|"Was zu beweisen war ." Dies wird unter viele Herleitungen geschrieben, sobald man sie beendet hat.|
13,Duobus certantibus tertius gaudet.,,,|"Wenn zwei sich streiten, freut sich der Dritte." Dies ist das lateinische Äquivalent zu dem deutschen Sprichwort.|
14,Romani ite domum!,,,|"Römer, geht nach Hause!" Dies ist ein bekanntes Zitat aus dem Film "Das Leben des Brian".|
15,Manus manum lavat.,,,|"Eine Hand wäscht die andere." Mit diesem Zitat drückt Seneca aus, dass man für eine Leistung immer auch eine Gegenleistung erbringen muss.|
Can't render this file because it contains an unexpected character in line 3 and column 47.

BIN
data/levels.ods Normal file

Binary file not shown.

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])