import json import os import subprocess import requests mp4_path = '/home/pi/mp4' def push_stream(client): p = subprocess.Popen(['/bin/bash start_push.sh'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() output = out.decode('utf-8') client.publish('success', payload=json.dumps(output, ensure_ascii=False), qos=0) def close_stream(client): p = subprocess.Popen(['/bin/bash stop_push.sh'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() output = out.decode('utf-8') client.publish('success', payload=json.dumps(output, ensure_ascii=False), qos=0) def exec_sh(msg, client): cmd = json.loads(msg.payload.decode('utf-8'))["data"] if cmd == "supervisorctl stop __mqtt__" or cmd == "supervisorctl restart __mqtt__": return if cmd == "supervisorctl reload": subprocess.Popen([cmd], shell=True) return p = subprocess.Popen([cmd], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() output = out.decode('utf-8') client.publish('success', payload=json.dumps(output, ensure_ascii=False), qos=0) def get_status(client): p = subprocess.Popen(['supervisorctl status'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() output = out.decode('utf-8') client.publish('success', payload=json.dumps(output, ensure_ascii=False), qos=0) def update(client): p = subprocess.Popen(['/bin/bash update.sh'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() output = out.decode('utf-8') client.publish('success', payload=json.dumps(output, ensure_ascii=False), qos=0) def get_list_record(): data = { "data": os.listdir(mp4_path) } requests.post("http://shop.lihaink.cn/api/index/file_list", json=data) def get_record(msg, client): filename = json.loads(msg.payload.decode('utf-8'))["data"] if filename is None or filename == '': client.publish('error', payload='没有该文件', qos=1) return files = {filename: open(os.path.join(mp4_path, filename), 'rb'), "Content-Type": "application/octet-stream"} requests.post("https://shop.lihaink.cn/api/index/upload", files=files) def sensor_data_upload(client): p = subprocess.Popen(['/bin/bash update.sh'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)