Files

123 lines
3.0 KiB
Python

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)