ai / bt-source /panel /class /sslModel /dnsapiModel.py
GGSheng's picture
feat: deploy Gemma 4 to hf space
17e971c verified
import os, sys, re, json, shutil, psutil, time
import uuid
from datetime import datetime
from hashlib import md5
from sslModel.base import sslBase
import public
class main(sslBase):
def get_dnsapi_add_data(self):
data = [
{
'name': 'DNSPod',
'id': 'DNSPodDns',
'params': ['ID', 'Token']
},
{
'name': '阿里云DNS',
'id': 'AliyunDns',
'params': ['AccessKey', 'SecretKey']
},
{
'name': '腾讯云DNS',
'id': 'TencentCloudDns',
'params': ['secret_id', 'secret_key']
},
{
'name': '华为云DNS',
'id': 'HuaweiCloudDns',
'params': ['AccessKey', 'SecretKey', 'project_id']
},
{
'name': 'CloudFlare',
'id': 'CloudFlareDns',
'params': ['E-Mail', 'API Key']
},
{
'name': '西部数码',
'id': 'WestDns',
'params': ['user_name', 'api_password']
},
{
'name': '宝塔域名',
'id': 'BtDns',
'params': ['AccessKey', 'SecretKey', 'AccountID']
},
# godaddy接口访问不了,先注释
# {
# 'name': 'GoDaddy',
# 'id': 'GoDaddyDns',
# 'params': ['Key', 'Secret']
# },
]
return data
def get_dns_data(self, get):
api_data = super().get_dns_data(get)
add_data = self.get_dnsapi_add_data()
return {"data": [i for i in api_data.values()], "add_data": add_data}
def add_dns_data(self, get):
dns_name = get.dns_name
ps = get.ps
pdata = json.loads(get.pdata)
if dns_name not in [i['id'] for i in self.get_dnsapi_add_data()]:
return public.returnMsg(False, "暂不支持此类型")
pdata.update({'id': uuid.uuid4().hex, 'ps': ps})
sfile = "{}/config/dns_mager.conf".format(public.get_panel_path())
try:
data = json.loads(public.readFile(sfile))
except:
data = {}
type_data = data.get(dns_name)
if type_data:
type_data.append(pdata)
else:
type_data = [pdata]
data[dns_name] = type_data
public.writeFile(sfile, json.dumps(data))
return public.returnMsg(True, "添加成功")
def del_dns_data(self, get):
dns_id = get.dns_id
sfile = "{}/config/dns_mager.conf".format(public.get_panel_path())
data = json.loads(public.readFile(sfile))
for key in data.keys():
for val in data[key]:
if val['id'] == dns_id:
data[key].remove(val)
public.writeFile(sfile, json.dumps(data))
return public.returnMsg(True, "删除成功")
def upd_dns_data(self, get):
dns_id = get.dns_id
ps = get.ps
pdata = {}
if 'pdata' in get:
pdata = json.loads(get.pdata)
pdata.update({'ps': ps})
sfile = "{}/config/dns_mager.conf".format(public.get_panel_path())
data = json.loads(public.readFile(sfile))
for key in data.keys():
for val in data[key]:
if val['id'] == dns_id:
val.update(pdata)
public.writeFile(sfile, json.dumps(data))
return public.returnMsg(True, "修改成功")