From acfa4a70e72aedbb3d1d686b8a848dd53a5f4bac Mon Sep 17 00:00:00 2001 From: Raphael Roberts Date: Mon, 17 Dec 2018 14:01:35 -0600 Subject: [PATCH] added method to get the status of the clicker --- .gitignore | 2 ++ client.py | 7 +++++-- server.py | 17 ++++++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 11614af..6c565f0 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,5 @@ dmypy.json # Pyre type checker .pyre/ +on +*.exe diff --git a/client.py b/client.py index b9b9a61..4771584 100644 --- a/client.py +++ b/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: diff --git a/server.py b/server.py index a907596..00935f1 100644 --- a/server.py +++ b/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'