Browse Source

added set action to manually set the stage of the clicker

master
Raphael Roberts 7 years ago
parent
commit
f4e817fce5
  1. 15
      client.py
  2. 23
      server.py

15
client.py

@ -1,12 +1,21 @@
#!/home/raphael/.pyenv/shims/python
from urllib.parse import urlencode,urlunsplit
import argparse import argparse
import requests import requests
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('host',default = "localhost:5138",nargs='?') parser.add_argument('host',default = "localhost:5138",nargs='?')
parser.add_argument('action',choices = ['on','off','toggle','kill'])
parser.add_argument('action',choices = ['on','off','toggle','kill','set'])
parser.add_argument('additional',nargs = '*')
args = parser.parse_args() args = parser.parse_args()
r = requests.post('http://{host}?action={action}'.format(**args.__dict__))
params = {'action':args.action}
for addition in args.additional:
key,val = addition.split('=')
params[key] = val
url = urlunsplit(('http',args.host,'',urlencode(params),''))
r = requests.post(url)
if r.status_code == 204: if r.status_code == 204:
print('server killed') print('server killed')
else: else:
print(r.text)
print(r.text)

23
server.py

@ -30,6 +30,27 @@ class handler(server.BaseHTTPRequestHandler):
print('server being killed') print('server being killed')
self.server.serve = False self.server.serve = False
return return
elif action == 'set':
try:
state = params['state'][0]
assert(state in ('on','off'))
self.server.manager.on = state == 'on'
resp='Toggle state set to {}'.format(state).encode()
self.send_response(201)
self.end_headers()
self.wfile.write(resp)
return
except AssertionError:
self.send_response(400)
self.end_headers()
resp = "State must either be `on` or `off`".encode()
self.wfile.write(resp)
return
except KeyError:
self.send_response(400)
self.end_headers()
resp = "No state specified".encode()
self.wfile.write(resp)
else: else:
self.send_response(400) self.send_response(400)
self.end_headers() self.end_headers()
@ -60,4 +81,4 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('-p','--port',type=int,default=5138) parser.add_argument('-p','--port',type=int,default=5138)
args = parser.parse_args() args = parser.parse_args()
start_server('localhost',args.port)
start_server('localhost',args.port)
Loading…
Cancel
Save