Skip to content
Snippets Groups Projects
server.py 1.69 KiB
Newer Older
Thomas Bock's avatar
Thomas Bock committed
import json
import datetime
import re
from flask import Flask, request, jsonify, send_from_directory, render_template
from flask_cors import CORS

import repl.utils as utils

config = utils.get_config_dict()
app = Flask(__name__, static_url_path='')
CORS(app)

@app.route('/repl/all.html', methods=['GET'])
def repl_all():
Wact B. Prot's avatar
..  
Wact B. Prot committed
    gen = utils.gen_count()
Thomas Bock's avatar
.  
Thomas Bock committed
    dbs = {}
    nodes = []
    edges = []
Thomas Bock's avatar
.  
Thomas Bock committed
    srvs = utils.get_server()
    for srv in srvs:
Thomas Bock's avatar
Thomas Bock committed
        docs = utils.get_docs(srv.get("name"), srv.get("port"))
        nodes, edges = utils.get_nodes_and_edges(docs, gen, dbs, nodes, edges, srv.get("name"))
Thomas Bock's avatar
.  
Thomas Bock committed
        
Thomas Bock's avatar
Thomas Bock committed
    template = utils.path_file(path=config['templates']['html'], file='all.html')
Thomas Bock's avatar
Thomas Bock committed
    return render_template(template, nodes=nodes, edges=edges, date=utils.get_current_date())
Thomas Bock's avatar
Thomas Bock committed

@app.route('/js/<fn>', methods=['get'])
def js_folder(fn):
    app.logger.debug('hit js folder')
    return send_from_directory('static/js', fn)

@app.route('/css/<fn>', methods=['get'])
def css_folder(fn):
    app.logger.debug('hit css folder')
    return send_from_directory('static/css', fn)

@app.route('/logo/<fn>', methods=['get'])
def logo_folder(fn):
    app.logger.debug('hit logo folder')
    return send_from_directory('static/logo', fn)

@app.route('/update', methods=['post'])
def update():
    app.logger.debug('hit update')
    req = request.get_json()
    git_cmd.pull()
    app.logger.info("pulled {log}".format(log=git_cmd.log("-n 1")))
    return jsonify({'ok':True})


@app.route('/version', methods=['get'])
def version():
    app.logger.debug('hit version')
    return jsonify({'version': git_cmd.describe()})
    
if __name__ == '__main__':
    app.run(host=config['server']['host'], port=config['server']['port'])