Browse Source

added method to get the status of the clicker

master
Raphael Roberts 7 years ago
parent
commit
acfa4a70e7
  1. 2
      .gitignore
  2. 5
      client.py
  3. 17
      server.py

2
.gitignore

@ -113,3 +113,5 @@ dmypy.json
# Pyre type checker # Pyre type checker
.pyre/ .pyre/
on
*.exe

5
client.py

@ -5,7 +5,7 @@ import requests
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--host',default = "localhost:5140") parser.add_argument('--host',default = "localhost:5140")
parser.add_argument('action',choices = ['on','off','toggle','kill','set'])
parser.add_argument('action',choices = ['on','off','toggle','kill','set','get'])
parser.add_argument('additional',nargs = '*') parser.add_argument('additional',nargs = '*')
args = parser.parse_args() args = parser.parse_args()
params = {'action':args.action} params = {'action':args.action}
@ -14,6 +14,9 @@ if __name__ == "__main__":
key,val = addition.split('=') key,val = addition.split('=')
params[key] = val params[key] = val
url = urlunsplit(('http',args.host,'',urlencode(params),'')) url = urlunsplit(('http',args.host,'',urlencode(params),''))
if args.action == 'get':
r = requests.get(url)
else:
r = requests.post(url) r = requests.post(url)
if r.status_code == 204: if r.status_code == 204:
print('server killed') print('server killed')

17
server.py

@ -1,16 +1,31 @@
from clicker_control import clicker_manager
from clicker_control import clicker_manager,CLICKER_PATH
from http import server from http import server
from threading import Thread from threading import Thread
from urllib.parse import urlparse,parse_qs from urllib.parse import urlparse,parse_qs
import argparse import argparse
import json import json
import os
class handler(server.BaseHTTPRequestHandler): class handler(server.BaseHTTPRequestHandler):
def do_GET(self):
params = parse_qs(urlparse(self.path).query)
ret = {}
self.server.manager.update()
if params['q'][0] == 'status':
ret['status'] = 'on' if self.server.manager.on else 'off'
self.send_response(200)
self.end_headers()
resp = json.dumps(ret).encode()
self.wfile.write(resp)
return
def do_POST(self): def do_POST(self):
params = parse_qs(urlparse(self.path).query) params = parse_qs(urlparse(self.path).query)
action = params['action'][0] action = params['action'][0]
print(action) print(action)
ret = {} ret = {}
self.server.manager.update()
if action == 'on': if action == 'on':
self.server.manager.turn_on() self.server.manager.turn_on()
ret['status'] = 'on' ret['status'] = 'on'

Loading…
Cancel
Save