Difference between revisions of "SpaceAPI"
From Fixme.ch
Line 15: | Line 15: | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
− | #!/usr/bin/env | + | #!/usr/bin/env python3 |
− | import urllib | + | import urllib.request |
try: | try: | ||
import json | import json | ||
except ImportError: | except ImportError: | ||
import simplejson as json | import simplejson as json | ||
− | |||
URL = "https://fixme.ch/cgi-bin/spaceapi.py" | URL = "https://fixme.ch/cgi-bin/spaceapi.py" | ||
− | + | ||
− | con = urllib.urlopen(URL) | + | def get_json(): |
− | + | try: | |
− | except IOError: | + | con = urllib.request.urlopen(URL) |
− | + | content = con.read() | |
− | + | hs_json = json.loads(content.decode('utf8')) | |
− | if hs_json['open']: | + | return hs_json |
− | + | except IOError: | |
− | + | print("A network error occured sorry") | |
− | + | exit(1) | |
− | + | except ValueError: | |
− | else: | + | print("Malformatted json") |
− | + | ||
+ | def print_info(hs_json): | ||
+ | if hs_json['open']: | ||
+ | print("OPENENENENEN") | ||
+ | print("status is : {status}".format(**hs_json)) | ||
+ | print("the changes happens at {lastchange}".format(**hs_json)) | ||
+ | print("The duration is {duration} hours".format(**hs_json)) | ||
+ | else: | ||
+ | print("The hackerspace is closed") | ||
+ | |||
+ | print_info(get_json()) | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 18:21, 2 May 2012
Description
- Accessible here: https://fixme.ch/cgi-bin/spaceapi.py
- Provide a simple API to know whether the hackerspace is open or closed
- Implements the Space API
Components
- Sources on Github
- Python script on fixme.ch that serves the API
- Perl script that put the status in a Mysql DB (from the RFID_Doorlock or from a computer)
- A Drupal module to show the status on the main website
Dummy script to lookup the status
#!/usr/bin/env python3 import urllib.request try: import json except ImportError: import simplejson as json URL = "https://fixme.ch/cgi-bin/spaceapi.py" def get_json(): try: con = urllib.request.urlopen(URL) content = con.read() hs_json = json.loads(content.decode('utf8')) return hs_json except IOError: print("A network error occured sorry") exit(1) except ValueError: print("Malformatted json") def print_info(hs_json): if hs_json['open']: print("OPENENENENEN") print("status is : {status}".format(**hs_json)) print("the changes happens at {lastchange}".format(**hs_json)) print("The duration is {duration} hours".format(**hs_json)) else: print("The hackerspace is closed") print_info(get_json())