Browse Source

added method to get the status of the clicker

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

2
.gitignore

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

7
client.py

@ -5,7 +5,7 @@ import requests
if __name__ == "__main__":
parser = argparse.ArgumentParser()
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 = '*')
args = parser.parse_args()
params = {'action':args.action}
@ -14,7 +14,10 @@ if __name__ == "__main__":
key,val = addition.split('=')
params[key] = val
url = urlunsplit(('http',args.host,'',urlencode(params),''))
r = requests.post(url)
if args.action == 'get':
r = requests.get(url)
else:
r = requests.post(url)
if r.status_code == 204:
print('server killed')
else:

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 threading import Thread
from urllib.parse import urlparse,parse_qs
import argparse
import json
import os
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):
params = parse_qs(urlparse(self.path).query)
action = params['action'][0]
print(action)
ret = {}
self.server.manager.update()
if action == 'on':
self.server.manager.turn_on()
ret['status'] = 'on'

Loading…
Cancel
Save