archive/SmearcarDB/server.py
2018-01-16 14:13:19 -05:00

53 lines
1.4 KiB
Python

import pickle
from flask import Flask
from flask import render_template, jsonify, request
import time
import random
app = Flask(__name__)
try:
database = pickle.load(open("save.p", "rb"))
except (FileNotFoundError) as e:
database = {'languages': [],
'phonemes': [],
'values': []}
# Render the client at the default URL
@app.route("/")
def initial():
return render_template('index.html')
# Place for client to communicate with the server
@app.route("/server", methods=["GET", "POST"])
def backend():
# Get method returns the latest database
if request.method == "GET":
return jsonify(database)
# Post method currently appends to the languages
# TODO add more methods
elif request.method == "POST":
newlanguage = request.get_json()
database.values.append(newlanguage)
# Add new phonemes
newphonemes = list(newlanguage.phonemes)
uniquephonemes = list(set(newphonemes) - set(database.phonemes))
database.phonemes = database.phonemes + uniquephonemes
# Add new language
newlang = list(newlanguage.name)
uniquelanguages = list(set(newlang) - set(database.languages))
database.languages = database.languages + uniquelanguages
pickle.dump(database, open("newestsave.p", "wb"))
return jsonify(database)
else:
return
if __name__ == "__main__":
app.run(host="0.0.0.0")