Voodoo Robotics CEO, Trevor Blumenau, walks you through some server code written in Python to capture 'ack's, 'nack's, and 'call's.
Here is the demo code:
From callbackServer.py:
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qs,parse_qsl
from cgi import parse_header, parse_multipart
import json
hostName = ""
serverPort = 3000
class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
parsed = dict(parse_qsl(self.path.partition('?')[2],keep_blank_values=1))
print(json.dumps(parsed, indent=4))
print("\n")
def do_POST(self):
self.send_response(200)
self.end_headers()
ctype, pdict = parse_header(self.headers.get('content-type'))
if ctype == 'application/json':
length = int(self.headers.get('content-length'))
parsed = dict(json.loads(self.rfile.read(length)))
elif ctype == 'multipart/form-data':
postvars = parse_multipart(self.rfile, pdict)
elif ctype == 'application/x-www-form-urlencoded':
length = int(self.headers.get('content-length'))
postvars = parse_qs(self.rfile.read(length), keep_blank_values=1)
else:
parsed = {}
print("Got a POST request with:")
print(json.dumps(parsed, indent=4))
print("\n")
if _name_ == "__main__":
webServer = HTTPServer((hostName, serverPort), MyServer)
print(f"Server started http://{hostName}:{serverPort}")
try:
webServer.serve_forever()
except KeyboardInterrupt:
pass
webServer.server_close()
From sendCommand.py:
import requests,json
session = requests.Session()
url = "https://www.voodoodevices.com/api/"
x = session.post(url+"user/login/",json={'username': 'yourusername','password':'yourpassword'})
z = json.loads(x.text)
session.post(
url+"device/FFFFFF:AAAAAA/",
headers = {'referer': url,'x-csrf-token': z['token'],},
json={
'command':'flash',
'line1':'Pick',
'line2':'\\qt3',
'seconds':5,
'sound':'15,c5,4',
'nonce':'abcde',
},
)
Информация по комментариям в разработке