[modules/spaceapi] Improve documentation / help text
This commit is contained in:
parent
ab309f873b
commit
521b382131
1 changed files with 28 additions and 16 deletions
|
@ -3,7 +3,9 @@
|
||||||
|
|
||||||
# pylint: disable=C0111,R0903
|
# pylint: disable=C0111,R0903
|
||||||
|
|
||||||
"""Displays the state of a spaceapi endpoint
|
"""Displays the state of a Space API endpoint
|
||||||
|
Space API is an API for hackspaces based on JSON. See spaceapi.io for
|
||||||
|
an example.
|
||||||
|
|
||||||
Requires the following libraries:
|
Requires the following libraries:
|
||||||
* requests
|
* requests
|
||||||
|
@ -11,7 +13,17 @@ Requires the following libraries:
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
* spaceapi.url: String representation of the api endpoint
|
* spaceapi.url: String representation of the api endpoint
|
||||||
* spaceapi.format: Format string for the output (refer to code)
|
* spaceapi.format: Format string for the output
|
||||||
|
|
||||||
|
Format Strings:
|
||||||
|
* Format strings are indicated by double %%
|
||||||
|
* They represent a leaf in the JSON tree, layers seperated by "."
|
||||||
|
* Boolean values can be overwritten by appending "%true%false"
|
||||||
|
in the format string
|
||||||
|
* Example: to reference "open" in "{"state":{"open": true}}"
|
||||||
|
you would write "%%state.open%%", if you also want
|
||||||
|
to say "Open/Closed" depending on the boolean you
|
||||||
|
would write "%%state.open%Open%Closed%%"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import bumblebee.input
|
import bumblebee.input
|
||||||
|
@ -26,32 +38,30 @@ import json
|
||||||
|
|
||||||
def formatStringBuilder(s, json):
|
def formatStringBuilder(s, json):
|
||||||
"""
|
"""
|
||||||
This function seems to be in dire need of some explanation so here it is:
|
Parses Format Strings
|
||||||
It basically searches the format string for strings of the pattern
|
Parameter:
|
||||||
%%ITEM.IN.TREE[%IFTRUE%IFFALSE]%%. For example to query the state of
|
s -> format string
|
||||||
the hackspace you'd write %%state.open%% as it's located in json[state][open]
|
json -> the spaceapi response object
|
||||||
according to the API specificaion. As the output of true or false doesn't
|
|
||||||
look to great you can specify the text you want to have shown so you'd
|
|
||||||
write %%state.open%Open%Closed%% to overwrite true/false with Open/Closed.
|
|
||||||
"""
|
"""
|
||||||
identifiers = re.findall("%%.*?%%", s)
|
identifiers = re.findall("%%.*?%%", s)
|
||||||
for i in identifiers:
|
for i in identifiers:
|
||||||
ic = i[2:-2] # Discard %%
|
ic = i[2:-2] # Discard %%
|
||||||
j = ic.split("%")
|
j = ic.split("%")
|
||||||
|
|
||||||
|
# Only neither of, or both true AND false may be overwritten
|
||||||
if len(j) != 3 and len(j) != 1:
|
if len(j) != 3 and len(j) != 1:
|
||||||
return "INVALID SYNTAX"
|
return "INVALID FORMAT STRING"
|
||||||
|
|
||||||
arr = j[0].split(".")
|
arr = j[0].split(".")
|
||||||
repl = json
|
repl = json
|
||||||
for a in arr: # Walk the JSON tree to find replacement
|
for a in arr: # Walk the JSON tree to find replacement string
|
||||||
repl = repl[a]
|
repl = repl[a]
|
||||||
|
|
||||||
if len(j) == 1:
|
if len(j) == 1: # no overwrite
|
||||||
s = s.replace(i, repl)
|
s = s.replace(i, repl)
|
||||||
elif repl:
|
elif repl: # overwrite for Trfor True
|
||||||
s = s.replace(i, j[1])
|
s = s.replace(i, j[1])
|
||||||
else:
|
else: # overwrite for False
|
||||||
s = s.replace(i, j[2])
|
s = s.replace(i, j[2])
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
@ -62,8 +72,9 @@ class Module(bumblebee.engine.Module):
|
||||||
engine, config, bumblebee.output.Widget(full_text=self.getState)
|
engine, config, bumblebee.output.Widget(full_text=self.getState)
|
||||||
)
|
)
|
||||||
|
|
||||||
engine.input.register_callback(self, button=bumblebee.input.LEFT_MOUSE,
|
engine.input.register_callback(
|
||||||
cmd=self.__forceReload)
|
self, button=bumblebee.input.LEFT_MOUSE, cmd=self.__forceReload
|
||||||
|
)
|
||||||
|
|
||||||
self._data = {}
|
self._data = {}
|
||||||
self._error = None
|
self._error = None
|
||||||
|
@ -125,5 +136,6 @@ class Module(bumblebee.engine.Module):
|
||||||
self._threadingCount += 300
|
self._threadingCount += 300
|
||||||
self._error = "RELOADING"
|
self._error = "RELOADING"
|
||||||
|
|
||||||
|
|
||||||
# Author: Tobias Manske <tobias@chaoswg.xyz>
|
# Author: Tobias Manske <tobias@chaoswg.xyz>
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||||
|
|
Loading…
Reference in a new issue