From 15fb7307fc363c2e7d8f478183dc3c0af63ad58f Mon Sep 17 00:00:00 2001 From: Norbert Richter Date: Fri, 14 Sep 2018 16:39:06 +0200 Subject: [PATCH] Add login parms for tools/decode-status.py --- tools/decode-status.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/decode-status.py b/tools/decode-status.py index 154b6e719..74b10a57c 100644 --- a/tools/decode-status.py +++ b/tools/decode-status.py @@ -28,12 +28,13 @@ Instructions: and store it in file status.json Usage: - ./decode-status.py -d + ./decode-status.py -d [-u username] [-p password] or ./decode-status.py -f Example: ./decode-status.py -d sonoff1 + ./decode-status.py -d sonoff1 -p 12345678 or ./decode-status.py -f status.json """ @@ -42,6 +43,7 @@ import io import os.path import json import pycurl +import urllib2 from sys import exit from optparse import OptionParser from StringIO import StringIO @@ -136,13 +138,20 @@ usage = "usage: decode-status {-d | -f} arg" parser = OptionParser(usage) parser.add_option("-d", "--dev", action="store", type="string", dest="device", help="device to retrieve status from") +parser.add_option("-u", "--username", action="store", type="string", + dest="username", help="username for login", default="admin") +parser.add_option("-p", "--password", action="store", type="string", + dest="password", help="password for login", default=None) parser.add_option("-f", "--file", metavar="FILE", dest="jsonfile", default="status.json", help="status json file (default: status.json)") (options, args) = parser.parse_args() if (options.device): buffer = StringIO() - url = str("http://{}/cm?cmnd=status%200".format(options.device)) + loginstr = "" + if options.password is not None: + loginstr = "user={}&password={}&".format(urllib2.quote(options.username), urllib2.quote(options.password)) + url = str("http://{}/cm?{}cmnd=status%200".format(options.device, loginstr)) c = pycurl.Curl() c.setopt(c.URL, url) c.setopt(c.WRITEDATA, buffer) @@ -217,4 +226,4 @@ if __name__ == "__main__": try: StartDecode() except Exception as e: - print("E: {}".format(e)) \ No newline at end of file + print("E: {}".format(e))