update to 6.8.27

This commit is contained in:
aaPanel
2022-12-16 10:40:55 +08:00
parent d2a66661db
commit 7dcaa2b5ce
148 changed files with 22281 additions and 13876 deletions
+32 -28
View File
@@ -34,12 +34,12 @@ import hmac
try:
import requests
except:
public.ExecShell('pip install requests')
public.ExecShell('btpip install requests')
import requests
try:
import OpenSSL
except:
public.ExecShell('pip install pyopenssl')
public.ExecShell('btpip install pyOpenSSL')
import OpenSSL
import random
import datetime
@@ -97,7 +97,7 @@ class BaseDns(object):
class DNSPodDns(BaseDns):
dns_provider_name = "dnspod"
_type = 0 # 0:lest 1:锐成
def __init__(self, DNSPOD_ID, DNSPOD_API_KEY, DNSPOD_API_BASE_URL="https://dnsapi.cn/"):
self.DNSPOD_ID = DNSPOD_ID
self.DNSPOD_API_KEY = DNSPOD_API_KEY
@@ -113,7 +113,10 @@ class DNSPodDns(BaseDns):
def create_dns_record(self, domain_name, domain_dns_value):
domain_name,_,subd = extract_zone(domain_name)
self.add_record(domain_name,subd,domain_dns_value,'TXT')
if self._type == 1:
self.add_record(domain_name,subd.replace('_acme-challenge.',''),domain_dns_value,'CNAME')
else:
self.add_record(domain_name,subd,domain_dns_value,'TXT')
@@ -177,7 +180,7 @@ class DNSPodDns(BaseDns):
class CloudFlareDns(BaseDns):
dns_provider_name = "cloudflare"
_type = 0 # 0:lest 1:锐成
def __init__(
self,
CLOUDFLARE_EMAIL,
@@ -278,6 +281,12 @@ class CloudFlareDns(BaseDns):
"name": "_acme-challenge" + "." + domain_name + ".",
"content": "{0}".format(domain_dns_value),
}
if self._type == 1:
body['type'] = 'CNAME'
root, _, acme_txt = extract_zone(domain_name)
body['name'] = acme_txt.replace('_acme-challenge.','')
create_cloudflare_dns_record_response = requests.post(
url, headers=headers, json=body, timeout=self.HTTP_TIMEOUT
)
@@ -326,6 +335,7 @@ class CloudFlareDns(BaseDns):
class AliyunDns(object):
_type = 0 # 0:lest 1:锐成
def __init__(self, key, secret, ):
self.key = str(key).strip()
self.secret = str(secret).strip()
@@ -359,11 +369,14 @@ class AliyunDns(object):
def create_dns_record(self, domain_name, domain_dns_value):
root, _, acme_txt = extract_zone(domain_name)
self.add_record(root,'TXT',acme_txt,domain_dns_value)
try:
self.add_record(root,'CAA','@',caa_value)
except:
pass
if self._type == 1:
acme_txt = acme_txt.replace('_acme-challenge.','')
self.add_record(root,'CNAME',acme_txt,domain_dns_value)
else:
try:
self.add_record(root,'CAA','@',caa_value)
except: pass
self.add_record(root,'TXT',acme_txt,domain_dns_value)
def add_record(self,domain,s_type,host,value):
@@ -493,17 +506,6 @@ class CloudxnsDns(object):
req = requests.post(url=url, headers=headers, data=parameter,verify=False)
req = req.json()
data = {
"domain_id": int(domain),
"host": '@',
"value": caa_value,
"type": "CAA",
"line_id": 1,
}
parameter = json.dumps(data)
headers = self.get_headers(url, parameter)
requests.post(url=url, headers=headers, data=parameter,verify=False)
return req
def delete_dns_record(self, domain_name, domain_dns_value):
@@ -513,10 +515,6 @@ class CloudxnsDns(object):
headers = self.get_headers(url, )
req = requests.delete(url=url, headers=headers, verify=False)
req = req.json()
url = "https://www.cloudxns.net/api2/record/{}/{}".format(self.get_record_id(root,'CAA'), self.get_domain_id(root))
headers = self.get_headers(url, )
req = requests.delete(url=url, headers=headers, verify=False)
return req
def get_record_id(self, domain_name,s_type = 'TXT'):
@@ -530,12 +528,12 @@ class CloudxnsDns(object):
return False
class Dns_com(object):
_type = 0 # 0:lest 1:锐成
def __init__(self, key, secret, ):
pass
def get_dns_obj(self):
p_path = '/www/server/panel/plugin/model'
p_path = '/www/server/panel/plugin/dns'
if not os.path.exists(p_path +'/dns_main.py'): return None
sys.path.insert(0,p_path)
import dns_main
@@ -544,7 +542,13 @@ class Dns_com(object):
def create_dns_record(self, domain_name, domain_dns_value):
root, _, acme_txt = extract_zone(domain_name)
result = self.get_dns_obj().add_txt(acme_txt + '.' + root,domain_dns_value)
if self._type == 1:
acme_txt = acme_txt.replace('_acme-challenge.','')
result = self.add_record(acme_txt + '.' + root,domain_dns_value)
else:
result = self.get_dns_obj().add_txt(acme_txt + '.' + root,domain_dns_value)
if result == "False":
raise ValueError('[DNS] This domain name does not exist in the currently bound Pagoda DNS cloud resolution account. Adding parsing failed!')
time.sleep(5)