Initial YakPanel commit
This commit is contained in:
146
class/sslModel/westModel.py
Normal file
146
class/sslModel/westModel.py
Normal file
@@ -0,0 +1,146 @@
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
from sslModel.base import sslBase
|
||||
import public
|
||||
|
||||
|
||||
class main(sslBase):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
def __init_data(self, data):
|
||||
self.api_url = 'https://api.west.cn/api/v2/domain/'
|
||||
# 账号
|
||||
self.user_name = data["user_name"]
|
||||
# api 密码
|
||||
self.api_password = data["api_password"]
|
||||
self.headers = {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'}
|
||||
|
||||
def get_params(self):
|
||||
timestamp = str(time.time() * 1000)
|
||||
token = hashlib.md5((self.user_name + self.api_password + timestamp).encode("utf-8")).hexdigest()
|
||||
return {"username": self.user_name, "token": token, "time": timestamp}
|
||||
|
||||
def _request(self, dns_id, body):
|
||||
self.__init_data(self.get_dns_data(None)[dns_id])
|
||||
params = self.get_params()
|
||||
try:
|
||||
res = requests.post(self.api_url, headers=self.headers, params=params, data=body)
|
||||
|
||||
if res.status_code != 200:
|
||||
return False, res.text
|
||||
json_data = res.json()
|
||||
if json_data['result'] != 200:
|
||||
return False, json_data['msg']
|
||||
return True, json_data
|
||||
except Exception as e:
|
||||
return False, e
|
||||
|
||||
def get_dns_record(self, get):
|
||||
domain_name, _, sub_domain = self.extract_zone(get.domain_name)
|
||||
limit = "500"
|
||||
p = "1"
|
||||
if "limit" in get:
|
||||
limit = str(get["limit"])
|
||||
if "p" in get:
|
||||
p = str(get["p"])
|
||||
body = {
|
||||
"domain": domain_name,
|
||||
"act": "getdnsrecord",
|
||||
"limit": limit,
|
||||
"pageno": p,
|
||||
}
|
||||
try:
|
||||
flag, res = self._request(get.dns_id, body)
|
||||
|
||||
data = {"list": [], "info": {"record_total": res['data']['total']}}
|
||||
if not flag:
|
||||
data = {}
|
||||
for record in res['data']["items"]:
|
||||
data["list"].append(
|
||||
{
|
||||
"RecordId": record["id"],
|
||||
"name": record["item"] + "." + domain_name if record["item"] != "@" else domain_name,
|
||||
"value": record["value"],
|
||||
"line": record["line"] if record["line"] else "默认",
|
||||
"ttl": record["ttl"],
|
||||
"type": record["type"],
|
||||
"status": "启用" if record["pause"] == 0 else "暂停",
|
||||
"mx": "",
|
||||
"updated_on": "",
|
||||
"remark": "",
|
||||
}
|
||||
)
|
||||
except Exception as e:
|
||||
data = {}
|
||||
self.set_record_data({domain_name: data})
|
||||
return data
|
||||
|
||||
def create_dns_record(self, get):
|
||||
domain_name, sub_domain, _ = self.extract_zone(get.domain_name)
|
||||
record_type = 'TXT'
|
||||
if 'record_type' in get:
|
||||
record_type = get.record_type
|
||||
body = {
|
||||
"act": "adddnsrecord",
|
||||
"domain": domain_name,
|
||||
"host": sub_domain,
|
||||
"type": record_type,
|
||||
"value": get.domain_dns_value,
|
||||
"ttl": "600",
|
||||
"level": "10",
|
||||
"line": "",
|
||||
}
|
||||
try:
|
||||
flag, res = self._request(get.dns_id, body)
|
||||
if not flag:
|
||||
return public.returnMsg(False, '添加失败:{}'.format(res))
|
||||
return public.returnMsg(True, "添加成功")
|
||||
except Exception as e:
|
||||
return public.returnMsg(False, '添加失败:{}'.format(e))
|
||||
|
||||
def delete_dns_record(self, get):
|
||||
domain_name, _, sub_domain = self.extract_zone(get.domain_name)
|
||||
|
||||
body = {
|
||||
"act": "deldnsrecord",
|
||||
"domain": domain_name,
|
||||
"id": get.RecordId,
|
||||
}
|
||||
try:
|
||||
flag, res = self._request(get.dns_id, body)
|
||||
if not flag:
|
||||
return public.returnMsg(False, '删除失败:{}'.format(res))
|
||||
return public.returnMsg(True, "删除成功")
|
||||
except Exception as e:
|
||||
return public.returnMsg(False, '删除失败:{}'.format(e))
|
||||
|
||||
def update_dns_record(self, get):
|
||||
# 不能修改主机记录和类型
|
||||
domain_name, sub_domain, _ = self.extract_zone(get.domain_name)
|
||||
body = {
|
||||
"act": "moddnsrecord",
|
||||
"id": get.RecordId,
|
||||
"domain": domain_name,
|
||||
"host": sub_domain,
|
||||
"type": get.record_type,
|
||||
"value": get.domain_dns_value,
|
||||
"level": "10",
|
||||
"ttl": "600",
|
||||
}
|
||||
try:
|
||||
flag, res = self._request(get.dns_id, body)
|
||||
if not flag:
|
||||
return public.returnMsg(False, '修改失败:{}'.format(res))
|
||||
return public.returnMsg(True, "修改成功")
|
||||
except Exception as e:
|
||||
return public.returnMsg(False, '修改失败:{}'.format(e))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user