#!/usr/bin/env python3 import json import ssl import sys import time import websocket def print_and_flush(s): print(s) sys.stdout.flush() def format_query(query): if 'className' in query: return 'class ' + query['className'] elif 'typeName' in query: return 'type ' + query['typeName'] elif 'unify' in query: if 'name' in query and query['name'] != '': return query['name'] + ' :: ' + query['unify'] else: return ':: ' + query['unify'] else: return query['name'] def on_message(ws, msg): try: print_and_flush(format_query(json.loads(msg))) except: pass def on_open(ws): print_and_flush('Opened connection.') def on_error(ws, err): print_and_flush(err) def on_close(ws): print_and_flush('Lost connection.') time.sleep(3) start() def start(): ws = websocket.WebSocketApp('wss://cloogle.org:31216', subprotocols=['cloogle-stats'], on_message=on_message, on_open=on_open, on_error=on_error, on_close=on_close) ws.run_forever(sslopt={'cert_reqs': ssl.CERT_NONE}) if __name__ == '__main__': start()