from flask import Flask, request
import subprocess
import shlex
from serial import Serial

rpi_ip_addr = "192.168.0.2"
arduino_addr = "/dev/ttyACM0"

ser = Serial(arduino_addr, baudrate=9600)

p = subprocess.Popen(shlex.split('./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"'))

app = Flask(__name__)

@app.route('/')
def treat_ready():
    return '<html><head><title>Treat Dispenser</title></head>'+ \
    '<body><form action="/dispense" method="post"><input type="submit" name="submit" value="Get some treats">'+ \
    '</form></body></html>'
    
@app.route('/dispense', methods=['POST','GET'])
def dispense_treat():
    if request.method == 'POST':
        if request.form['submit'] == "Get some treats":
            ser.write('D\n')
            return '<html><head><title>Dispensing</title></head><body><h1>Dispensing treats!'+\
                '</h1><a href="/">Head Back</a></body></html>'
        
if __name__=="__main__":
    try:
        app.run(host='0.0.0.0')
    except KeyboardInterrupt:
        p.terminate()
        ser.close()