Compare commits
	
		
			No commits in common. "6bedd576bee495dd4da3f19dff91f464b0f59915" and "040bd085039f8fb73da2c3afbc130e270d21e5d0" have entirely different histories.
		
	
	
		
			6bedd576be
			...
			040bd08503
		
	
		
@ -1,71 +0,0 @@
 | 
			
		||||
#!/bin/env python3
 | 
			
		||||
import websocket
 | 
			
		||||
import json
 | 
			
		||||
import random
 | 
			
		||||
import zmq
 | 
			
		||||
from pprint import pprint
 | 
			
		||||
 | 
			
		||||
__version__ = "2.0.0b2"
 | 
			
		||||
 | 
			
		||||
ws = None
 | 
			
		||||
uri = "ws://localhost:5080"
 | 
			
		||||
ws = websocket.create_connection(uri)
 | 
			
		||||
 | 
			
		||||
context = zmq.Context()
 | 
			
		||||
socket = context.socket(zmq.REP)
 | 
			
		||||
socket.bind("tcp://*:5555")
 | 
			
		||||
 | 
			
		||||
def sendsmpmessage(target, message):
 | 
			
		||||
    global ws
 | 
			
		||||
    print("Sendmessage %s called to %s" % (message, target))
 | 
			
		||||
    msg = ("%s %s" % (target, message))
 | 
			
		||||
 | 
			
		||||
    # Create a unique correlation ID
 | 
			
		||||
    command = {
 | 
			
		||||
        "corrId": f"id{random.randint(0, 999999)}",
 | 
			
		||||
        "cmd": msg,
 | 
			
		||||
    }
 | 
			
		||||
    json_command = json.dumps(command)
 | 
			
		||||
 | 
			
		||||
    """ Connects to WebSocket server, sends a message, and returns the response """
 | 
			
		||||
    if ws is None:
 | 
			
		||||
        uri = "ws://localhost:5080"
 | 
			
		||||
        ws = websocket.create_connection(uri)  # Blocking WebSocket connection
 | 
			
		||||
 | 
			
		||||
    ws.send(json_command)  # Send message to WebSocket
 | 
			
		||||
    responsejson = ws.recv()  # Receive response
 | 
			
		||||
    response = json.loads(responsejson)
 | 
			
		||||
    # ws.close()
 | 
			
		||||
 | 
			
		||||
    for chatitem in response['resp']['chatItems']:
 | 
			
		||||
        statusdict = chatitem['chatItem']['meta']['itemStatus']
 | 
			
		||||
        try:
 | 
			
		||||
            status = statusdict['sndProgress']
 | 
			
		||||
        except KeyError:
 | 
			
		||||
            print("FAILED")
 | 
			
		||||
            status = 'FAILED'
 | 
			
		||||
        else:
 | 
			
		||||
            smessage = chatitem['chatItem']['meta']['itemText']
 | 
			
		||||
            print("Message '%s' sent over websocket to %s, status was %s" % (smessage, target, status))
 | 
			
		||||
 | 
			
		||||
        if status == 'complete':
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    while True:
 | 
			
		||||
        zmq = socket.recv_string()
 | 
			
		||||
        print(f"Received request: {zmqmessage}")
 | 
			
		||||
        result = True
 | 
			
		||||
 | 
			
		||||
        decoded = json.loads(zmqmessage)
 | 
			
		||||
        pprint(decoded)
 | 
			
		||||
 | 
			
		||||
        result = sendmessage(decoded.get('target'), decoded.get('message'))
 | 
			
		||||
 | 
			
		||||
        if result is True:
 | 
			
		||||
            socket.send_string("sent")
 | 
			
		||||
        else:
 | 
			
		||||
            socket.send_string("failed")
 | 
			
		||||
@ -4,36 +4,60 @@ import websocket
 | 
			
		||||
import json
 | 
			
		||||
import yaml
 | 
			
		||||
import random
 | 
			
		||||
import threading
 | 
			
		||||
from pprint import pprint
 | 
			
		||||
 | 
			
		||||
__version__ = "2.0.0b2"
 | 
			
		||||
versionstring='Taurix TellMe server v' + __version__
 | 
			
		||||
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
lock = threading.Lock()
 | 
			
		||||
 | 
			
		||||
socket = context.socket(zmq.REQ)
 | 
			
		||||
socket.connect("tcp://localhost:5555")
 | 
			
		||||
ws = None
 | 
			
		||||
uri = "ws://localhost:5080"
 | 
			
		||||
ws = websocket.create_connection(uri)
 | 
			
		||||
 | 
			
		||||
hooks = {}
 | 
			
		||||
with open(r'/etc/tellme/hooks.yml') as hooksfile:
 | 
			
		||||
    hooks = yaml.load(hooksfile, Loader=yaml.FullLoader)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def sendmessage(target, message):
 | 
			
		||||
    global socket
 | 
			
		||||
    jsonmessage = {}
 | 
			
		||||
    jsonmessage['target'] = target
 | 
			
		||||
    jsonmessage['message'] = message
 | 
			
		||||
    socket.send_string(json.dumps(jsonmessage))
 | 
			
		||||
    global ws
 | 
			
		||||
    print("Sendmessage %s called to %s" % (message, target))
 | 
			
		||||
    msg = ("%s %s" % (target, message))
 | 
			
		||||
 | 
			
		||||
    # Wait for a reply
 | 
			
		||||
    reply = socket.recv_string()
 | 
			
		||||
    print(f"Received reply: {reply}")
 | 
			
		||||
    # Create a unique correlation ID
 | 
			
		||||
    command = {
 | 
			
		||||
        "corrId": f"id{random.randint(0, 999999)}",
 | 
			
		||||
        "cmd": msg,
 | 
			
		||||
    }
 | 
			
		||||
    json_command = json.dumps(command)
 | 
			
		||||
 | 
			
		||||
    if reply == 'sent':
 | 
			
		||||
        return True
 | 
			
		||||
    else:
 | 
			
		||||
        return False
 | 
			
		||||
    """ Connects to WebSocket server, sends a message, and returns the response """
 | 
			
		||||
    if ws is None:
 | 
			
		||||
        uri = "ws://localhost:5080"
 | 
			
		||||
        ws = websocket.create_connection(uri)  # Blocking WebSocket connection
 | 
			
		||||
 | 
			
		||||
    ws.send(json_command)  # Send message to WebSocket
 | 
			
		||||
    responsejson = ws.recv()  # Receive response
 | 
			
		||||
    response = json.loads(responsejson)
 | 
			
		||||
    # ws.close()
 | 
			
		||||
 | 
			
		||||
    for chatitem in response['resp']['chatItems']:
 | 
			
		||||
        statusdict = chatitem['chatItem']['meta']['itemStatus']
 | 
			
		||||
        try:
 | 
			
		||||
            status = statusdict['sndProgress']
 | 
			
		||||
        except KeyError:
 | 
			
		||||
            print("FAILED")
 | 
			
		||||
            status = 'FAILED'
 | 
			
		||||
        else:
 | 
			
		||||
            smessage = chatitem['chatItem']['meta']['itemText']
 | 
			
		||||
            print("Message '%s' sent over websocket to %s, status was %s" % (smessage, target, status))
 | 
			
		||||
 | 
			
		||||
        if status == 'complete':
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@app.route("/webhook/<id>", methods=['POST'])
 | 
			
		||||
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Tellme Notifier
 | 
			
		||||
After=network.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
User=tellme
 | 
			
		||||
WorkingDirectory=/opt/tellme
 | 
			
		||||
ExecStart=notifier.py
 | 
			
		||||
Restart=always
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user