# HG changeset patch # User Dennis Fink # Date 2013-11-20 01:10:02 # Node ID 707908d9cfa77954cb8a29055754f3e034701957 # Parent 611cfc0f2f41594991b9742a2db287fb81775bef added check_servers.py diff --git a/Scripts/check_servers.py b/Scripts/check_servers.py new file mode 100644 --- /dev/null +++ b/Scripts/check_servers.py @@ -0,0 +1,53 @@ + +import os +import os.path +import json + +from datetime import datetime + +DATE_FORMAT = '%d-%m-%Y %H:%M:%S' + +DATADIR = './data' + + +def get_json_files(): + + for root, _, files in os.walk(DATADIR): + for f in files: + if f.endswith('.json'): + yield os.path.join(root, f) + + +def check_all_servers(): + + for f in get_json_files(): + try: + with open(f, encoding='utf-8') as file_object: + data = json.load(file_object) + + with open(f, mode='w', encoding='utf-8') as file_object: + + date = datetime.strptime(data['last_updated'], + DATE_FORMAT) + now = datetime.utcnow() + + delta = now - date + + if delta.seconds >= 3600: + status = 'Offline' + elif delta.second >= 1200: + status = 'Unkown' + else: + status = None + + if status: + for key in ('server_status', 'tor_status'): + data[key] = status + + json.dump(data, file_object) + except: + continue + + +if __name__ == '__main__': + check_all_servers()