import flask import requests import threading app = flask.Flask(import_name=__name__) lock = threading.Lock() def opener(lck): with lck: for _ in range(5): requests.get("http://192.168.0.103/open") @app.route(rule="/") def index(): return "200 OK (working)\n" @app.route(rule="/receiving", methods=["POST"]) def receiver(): data = flask.request.get_data(as_text=True) parts = data.split("&") data_dict = {} for part in parts: parameter_name, parameter_value = part.split("=") data_dict[parameter_name] = parameter_value print(data_dict) response_events = {"events":[]} #---action=incoming--- if data_dict["action"]=="incoming": if "please" in data_dict["message"].lower(): op = threading.Thread(target=opener, args=(lock,)) op.start() response_events["events"].append({"event":"log","message":"Server received "+data_dict["message_type"]+" from "+data_dict["from"]}) return flask.jsonify(response_events) #---action=outgoing--- if data_dict["action"]=="outgoing": response_events["events"].append({"event":"log","message":"Server received outgoing action"}) return flask.jsonify(response_events) #---action=send_status--- if data_dict["action"]=="send_status": response_events["events"].append({"event":"log","message":"Server received send_status action"}) return flask.jsonify(response_events) #---action=forward_sent--- if data_dict["action"]=="forward_sent": response_events["events"].append({"event":"log","message":"Server received forward_sent action"}) return flask.jsonify(response_events) #---action=amqp_started--- if data_dict["action"]=="amqp_started": response_events["events"].append({"event":"log","message":"Server received amqp_started action"}) return flask.jsonify(response_events) #---action=device_status--- if data_dict["action"]=="device_status": response_events["events"].append({"event":"log","message":"Server received notification of "+data_dict["status"]}) return flask.jsonify(response_events) if __name__=="__main__": app.run(host="0.0.0.0", debug=True)