scripts: Add add_level.py

This commit is contained in:
Alexander Polynomdivision 2018-10-01 17:33:25 +02:00
parent 8e71aa85dc
commit 1a07fd2ddb
2 changed files with 64 additions and 1 deletions

View File

@ -17,10 +17,23 @@ writes the data into the MongoDB database.
## add_user.js
Asks the user about his data (username, password, class** and adds the user to the database.
**NOTE**: Requires `mongodb` to be installed via npm
**NOTE**: Requires `mongodb** to be installed via npm
**NOTE**: This script is written in JavaScript, so we can ensure that the same pbkdf2 function is used
to create the user and to hash the password later on.
### Usage
`node add_user.js <URI> <Database>`
- `URI`: The URI of the MongoDB instance
- `Database`: The name of the database in the MongoDB instance
## add_level.py
Asks about a new level to add
**NOTE**: Requires `mongodb** to be installed via npm
### Usage
- `URI`: The URI of the MongoDB instance
- `Database`: The name of the database in the MongoDB instance

50
scripts/add_level.py Normal file
View File

@ -0,0 +1,50 @@
import pymongo
import sys
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)
if (len(sys.argv) < 3):
log("Not enough arguments!", err=True)
sys.exit(1)
log("Level")
level = int(input("> "))
log("Level name")
name = input("> ")
log("Level description")
desc = input("> ")
log("Vocabulary (Comma separated)")
vocab_raw = input("> ")
log("Preprocess vocabulary list")
vocab = []
for id_raw in vocab_raw.split(","):
try:
vocab.append(int(id_raw))
except:
log("Invalid id found: '{0}'".format(id), err=True)
sys.exit(1)
log("Connecting to database...")
client = pymongo.MongoClient(sys.argv[1])
log("Getting DB...")
db = client[sys.argv[2]]
log("Inserting...")
res = db["levels"].insert_one({
"level": level,
"name": name,
"description": desc,
"vocab": vocab
})
log("Success", tabs=1)