Update web.py
This commit is contained in:
parent
e57feda131
commit
09bc09cca3
src
52
src/web.py
52
src/web.py
|
@ -1,22 +1,62 @@
|
|||
from microdot import Microdot, send_file, Response
|
||||
from microdot.utemplate import Template
|
||||
from microdot.websocket import with_websocket
|
||||
|
||||
import json
|
||||
import machine
|
||||
from settings import set_settings
|
||||
import wifi
|
||||
import json
|
||||
import aioespnow
|
||||
|
||||
def web(settings):
|
||||
def web(settings, patterns):
|
||||
app = Microdot()
|
||||
Response.default_content_type = 'text/html'
|
||||
e = aioespnow.AIOESPNow() # Returns AIOESPNow enhanced with async support
|
||||
e.active(True)
|
||||
peer = bytes.fromhex("e4b323c5411d")
|
||||
peer = b'\xbb\xbb\xbb\xbb\xbb\xbb'
|
||||
e.add_peer(peer)
|
||||
print(peer)
|
||||
|
||||
@app.route('/')
|
||||
async def index(request):
|
||||
return Template('/index.html').render(settings=settings, patterns=patterns.patterns.keys())
|
||||
async def index_hnadler(request):
|
||||
mac = wifi.get_mac().hex()
|
||||
return Template('/index.html').render(settings=settings, patterns=patterns.patterns.keys(), mac=mac)
|
||||
|
||||
@app.route("/static/<path:path>")
|
||||
def static(request, path):
|
||||
def static_handler(request, path):
|
||||
if '..' in path:
|
||||
# Directory traversal is not allowed
|
||||
return 'Not found', 404
|
||||
return send_file('static/' + path)
|
||||
|
||||
@app.post("/settings")
|
||||
def settings_handler(request):
|
||||
# Keep the POST handler for compatibility or alternative usage if needed
|
||||
# For WebSocket updates, the /ws handler is now primary
|
||||
return set_settings(request.body.decode('utf-8'), settings, patterns)
|
||||
|
||||
@app.route("/ws")
|
||||
@with_websocket
|
||||
async def ws(request, ws):
|
||||
while True:
|
||||
data = await ws.receive()
|
||||
if data:
|
||||
# Process the received data
|
||||
await send(data)
|
||||
_, status_code = set_settings(data, settings, patterns)
|
||||
#await ws.send(status_code)
|
||||
else:
|
||||
break
|
||||
|
||||
async def send(data):
|
||||
|
||||
msg = {"delay": 1000}
|
||||
try:
|
||||
if not await e.asend(peer, data):
|
||||
print("Heartbeat: peer not responding:", peer)
|
||||
else:
|
||||
print("Heartbeat: ping", peer)
|
||||
except:
|
||||
return
|
||||
|
||||
return app
|
||||
|
|
Loading…
Reference in New Issue