webserver.py: Fix parameter handling

This patch applies:
  - use `request.decode()` instead of `str()` cast
  - replace `string.find()` with pythonic `string in string`
  - replace `led.value()` with `led.{on/off}`
  - catch all unhandled arguments and display instructions
  - rename `statusis` to `text`
  - remove not used `e` in `except`
pull/67/head
Patryk Koscik 2023-05-12 22:24:47 +02:00
rodzic 35f9a54463
commit 6951ef525c
1 zmienionych plików z 15 dodań i 12 usunięć

Wyświetl plik

@ -50,31 +50,34 @@ while True:
try: try:
cl, addr = s.accept() cl, addr = s.accept()
print('client connected from', addr) print('client connected from', addr)
request = cl.recv(1024) request = cl.recv(1024).decode()
print(request) print(request)
request = str(request) led_on = '/light/on' in request
led_on = request.find('/light/on') led_off = '/light/off' in request
led_off = request.find('/light/off')
print( 'led on = ' + str(led_on)) print( 'led on = ' + str(led_on))
print( 'led off = ' + str(led_off)) print( 'led off = ' + str(led_off))
if led_on == 6: if led_on:
print("led on") print("led on")
led.value(1) led.on()
stateis = "LED is ON" text = "LED is ON"
if led_off == 6: elif led_off:
print("led off") print("led off")
led.value(0) led.off()
stateis = "LED is OFF" text = "LED is OFF"
response = html % stateis else:
print("no LED command")
text = "Access the /light/on and /light/off pages to control the LED!"
response = html % text
cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n') cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
cl.send(response) cl.send(response)
cl.close() cl.close()
except OSError as e: except OSError:
cl.close() cl.close()
print('connection closed') print('connection closed')