mirror of
https://github.com/TwiN/gatus.git
synced 2025-04-20 01:18:34 +02:00
Add day format support for duration comparison
This commit is contained in:
parent
c23e21cb41
commit
2150942876
@ -3,6 +3,7 @@ package core
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -186,7 +187,15 @@ func sanitizeAndResolve(list []string, result *Result) []string {
|
|||||||
func sanitizeAndResolveNumerical(list []string, result *Result) []int64 {
|
func sanitizeAndResolveNumerical(list []string, result *Result) []int64 {
|
||||||
var sanitizedNumbers []int64
|
var sanitizedNumbers []int64
|
||||||
sanitizedList := sanitizeAndResolve(list, result)
|
sanitizedList := sanitizeAndResolve(list, result)
|
||||||
|
dayRegex := regexp.MustCompile(`^\s*(\d+)d\s*$`)
|
||||||
for _, element := range sanitizedList {
|
for _, element := range sanitizedList {
|
||||||
|
if matches := dayRegex.FindStringSubmatch(element); matches != nil {
|
||||||
|
if days, err := strconv.ParseInt(matches[1], 10, 64); err == nil {
|
||||||
|
duration := time.Duration(days * int64(time.Hour * 24))
|
||||||
|
sanitizedNumbers = append(sanitizedNumbers, duration.Milliseconds())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
if duration, err := time.ParseDuration(element); duration != 0 && err == nil {
|
if duration, err := time.ParseDuration(element); duration != 0 && err == nil {
|
||||||
sanitizedNumbers = append(sanitizedNumbers, duration.Milliseconds())
|
sanitizedNumbers = append(sanitizedNumbers, duration.Milliseconds())
|
||||||
} else if number, err := strconv.ParseInt(element, 10, 64); err != nil {
|
} else if number, err := strconv.ParseInt(element, 10, 64); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user