-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
99 lines (84 loc) · 2.8 KB
/
server.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
from flask import Flask, request, render_template, jsonify, json, url_for, redirect
from flask_wtf.csrf import CSRFProtect
import sys
import os
import webbrowser
import subprocess
import signal
import time
from utils import getAbsPath, restartProgram
import config
from notificationsManager import notify
if getattr(sys, 'frozen', False):
template_folder = os.path.join(sys._MEIPASS, 'templates')
static_folder = os.path.join(sys._MEIPASS, 'static')
app = Flask(__name__, static_url_path="/static", static_folder=static_folder, template_folder=template_folder)
else:
app = Flask(__name__, static_url_path='/static')
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 300
lasttrigger = [0, -1]
tray = None
PORT = 5000
HTML = "workoutGUI"
Listexercises = []
INDEX = 0
VALUE = 1
TYPE = 0
NAME = ""
csrf = CSRFProtect(app)
SECRET_KEY = os.urandom(32)
app.config['SECRET_KEY'] = SECRET_KEY
@csrf.exempt
@app.route('/process',methods=['POST'])
def process():
global Listexercises, INDEX, VALUE, TYPE, NAME, tray, lasttrigger
#Update the exercise's information (iterations)
config.updateExercise(Listexercises[INDEX][0])
if INDEX < len(Listexercises) - 1:
INDEX += 1
VALUE = Listexercises[INDEX][1]
TYPE = Listexercises[INDEX][2]
NAME = Listexercises[INDEX][0]
isLast = 0
if INDEX == len(Listexercises) - 1:
isLast = 1
data = {
"name" : NAME,
"value" : VALUE,
"type" : TYPE,
'isLast' : isLast
}
notify("Workout Starter Pack", "Next exercise : " + NAME + " " + ((TYPE == 0) and "x"+ str(VALUE) or str(VALUE)+"s"), 5)
return render_template(HTML + '.html', data=data)
else:
config.updateLastTrigger(*lasttrigger)
notify("Workout Starter Pack", "Session finished!", 5, threaded=False)
restartProgram()
@app.route('/', methods=['GET'])
def index():
global Listexercises, VALUE, TYPE, NAME, INDEX
isLast = 0
if INDEX == len(Listexercises) - 1:
isLast = 1
data = {
"name" : NAME,
"value" : VALUE,
"type" : TYPE,
"isLast" : isLast
}
return render_template(HTML + '.html', data=data)
def get_file_content(uuid):
with open('./static/'+ NAME + "/" +uuid+'.json', 'r') as file:
return file.read()
# exercises : LIST(name, value, type)
def run(lastTrigger, ListexercisesExt, PORT, tray_):
global INDEX, Listexercises, VALUE, TYPE, NAME, tray, lasttrigger
lasttrigger = lastTrigger
tray = tray_
INDEX = 0
Listexercises = ListexercisesExt[:]
NAME = Listexercises[INDEX][0]
VALUE = Listexercises[INDEX][1]
TYPE = Listexercises[INDEX][2]
webbrowser.open('http://localhost:' + str(PORT) + "/", new=1, autoraise=True)
app.run(port=PORT)