28 lines
609 B
Go
28 lines
609 B
Go
package main
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// IsValidDate checks if the date string is in YYYYMMDD format
|
|
func IsValidDate(date string) bool {
|
|
// Check basic format with regex
|
|
matched, err := regexp.MatchString(`^\d{8}$`, date)
|
|
if err != nil || !matched {
|
|
return false
|
|
}
|
|
|
|
// Parse date to verify it's a valid date
|
|
_, err = time.Parse("20060102", date)
|
|
return err == nil
|
|
}
|
|
|
|
// SanitizeFilename replaces invalid filename characters to match arxiva's sanitization
|
|
func SanitizeFilename(s string) string {
|
|
s = strings.ReplaceAll(s, ":", "_")
|
|
s = strings.ReplaceAll(s, " ", "_")
|
|
return s
|
|
}
|