diff --git a/micropub.go b/micropub.go index 4fc146d..d762823 100644 --- a/micropub.go +++ b/micropub.go @@ -85,13 +85,13 @@ func HandleMicroPub(w http.ResponseWriter, r *http.Request) { } else { w.Header().Add("Location", location) w.WriteHeader(http.StatusAccepted) - // Purge CDN in 10 seconds, send webmentions, post to social media + // Purge CDN after 30 seconds, send webmentions, post to social media go func() { + time.Sleep(30 * time.Second) if SelectedCdn != nil { - time.Sleep(10 * time.Second) SelectedCdn.Purge(location) + time.Sleep(10 * time.Second) } - time.Sleep(10 * time.Second) // Send webmentions go SendWebmentions(location) go func() { diff --git a/webmention.go b/webmention.go index 3bf882a..e432fe1 100644 --- a/webmention.go +++ b/webmention.go @@ -42,17 +42,19 @@ func SendWebmentions(url string) { func filterLinks(links []string) []string { var filteredLinks []string - for _, link := range links { - if strings.HasPrefix(link, strings.TrimSuffix(BlogUrl, "/")) { - continue - } - ignored := false - for _, ignoredURL := range IgnoredWebmentionUrls { - if !ignored && strings.HasPrefix(link, strings.TrimSuffix(ignoredURL, "/")) { - ignored = true + checkPrefix := func(link string, prefix string) bool { + return strings.HasPrefix(link, strings.TrimSuffix(prefix, "/")) + } + checkAny := func(link string) bool { + for _, ignoredUrl := range IgnoredWebmentionUrls { + if checkPrefix(link, ignoredUrl) { + return true } } - if ignored != true { + return false + } + for _, link := range links { + if !(checkPrefix(link, BlogUrl) || checkAny(link)) { filteredLinks = append(filteredLinks, link) } } @@ -181,10 +183,10 @@ func returnSuccess(target string, w http.ResponseWriter, r *http.Request) { } else { w.WriteHeader(http.StatusOK) } - // Purge CDN in 10 seconds + // Purge CDN after 30 seconds go func() { + time.Sleep(30 * time.Second) if SelectedCdn != nil { - time.Sleep(10 * time.Second) SelectedCdn.Purge(target) } }()