Initial YakPanel commit

This commit is contained in:
Niranjan
2026-04-07 02:04:22 +05:30
commit 2826d3e7f3
5359 changed files with 1390724 additions and 0 deletions

146
class/sslModel/westModel.py Normal file
View 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))