Tue, 23 Jan 2018 14:09:52 +0200
added a simple web frontend
29 | 1 | from flask import Flask, render_template, redirect, request |
2 | from ldcheck import load_config, load_colours, find_ldconfig_ldr_paths | |
3 | from ldcheck import read_ldraw | |
4 | from testsuite import load_tests, check_model, format_report_html | |
5 | ||
6 | app = Flask('LDCheck') | |
7 | ||
8 | @app.route('/', methods = ['GET', 'POST']) | |
9 | def web_front(): | |
10 | if request.method == 'POST': | |
11 | # check if the post request has the file part | |
12 | if 'file' not in request.files or not request.files['file'].filename: | |
13 | return redirect(request.url) | |
14 | file = request.files['file'] | |
15 | print(type(file)) | |
16 | config = load_config('ldcheck.cfg') | |
17 | for ldconfig_ldr_path in find_ldconfig_ldr_paths(config): | |
18 | with ldconfig_ldr_path.open() as ldconfig_ldr: | |
19 | load_colours(ldconfig_ldr) | |
20 | model = read_ldraw( | |
21 | file.stream, | |
22 | name = file.filename, | |
23 | config = config, | |
24 | ) | |
25 | test_suite = load_tests() | |
26 | report = check_model(model, test_suite) | |
27 | return str.format( | |
28 | '<!doctype html><html><body><ul>{report}</ul></body></html>', | |
29 | report = format_report_html(report, model, test_suite) | |
30 | ) | |
31 | return ''' | |
32 | <!doctype html> | |
33 | <title>Upload new File</title> | |
34 | <h1>Upload new File</h1> | |
35 | <form method=post enctype=multipart/form-data> | |
36 | <p><input type=file name=file> | |
37 | <input type=submit value=Upload> | |
38 | </form> | |
39 | ''' | |
40 | ||
41 | app.run() |