遗漏的部分
This commit is contained in:
1 parent
84fb370da8
commit
0493383ee8
63 files changed
+28237
-4
No files matched your search
@@ -0,0 +1,118 @@
|
||||
import requests
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
def calculate_sha256(input_string):
|
||||
"""
|
||||
计算输入字符串的SHA-256哈希值
|
||||
|
||||
参数:
|
||||
input_string (str): 要计算哈希的字符串
|
||||
|
||||
返回:
|
||||
str: 输入字符串的SHA-256哈希值(十六进制字符串)
|
||||
"""
|
||||
# 创建sha256哈希对象
|
||||
sha256_hash = hashlib.sha256()
|
||||
|
||||
# 更新哈希对象,需要将字符串编码为字节
|
||||
sha256_hash.update(input_string.encode('utf-8'))
|
||||
|
||||
# 获取十六进制格式的哈希值
|
||||
hex_digest = sha256_hash.hexdigest()
|
||||
|
||||
return hex_digest
|
||||
|
||||
class DnfsComm:
|
||||
'''=====抛出异常表示失败。=====
|
||||
Dnfs即树状网络文件系统,该类是用于与dnfs通信的类。
|
||||
|
||||
可以获取子节点列表、添加节点、删除节点、更新节点。
|
||||
|
||||
计划在以后加入分组获取内容的功能。'''
|
||||
|
||||
def __init__(self, url: str) -> None:
|
||||
self.url: str = url
|
||||
|
||||
|
||||
# 获取某个节点下的子节点(0是主节点)
|
||||
def get(self, pid: int) -> object:
|
||||
rsp = requests.post(self.url + "/get_notes", json={
|
||||
"pid": pid
|
||||
},)
|
||||
if (rsp.status_code == 200):
|
||||
return rsp.text
|
||||
else:
|
||||
raise DnfsComm.GetFailed(rsp.text)
|
||||
|
||||
def get_and_trans(self, pid: int) -> list:
|
||||
return json.loads(self.get(pid))
|
||||
|
||||
# 以pid节点为父节点添加节点
|
||||
def add(self, pid: int, title: str, content: str) -> object:
|
||||
rsp = requests.post(self.url + "/add_note", json={
|
||||
"pid": pid,
|
||||
"title": title,
|
||||
"content": content
|
||||
},)
|
||||
if (rsp.status_code == 200 or rsp.status_code == 201):
|
||||
return rsp.text
|
||||
else:
|
||||
raise DnfsComm.AddFailed(rsp.text)
|
||||
|
||||
# 删除一个节点
|
||||
def dele(self, id: int) -> object:
|
||||
rsp = requests.post(self.url + "/delete_note", json={
|
||||
"id": id,
|
||||
},)
|
||||
if (rsp.status_code == 200):
|
||||
return rsp.text
|
||||
else:
|
||||
raise DnfsComm.DelFailed(rsp.text)
|
||||
|
||||
# 更新id节点
|
||||
def upd(self, id: int, pid: int, title: str, content: str) -> object:
|
||||
rsp = requests.post(self.url + "/update_note", json={
|
||||
"id": id,
|
||||
"pid": pid,
|
||||
"title": title,
|
||||
"content": content
|
||||
},)
|
||||
if (rsp.status_code == 200):
|
||||
return rsp.text
|
||||
else:
|
||||
raise DnfsComm.UpdFailed(rsp.text)
|
||||
|
||||
|
||||
class TheExp(Exception):
|
||||
def __init__(self, msg: str):
|
||||
super().__init__(msg)
|
||||
|
||||
class GetFailed(TheExp):
|
||||
def __init__(self, msg: str):
|
||||
super().__init__(msg)
|
||||
|
||||
class AddFailed(TheExp):
|
||||
def __init__(self, msg: str):
|
||||
super().__init__(msg)
|
||||
|
||||
class DelFailed(TheExp):
|
||||
def __init__(self, msg: str):
|
||||
super().__init__(msg)
|
||||
|
||||
class UpdFailed(TheExp):
|
||||
def __init__(self, msg):
|
||||
super().__init__(msg)
|
||||
|
||||
if __name__ == "__main__":
|
||||
comm = DnfsComm("http://101.245.108.250:8006")
|
||||
#comm.add(0, "test pkg", "hello")
|
||||
#comm.dele(2)
|
||||
#comm.upd(id=1, pid=0, title="Users", content=f"""1::admin::{calculate_sha256('baigezi')}::admin
|
||||
#2::qing::{calculate_sha256('123456')}::normal
|
||||
#3::test::{calculate_sha256('44112233')}::normal
|
||||
#4::test2::{calculate_sha256('44112233')}::mormal""")
|
||||
#comm.upd(id=2, pid=0, title="Sensors", content='''101::temperature
|
||||
#102::humidity''')
|
||||
comm.upd(id=3, pid=0, title="Protected", content='''''')
|
||||
print(comm.get_and_trans(0))
|
||||
Reference in new issue
Block a user