Minor cleanup.

This commit is contained in:
Moridius 2020-02-14 22:43:48 +01:00
parent 9215b20a13
commit 21e650a483
1 changed files with 31 additions and 35 deletions

66
src/SpaceApiCli.py Normal file → Executable file
View File

@ -2,66 +2,65 @@
# #
# Reiko Kaps 2015-2020 <r31k@k4p5.de> # Reiko Kaps 2015-2020 <r31k@k4p5.de>
import json import argparse
import sys, os, argparse
import shutil
import subprocess import subprocess
import sys
try: try:
import requests import requests
from requests.exceptions import ConnectionError from requests.exceptions import ConnectionError
except ImportError as e: except ImportError:
print('please install requests python module') print('please install requests python module')
sys.exit(1) sys.exit(1)
DIR_URL='https://directory.spaceapi.io/' DIR_URL = 'https://directory.spaceapi.io/'
def download(url): def download(url):
""" """
Download json endpoint Download json endpoint
Parameter url: URL Parameter url: URL
returns string (json) returns string (json)
""" """
try: try:
file = requests.get(url) file = requests.get(url)
except ConnectionError as e: except ConnectionError as e:
raise e raise e
return file.json() return file.json()
def list_spaces(): def list_spaces():
""" """
list all directory entries list all directory entries
""" """
try: try:
directory = download(DIR_URL) directory = download(DIR_URL)
except ConnectionError: except ConnectionError:
raise raise
# print all entries # print all entries
for name in directory: for name in directory:
print('{}'.format(name)) print('{}'.format(name))
def status(json, verbose):
"""Ermittelt aus dem Json den Status des Hackerspace""" def status(json_data, verbose):
"""Ermittelt aus dem JSON den Status des Hackerspace"""
if verbose is True: if verbose is True:
pass pass
if json['state']['open'] is False: if json_data['state']['open'] is False:
print('{} is closed'.format(str(json['space']))) print('{} is closed'.format(str(json_data['space'])))
return False return False
print('{} is open'.format(str(json['space']))) print('{} is open'.format(str(json_data['space'])))
return True return True
def getHomepage(json, verbose): def getHomepage(json_data, verbose):
"""Ermittelt aus dem Json die Homepage des Hackerspace""" """Ermittelt aus dem Json die Homepage des Hackerspace"""
if json['url']: if json_data['url']:
print('opening {}'.format(json['url'])) print('opening {}'.format(json_data['url']))
subprocess.run(['firefox', json['url']]) subprocess.run(['firefox', json_data['url']])
else: else:
return False return False
@ -71,7 +70,7 @@ def getspaceurl(name, debug=False):
directory = download(DIR_URL) directory = download(DIR_URL)
except ConnectionError: except ConnectionError:
raise raise
if name in directory: if name in directory:
return directory[name] return directory[name]
else: else:
if debug: if debug:
@ -83,6 +82,7 @@ def getspaceurl(name, debug=False):
return directory[key] return directory[key]
sys.exit(1) sys.exit(1)
def main(args): def main(args):
if args.verbose: if args.verbose:
debug = args.v debug = args.v
@ -94,18 +94,17 @@ def main(args):
list_spaces() list_spaces()
sys.exit(0) sys.exit(0)
try: try:
json = download(getspaceurl(args.name, debug)) data = download(getspaceurl(args.name, debug))
except ConnectionError as e: except ConnectionError:
print('not connected') print('not connected')
sys.exit(1) sys.exit(1)
if args.web: if args.web:
getHomepage(json, debug) getHomepage(data, debug)
sys.exit(0) sys.exit(0)
if status(json, verbose=False): if status(data, verbose=False):
sys.exit(0) sys.exit(0)
@ -116,8 +115,5 @@ if __name__ == "__main__":
parser.add_argument('-v', '--verbose', action='store_true', help='Show more Infos of Hackspace') parser.add_argument('-v', '--verbose', action='store_true', help='Show more Infos of Hackspace')
parser.add_argument('-w', '--web', action='store_true', help='get homepage url') parser.add_argument('-w', '--web', action='store_true', help='get homepage url')
args = parser.parse_args() args = parser.parse_args()
main(args) main(args)