#!/usr/bin/env python
import os
import stat
import threading
import time
from sys import exit
try:
from flask import Flask, render_template
except ImportError:
exit("This script requires the flask module\nInstall with: sudo pip install flask")
import unicornhathd
PORT = 8000
unicornhathd.rotation(0)
width,height=unicornhathd.get_shape()
control_panel = """
"""
for y in range(height):
control_panel += ''
for x in range(width):
control_panel += ' | '
control_panel += '
'
control_panel += '
'
control_panel += """
"""
app = Flask(__name__)
@app.route('/')
def home():
return render_template('painthathd.html')
@app.route('/save/')
def save(filename):
try:
os.mkdir('saves/')
except OSError:
pass
try:
data = unicornhathd.get_pixels()
data = repr(data)
data = data.replace('array', 'list')
print(filename, data)
file = open('saves/' + filename + '.py', 'w')
file.write("""#!/usr/bin/env python
import unicornhathd
import signal
unicornhathd.rotation(0)
pixels = {}
for x in range(unicornhathd.WIDTH):
for y in range(unicornhathd.HEIGHT):
r, g, b = pixels[x][y]
unicornhathd.set_pixel(x, y, r, g, b)
unicornhathd.show()
print("\\nShowing: {}\\nPress Ctrl+C to exit!")
signal.pause()
""".format(data, filename))
file.close()
os.chmod('saves/' + filename + '.py', 0o777 | stat.S_IEXEC)
return("ok" + str(unicornhathd.get_pixels()))
except AttributeError:
print("Unable to save, please update")
print("unicornhathdhathd library!")
return("fail")
@app.route('/clear')
def clear():
s = threading.Thread(None,unicornhathd.clear)
s.start()
return "ok"
@app.route('/show')
def show():
s = threading.Thread(None,unicornhathd.show)
s.start()
return "ok"
@app.route('/pixel/////')
def set_pixel(x, y, r, g, b):
x, y, r, g, b = int(x), int(y), int(r), int(g), int(b)
unicornhathd.set_pixel(unicornhathd.WIDTH - 1 - x, y, r, g, b)
return "ok"
if __name__ == "__main__":
unicornhathd.brightness(0.5)
app.run(host='0.0.0.0', port=PORT, debug=True)