Files
python_tools/mysql/prot_cmd.py

83 lines
1.7 KiB
Python
Raw Normal View History

2024-03-20 10:28:45 +08:00
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")