Files
@ f9bac59625ab
Branch filter:
Location: FVDE/ennstatus/ennstatus/status/functions.py - annotation
f9bac59625ab
2.0 KiB
text/x-python
added MANIFEST.in
9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 02b9d2a9fa0d 5f5d699c039c 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 4c3f2f6f06e3 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 5f5d699c039c 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 5f5d699c039c 5f5d699c039c 5f5d699c039c 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 5f5d699c039c 9bfee64f690e 9bfee64f690e 9bfee64f690e 5f5d699c039c 5f5d699c039c 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 9bfee64f690e 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d 02b9d2a9fa0d | import os
import os.path
import json
from collections import defaultdict
from datetime import datetime
def _load_single_server(name):
filename = ''.join(['data/', name, '.json'])
try:
with open(filename) as f:
return ''.join(f.readlines())
except IOError:
return False
def _check_server(data):
date = datetime.strptime(data['last_updated'], '%d-%m-%Y %H:%M:%S')
now = datetime.utcnow()
delta = now - date
if delta.seconds >= 3600:
status = 'Offline'
elif delta.seconds >= 1200:
status = 'Unknown'
else:
status = None
if status is not None:
for key in ('server_status', 'tor_status'):
data[key] = status
filename = os.path.join('data', data['server_name'].lower()+'.json')
with open(filename, mode='w', encoding='utf-8') as file_object:
json.dump(data, file_object)
return data
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
def _get_json_files(root, files):
for f in files:
if f.endswith('.json'):
yield os.path.join(root, f)
def all_servers():
for root, _, files in os.walk('data'):
for f in _get_json_files(root, files):
with open(f) as fb:
try:
server = json.load(fb)
except ValueError:
fb.close()
continue
server = _check_server(server)
yield server
def all_servers_by_type(type):
for server in all_servers():
if server['server_type'] == type:
yield server
def split_all_servers_to_types():
servers = defaultdict(list)
for server in all_servers():
servers[server['server_type']].append(server)
return servers
|