diff --git a/ennstatus/status/functions.py b/ennstatus/status/functions.py --- a/ennstatus/status/functions.py +++ b/ennstatus/status/functions.py @@ -5,15 +5,6 @@ import json from collections import defaultdict from datetime import datetime -def _load_single_server(name): - - filename = ''.join(['data/', name, '.json']) - try: - with open(filename, encoding='utf-8') as f: - return ''.join(f.readlines()) - except IOError: - return False - def _check_server(data): @@ -40,19 +31,22 @@ def _check_server(data): return data +def _load_single_server(filename): + + try: + with open(filename, encoding='utf-8') as f: + server = json.load(f) + except IOError: + return False + + server = _check_server(server) + return server + + def single_server(name): - server = _load_single_server(name) - - if server: - try: - server = json.loads(server) - server = _check_server(server) - return server - except ValueError: - return False - else: - return False + filename = ''.join(['data/', name, '.json']) + return _load_single_server(filename) def _get_json_files(root, files): @@ -66,14 +60,7 @@ def all_servers(): for root, _, files in os.walk('data'): for f in _get_json_files(root, files): - with open(f, encoding='utf-8') as fb: - try: - server = json.load(fb) - except ValueError: - fb.close() - continue - server = _check_server(server) - yield server + yield _load_single_server(f) def all_servers_by_type(type):