迁移并重构项目,优化了执行流程
This commit is contained in:
		
							
								
								
									
										57
									
								
								internal/class/Acme/Check.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								internal/class/Acme/Check.go
									
									
									
									
									
										Normal 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
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								internal/class/Acme/Method.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								internal/class/Acme/Method.go
									
									
									
									
									
										Normal 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
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								internal/class/Acme/Object.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								internal/class/Acme/Object.go
									
									
									
									
									
										Normal 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"`
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user