-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.py
112 lines (92 loc) · 3.32 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
from flask import Flask, render_template, jsonify, request, send_file, session
import load_mossbauer
import os
import csv
app = Flask(__name__, static_url_path='/static')
app.secret_key = 'appsecret'
@app.route("/")
def index():
group_folders = load_mossbauer.get_group_names()
return render_template("index.html", data=group_folders)
@app.route("/group/<group_folder>", methods=['GET'])
def groupview(group_folder):
group_folders = load_mossbauer.get_group_names()
samples, decoded_group_folder = load_mossbauer.get_samples_for_group(group_folder)
return render_template('index.html',sampledata=samples, data=group_folders,group_folder=decoded_group_folder)
@app.route('/sample/<sample_name>', methods = ['GET'])
def get_sample_view(sample_name):
sample_list, name, group, dana_group, owner, pubs = load_mossbauer.get_sample(sample_name)
return render_template('sample.html', sampledata=sample_list, name=name, group=group, dana_group=dana_group, owner=owner, pubs=pubs)
@app.route("/search/<query>")
def searchview(query):
group, sample = load_mossbauer.searchResult(query)
return render_template('search.html', query=query, group=group, sampleset=sample)
@app.route("/datafile/<cntno>")
def dataview(cntno):
the_file = load_mossbauer.get_data_file(cntno)
try:
return send_file(the_file, as_attachment=True)
except Exception as e:
print(e)
return
@app.route("/textfile/<cntno>")
def textview(cntno):
the_file = load_mossbauer.get_text_file(cntno)
try:
return send_file(the_file, as_attachment=True)
except Exception as e:
print(e)
return
@app.route("/plot/<sample_name>", methods=['GET'])
def intensityPlotData(sample_name):
plot_data = load_mossbauer.spectrum_plot_data(sample_name)
return jsonify(plot_data)
@app.route("/badfiles/", methods=["GET"])
def getBadFiles():
ls_not_book, ls_not_in_server = load_mossbauer.list_badfiles()
return render_template('badfiles.html', notbook=ls_not_book, notserver=ls_not_in_server, notbookcount = len(ls_not_book), notservercount = len(ls_not_in_server))
@app.route("/getCompareList", methods=['GET'])
def getCompareList():
if 'bag' in session:
sessionList = [load_mossbauer.get_sample_temperature(e.decode("utf-8")) for e in session['bag']]
return jsonify(sessionList)
return jsonify(None)
@app.route('/addToCompare', methods=['POST'])
def addToCompare():
selectedSample = request.get_data();
if 'bag' in session:
tempbag = session['bag']
else:
session['bag'] = []
tempbag = []
if selectedSample in tempbag:
tempbag.remove(selectedSample)
session['bag'] = tempbag
return 'removed'
else:
if len(tempbag) < 10:
tempbag.append(selectedSample)
session['bag'] = tempbag
return 'added'
return 'error';
@app.route('/removeFromCompare', methods=['POST'])
def removeFromCompare():
selectedSample = request.get_data();
if 'bag' in session:
tempbag = session['bag']
else:
session['bag'] = []
tempbag = []
if selectedSample in tempbag:
tempbag.remove(selectedSample)
session['bag'] = tempbag
return 'removed'
else:
return 'not found'
return 'error';
@app.route('/clearCompareList', methods=['POST'])
def clearCompareList():
session['bag'] = []
return 'cleared';
if __name__ == '__main__':
app.run(host='0.0.0.0', port=51515, debug=False)