迁移并重构项目,优化了执行流程

This commit is contained in:
2025-10-31 15:43:25 +08:00
commit 35bcd62ad5
29 changed files with 1312 additions and 0 deletions

View File

@ -0,0 +1,57 @@
package Acme
import (
"SafeLine-Acme/internal/app/logger"
"reflect"
)
func (acme *Object) CheckFile() bool {
var flag = true
if acme.Email == "" {
logger.Warning.Printf("未设置 %s证书申请邮箱%s: 请检查配置文件中的 %sAcme.Email%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
flag = false
}
v := reflect.ValueOf(acme.DNSProvider)
var dns = true
for i := 0; i < v.NumField(); i++ {
field := v.Field(i)
if field.Kind() == reflect.Struct {
for ii := 0; ii < field.NumField(); ii++ {
if field.Field(ii).String() != "" {
dns = false
}
}
}
}
if dns {
logger.Warning.Printf("未设置 %sDNS服务提供商%s: 请检查配置文件中的 %sAcme.DNSProvider%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
}
return flag
}
func (acme *Object) CheckCommand() bool {
var flag = true
if acme.Email == "" {
logger.Warning.Printf("未设置 %s证书申请邮箱%s: 请检查命令中的 %s-e%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
flag = false
}
v := reflect.ValueOf(acme.DNSProvider).Elem()
var dns = true
for i := 0; i < v.NumField(); i++ {
field := v.Field(i)
if field.Kind() == reflect.Struct {
for ii := 0; ii < field.NumField(); ii++ {
if field.Field(ii).String() != "" {
dns = false
}
}
}
}
if dns {
logger.Warning.Printf("未设置 %sDNS服务提供商%s: 请检查命令中的 %s-k%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
}
return flag
}

View File

@ -0,0 +1,20 @@
package Acme
import (
"regexp"
"strings"
)
func (acme *Object) EmailVerify() bool {
var EmailRegex = regexp.MustCompile(`^[a-zA-Z0-9.!#$%&'*+/=?^_{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$`)
email := strings.TrimSpace(acme.Email)
if len(email) < 3 || len(email) > 254 {
return false
}
return EmailRegex.MatchString(email)
}
func (acme *Object) DNSProviderVerify() bool {
acme.DNSProvider.Choose()
return true
}

View File

@ -0,0 +1,10 @@
package Acme
import (
"SafeLine-Acme/internal/class/DNSProvider"
)
type Object struct {
Email string `json:"Email"`
DNSProvider DNSProvider.Object `json:"DNSProvider"`
}