mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-17 21:25:47 +02:00
1. Added Mail Marketing Automation trigger tasks 2. Added Mail Marketing Groups Import, Export, Merge 3. Added Mail Marketing Subscribers to support paste import 4. Added Mail Marketing Template Import Export Duplicate 5. Added Mail server add timed automatic reply 6. Added HTTPS Protection function for Website (disables automatic HTTP to HTTPS redirection when enabled) 7. Optimize Website Interface Button Integration 8. Optimize the response speed of WP Toolkit interface
147 lines
4.8 KiB
Python
147 lines
4.8 KiB
Python
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))
|
|
|
|
|
|
|
|
|
|
|