-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsenseit.py
108 lines (90 loc) · 3.08 KB
/
senseit.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
from flask import Flask, render_template, request
from flask.ext.sqlalchemy import SQLAlchemy
from flask_mail import Mail, Message
import string
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
mail = Mail(app)
from models import *
@app.route("/", methods=['GET', 'POST'])
def index():
if request.method == 'POST':
if request.form['method'] == 'ADD':
f = Function.query.get(request.form['function_id'])
s = Solution.query.get(request.form['solution_id'])
f.solutions.append(s)
db.session.add(f)
db.session.commit()
elif request.form['method'] == 'DELETE':
function = Function.query.get(request.form['function_id'])
for solution in function.solutions:
function.solutions.remove(solution)
db.session.commit()
functions = Function.query.all()
solutions = Solution.query.all()
smhi()
return render_template('index.html', functions=functions, solutions=solutions)
@app.route("/sensors")
def sensor():
plates = Plate.query.all()
return render_template('sensors.html', plates=plates)
@app.route("/stats")
def stats():
return render_template('stats.html')
@app.route("/functions")
def functions():
functions = Function.query.all()
plates = Plate.query.all()
for function in functions:
temp = function.regex.split(" ")
function.sensor = temp[0]
function.operator = temp[1]
function.weight = temp[2]
return render_template('functions.html', plates=plates, functions=functions)
@app.route("/update", methods=['GET', 'POST'])
def update():
p = Plate.query.get(request.form['plate_id'])
if p.weight != request.form['weight']:
p.weight = request.form['weight']
db.session.commit()
update_plate(p.id)
return ("Hej")
from SMHIData import getSMHIdata
from PakeringsData import getPakeringLkpgdata
def smhi():
test = getSMHIdata("18:00:00")['t']
test2 = "Det kommer bli " + str(test) + " grader ute"
send_mail("SENSIT VÄDER", test2)
print("smhi")
def parkering():
test = getPakeringLkpgdata("timestring")
test2 = "Det finns ledig plats " + str(test)
send_mail("SENSIT PARKERING", test2)
print("parkering")
def evaluate_solution(solution):
switcher = {
'SMHI': smhi,
'PARK': parkering,
}
func = switcher.get(solution.name, lambda: "nothing")
return func()
def send_mail(rubrik, text):
msg = Message(rubrik,
sender='you@dgoogle.com',
recipients=['dsjovall@gmail.com'])
msg.body = text
mail.send(msg)
def evaluate_function(function):
print(function)
function = function.split(" ")
weight = Plate.query.get(function[0]).weight
return eval(str(weight) + function[1] + function[2])
def update_plate(plate_id):
functions = Plate.query.get(plate_id).functions
for function in functions:
if evaluate_function(function.regex):
for solution in function.solutions:
evaluate_solution(solution)
if __name__ == "__main__":
app.run('0.0.0.0')