import base64 import uuid import json import http.client import webbrowser def start_http_server(): """start debug""" webbrowser.open("ksowpscloudsvr://start=RelayHttpServer") def get_version(): """check http status by get version""" try: conn = http.client.HTTPConnection("127.0.0.1", 58890) conn.request("POST", "/version", body="{}", headers={}) response = conn.getresponse() response.read() conn.close() return response.status == 200 except: return False def invoke_wps_func(func, args): # 可能触发是否允许访问 invoke_param = { "method": func, "args": json.dumps(args), "AppType": "wps", } req_uui = str(uuid.uuid4()) info = f"{json.dumps(invoke_param)});\ var xhr = new XMLHttpRequest();\ xhr.open('POST', 'http://127.0.0.1:58890/transferEcho/runParams');\ xhr.send(JSON.stringify({{id: '{req_uui}', response: res}}));void(0" data = { "name": "xbotwps", "function": "var res = InvokeFromXbot", "info": info, "showToFront": True, "jsPluginsXml": "", } payload = { "id": req_uui, "app": "wps", "data": "ksowebstartupwps://" + base64.b64encode(json.dumps(data).encode()).decode(), "mode": False, } conn = http.client.HTTPConnection("127.0.0.1", 58890) payload = json.dumps(payload) conn.request("POST", "/transfer/runParams", payload) http_response = conn.getresponse() data = http_response.read() conn.close() try: return json.loads(data.decode("utf-8")) except Exception as e: print(data.decode("utf-8")) return {"message": "failed to parse response"} if __name__ == "__main__": start_http_server() # print(get_version()) path = r"C:\Users\32075\OneDrive\文档\Code\RPA_Script\wps-js-extension\XbotWps\py-wps\wps.js" with open(path, "r", encoding="utf8") as f: code = f.read() func = "getDocumentName" func = "inject" args = {"code": code} res = invoke_wps_func(func, args) print(res) func = "setText" args = {"text": "123"} res = invoke_wps_func(func, args) print(res) # func = "addPicture" # image_path = r"C:\Users\32075\Downloads\Snipaste_2024-11-05_12-33-28.png" # args = {"path": image_path} # res = invoke_wps_func(func, args) # print(res) # func = "replace" # args = {"text": "1", "replacement": "2", "code": code} # res = invoke_wps_func(func, args) # print(res) # func = "save" # args = {} # res = invoke_wps_func(func, args) # print(res) # func = "close" # args = {} # res = invoke_wps_func(func, args) # print(res) # func = "getText" # args = {} # res = invoke_wps_func(func, args) # print(res) # func = "insertHyperlink" # args = {"link": "https://www.baidu.com", "text": "百度"} # res = invoke_wps_func(func, args) # print(res)