From 4900d3dd69362334c51c05f10b83e8eff4e1c19d Mon Sep 17 00:00:00 2001 From: flyneko Date: Thu, 27 Feb 2025 11:20:33 +0800 Subject: [PATCH] fix: missing email cause error --- rss.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/rss.go b/rss.go index 9326cef..315bfcd 100644 --- a/rss.go +++ b/rss.go @@ -7,6 +7,7 @@ package feeds import ( "encoding/xml" "fmt" + "net/mail" "time" ) @@ -135,9 +136,13 @@ func (r *Rss) RssFeed() *RssFeed { build := anyTimeFormat(time.RFC1123Z, r.Updated) author := "" if r.Author != nil { - author = r.Author.Email - if len(r.Author.Name) > 0 { - author = fmt.Sprintf("%s (%s)", r.Author.Email, r.Author.Name) + // check if email is valid + email := r.Author.Email + if isValidEmail(email) { + author = email + if len(r.Author.Name) > 0 { + author = fmt.Sprintf("%s (%s)", r.Author.Email, r.Author.Name) + } } } @@ -181,3 +186,8 @@ func (r *RssFeed) FeedXml() interface{} { ContentNamespace: "http://purl.org/rss/1.0/modules/content/", } } + +func isValidEmail(email string) bool { + _, err := mail.ParseAddress(email) + return err == nil +}