diff --git a/config/config.go b/config/config.go index 7fabecb..d756b6d 100644 --- a/config/config.go +++ b/config/config.go @@ -157,7 +157,7 @@ func Load(data []byte) (Config, error) { data, err := decodeBase64URI(im.Value) if err != nil { // try external URL - errUrl := validateUrl(im.Value) + errUrl := ValidateUrl(im.Value) if errUrl != nil { return Config{}, fmt.Errorf("Image %d error: bad base64 format[%w], bad Url format [%w]", i, err, errUrl) } @@ -229,7 +229,7 @@ func decodeBase64URI(s string) ([]byte, error) { return decodedData, nil } -func validateUrl(urlStr string) error { +func ValidateUrl(urlStr string) error { u, err := url.Parse(urlStr) if err != nil { return fmt.Errorf("invalid URL format: %v", err) diff --git a/ical/parse.go b/ical/parse.go index e0e8ac2..1520c0a 100644 --- a/ical/parse.go +++ b/ical/parse.go @@ -165,11 +165,13 @@ func (p *Parser) buildNotification(event *ics.VEvent) notify.Notification { n.ImageName = image.Name } } else { - // only external Url - // check https TODO - if seemsImageFile(imageUrlProp.Value) { - n.ImageUrl = imageUrlProp.Value - n.ImageName = imageUrlProp.Value + // TODO move validation from config + err := config.ValidateUrl(imageUrlProp.Value) + if err == nil { + if seemsImageFile(imageUrlProp.Value) { + n.ImageUrl = imageUrlProp.Value + n.ImageName = imageUrlProp.Value + } } } }