Files
python_tools/mysql/prot_cmd.py
2024-03-20 10:28:45 +08:00

83 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import json
import mysql as sql
import prot_codec as pr
SQL=sql.sql()
SQL.init("test_data")
_DATA=None
# 获取文件夹目录,参数:无
def get_dirs_list():
r=SQL.show_tables()
j=[]
for item in r:
j.append(item[0])
js=json.dumps(j)
return js
# 获取文件列表参数json{文件的目录}
def get_files_list(j:bytearray):
SQL.table_name=json.loads(j)["dir"]
r=SQL.show()
js=json.dumps(r)
print(js)
return js
# 获取文件参数json{文件目录,文件序号}
def get_file_data(j:bytearray):
js=json.loads(j)
name,data=SQL.download_data(js["dir"],js["id"])
print(name,len(data))
global _DATA
_DATA=data
js=json.dumps({'name':name,"size":len(data)})
return js
# 获取指定长度的数据,参数json{偏移,长度}
def get_data(j:bytearray):
js=json.loads(j)
off=js["off"]
length=js["len"]
if(off<len(_DATA)):
data=_DATA[off:]
if(length<len(data)):
return data[:length]
else:
return data
return bytearray()
_cmd_list={
"get_dirs":get_dirs_list,
"get_files":get_files_list,
"get_file":get_file_data,
"get_data":get_data,
}
if __name__ == '__main__':
# dirs_str=get_dirs()
# data=pr.encode(b"dirs",dirs_str.encode("utf-8"))
# print(data.hex(' '))
# print(pr.decode(data))
# files=_cmd_list["get_files"](b"checker_host_app")
# print(json.loads(files))
# print(list(_cmd_list.keys()))
data=_cmd_list["get_file"](json.dumps({"dir":"checker_host_app","id":42}))
print(data)
ret=bytearray()
off=0
while off<len(_DATA):
ret+=_cmd_list["get_data"](json.dumps({"off":off,"len":200}))
off+=200
if(ret==_DATA):
print("check success")
else:
print("check failed")