48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from application_json import ApplicationJsonMethods
|
|
from base64 import b64encode
|
|
from json import dump, load,loads
|
|
from os.path import exists
|
|
|
|
|
|
class Req(ApplicationJsonMethods):
|
|
def __init__(self, key_id: str = None, key_sec: str = None,warn=True):
|
|
if key_id is None or key_sec is None:
|
|
self.ready = self.from_file()
|
|
else:
|
|
self.key_id = key_id
|
|
self.key_sec = key_sec
|
|
self.ready = True
|
|
if self.ready:
|
|
super().__init__(self.key_id, self.key_sec)
|
|
elif warn:
|
|
raise Warning("Req is not ready!")
|
|
|
|
def from_file(self) -> bool:
|
|
if exists("Config.json"):
|
|
with open("Config.json", "r") as f:
|
|
data = load(f)
|
|
self.key_id = data["id"]
|
|
self.key_sec = data["sec"]
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def to_file(self) -> None:
|
|
data={"id":self.key_id, "sec":self.key_sec}
|
|
with open("Config.json", "w") as f:
|
|
dump(data,f)
|
|
|
|
def set(self,key_id: str, key_sec: str):
|
|
self.key_id = key_id
|
|
self.key_sec = key_sec
|
|
self.ready = True
|
|
self.to_file()
|
|
super().__init__(key_id, key_sec)
|
|
|
|
def __call__(self,url:str,filename:str,**argvs) -> dict:
|
|
with open(filename,"rb") as f:
|
|
file=b64encode(f.read()).decode()
|
|
parms=dict(image_base64=file,**argvs)
|
|
ret=self.post(url,parms)
|
|
# print(ret)
|
|
return loads(ret) |