Skip to content

Commit fddd27f

Browse files
authored
Support for HTTPS (#14)
* Added support for HTTPS with optional certificate validation. * Now FullyKiosk defaults to HTTP instead of HTTPS.
1 parent 12dad9e commit fddd27f

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

fullykiosk/__init__.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212

1313

1414
class FullyKiosk:
15-
def __init__(self, session, host, port, password):
16-
self._rh = _RequestsHandler(session, host, port)
15+
def __init__(self, session, host, port, password, use_ssl=False, verify_ssl=False):
16+
if not use_ssl:
17+
verify_ssl = False
18+
self._rh = _RequestsHandler(session, host, port, use_ssl=use_ssl,
19+
verify_ssl=verify_ssl)
1720
self._password = password
1821
self._deviceInfo = None
1922
self._settings = None
@@ -119,26 +122,30 @@ async def rebootDevice(self):
119122
class _RequestsHandler:
120123
"""Internal class to create FullyKiosk requests"""
121124

122-
def __init__(self, session: aiohttp.ClientSession, host, port):
125+
def __init__(self, session: aiohttp.ClientSession, host, port, use_ssl=False,
126+
verify_ssl=False):
123127
self.headers = {"Accept": "application/json"}
124128

125129
self.session = session
126130
self.host = host
127131
self.port = port
132+
self.use_ssl = use_ssl
133+
self.verify_ssl = verify_ssl
128134

129135
async def get(self, **kwargs):
130-
url = f"http://{self.host}:{self.port}"
136+
url = f"http{'s' if self.use_ssl else ''}://{self.host}:{self.port}"
131137
params = []
132138

133139
for key, value in kwargs.items():
134140
if value is not None:
135141
params.append((key, str(value)))
142+
req_params = {"url": url, "headers": self.headers, "params": params}
143+
if not self.verify_ssl:
144+
req_params["ssl"] = False
136145

137146
_LOGGER.debug("Sending request to: %s", url)
138147
_LOGGER.debug("Parameters: %s", params)
139-
async with self.session.get(
140-
url, headers=self.headers, params=params
141-
) as response:
148+
async with self.session.get(**req_params) as response:
142149
if response.status != 200:
143150
_LOGGER.warning(
144151
"Invalid response from Fully Kiosk Browser API: %s", response.status

0 commit comments

Comments
 (0)