finish
This commit is contained in:
@@ -8,7 +8,6 @@ import (
|
||||
)
|
||||
|
||||
func SendEmail(subject string, text string, to ...string) bool {
|
||||
//TODO: add logs
|
||||
e := email.Email{
|
||||
From: "nCovTrack Server<1853633282@qq.com>",
|
||||
To: to,
|
||||
@@ -20,6 +19,7 @@ func SendEmail(subject string, text string, to ...string) bool {
|
||||
smtp.PlainAuth("", global.ServerSettings.Email.Account, global.ServerSettings.Email.Password, global.ServerSettings.Email.Host),
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Println("Send failed")
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -31,7 +31,11 @@ func GetWithHeader(url string, header map[string]string) string {
|
||||
cost := time.Since(startTime)
|
||||
var logParams []interface{}
|
||||
logParams = append(logParams,
|
||||
"reqest", req,
|
||||
"reqest", map[string]interface{}{
|
||||
"url": req.URL,
|
||||
"method": req.Method,
|
||||
"header": req.Header,
|
||||
},
|
||||
"cost", cost.String(),
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
@@ -15,3 +15,24 @@ func Map[T any, V any](arr []T, fun func(item T) V) []V {
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Distinct[T comparable](arr []T) []T {
|
||||
set := map[T]interface{}{}
|
||||
for _, item := range arr {
|
||||
set[item] = nil
|
||||
}
|
||||
var res []T
|
||||
for k := range set {
|
||||
res = append(res, k)
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Contains[T comparable](arr []T, item T) bool {
|
||||
for _, a := range arr {
|
||||
if a == item {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
40
utils/set.go
40
utils/set.go
@@ -1,40 +0,0 @@
|
||||
package utils
|
||||
|
||||
type void struct{}
|
||||
|
||||
// This is set with generic
|
||||
|
||||
type Set[T comparable] struct {
|
||||
setMap map[T]void
|
||||
}
|
||||
|
||||
func NewSet[T comparable](eles ...T) *Set[T] {
|
||||
set := &Set[T]{setMap: make(map[T]void)}
|
||||
set.AddAll(eles...)
|
||||
return set
|
||||
}
|
||||
|
||||
func (set *Set[T]) Add(ele T) *Set[T] {
|
||||
set.setMap[ele] = void{}
|
||||
return set
|
||||
}
|
||||
|
||||
func (set *Set[T]) AddAll(eles ...T) *Set[T] {
|
||||
for _, ele := range eles {
|
||||
set.Add(ele)
|
||||
}
|
||||
return set
|
||||
}
|
||||
|
||||
func (set *Set[T]) Delete(ele T) *Set[T] {
|
||||
delete(set.setMap, ele)
|
||||
return set
|
||||
}
|
||||
|
||||
func (set *Set[T]) ToSlice() []T {
|
||||
var s []T
|
||||
for k, _ := range set.setMap {
|
||||
s = append(s, k)
|
||||
}
|
||||
return s
|
||||
}
|
||||
Reference in New Issue
Block a user