116 lines
2.4 KiB
Python
116 lines
2.4 KiB
Python
|
#!/usr/bin/python3
|
||
|
# -*- coding: utf-8 -*-
|
||
|
# -*- mode: Python -*-
|
||
|
|
||
|
'''
|
||
|
toWS
|
||
|
exporter to LJ via WebSocket
|
||
|
v0.1b
|
||
|
|
||
|
'''
|
||
|
from __future__ import print_function
|
||
|
import websocket
|
||
|
import time
|
||
|
import argparse
|
||
|
import traceback
|
||
|
import sys
|
||
|
|
||
|
try:
|
||
|
import thread
|
||
|
except ImportError:
|
||
|
import _thread as thread
|
||
|
|
||
|
|
||
|
print("")
|
||
|
print("toWS v0.1b")
|
||
|
print ("Arguments parsing if needed...")
|
||
|
argsparser = argparse.ArgumentParser(description="toWS v0.1b help mode")
|
||
|
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
|
||
|
argsparser.add_argument("-s","--server",help="WS server IP (127.0.0.1 by default)", type=str)
|
||
|
argsparser.add_argument("-p","--port",help="WS port to bind to (9001 by default)", type=str)
|
||
|
argsparser.add_argument("-k","--key",help="Redis key to update",default="0",type=str)
|
||
|
args = argsparser.parse_args()
|
||
|
|
||
|
key = args.key
|
||
|
verbose=args.verbose
|
||
|
|
||
|
name = "exports::toWS"
|
||
|
|
||
|
|
||
|
|
||
|
# Server name
|
||
|
if args.server:
|
||
|
serverIP = args.server
|
||
|
else:
|
||
|
serverIP = "127.0.0.1"
|
||
|
|
||
|
# ORCA destination device
|
||
|
if args.port:
|
||
|
wsPORT = args.port
|
||
|
else:
|
||
|
wsPORT = 9001
|
||
|
|
||
|
def debug(*args, **kwargs):
|
||
|
if( verbose == False ):
|
||
|
return
|
||
|
print(*args, file=sys.stderr, **kwargs)
|
||
|
|
||
|
|
||
|
def GetTime():
|
||
|
return time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())
|
||
|
|
||
|
|
||
|
def on_message(ws, message):
|
||
|
debug(message)
|
||
|
|
||
|
def on_error(ws, error):
|
||
|
debug(error)
|
||
|
|
||
|
def on_close(ws):
|
||
|
debug("### closed ###")
|
||
|
|
||
|
def on_open(ws):
|
||
|
|
||
|
def run(*args):
|
||
|
|
||
|
try:
|
||
|
while True:
|
||
|
line = sys.stdin.readline()
|
||
|
if line == "":
|
||
|
time.sleep(0.01)
|
||
|
line = line.rstrip('\n')
|
||
|
line=line[1:-1]
|
||
|
line = line.replace("[",'(')
|
||
|
line = line.replace("]",')')
|
||
|
#debug(line)
|
||
|
line = "[{}]".format(line)
|
||
|
ws.send(str(key)+' "'+line+'"')
|
||
|
debug("exports::ws "+str(key)+" "+line)
|
||
|
|
||
|
|
||
|
except EOFError:
|
||
|
debug("break")# no more information
|
||
|
|
||
|
finally:
|
||
|
ws.close()
|
||
|
print("sendWS terminating...")
|
||
|
|
||
|
|
||
|
thread.start_new_thread(run, ())
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
websocket.enableTrace(True)
|
||
|
ws = websocket.WebSocketApp("ws://"+str(serverIP)+":"+str(wsPORT),
|
||
|
on_message = on_message,
|
||
|
on_error = on_error,
|
||
|
on_close = on_close)
|
||
|
ws.on_open = on_open
|
||
|
ws.run_forever()
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|