From 1c53244439a5b92b962cbf8159e026d65a4bcc8e Mon Sep 17 00:00:00 2001 From: Niko Abeler Date: Mon, 10 Oct 2022 21:06:33 +0200 Subject: [PATCH] Send webmention to reply url --- post.go | 4 ++++ post_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/post.go b/post.go index ee4d7b0..cfb8bfe 100644 --- a/post.go +++ b/post.go @@ -385,6 +385,10 @@ func (post *Post) ScanForLinks() error { // rely on goldmark for this (yet) postHtml := post.RenderedContent() links, _ := post.user.repo.Parser.ParseLinksFromString(postHtml.String()) + // add reply url if set + if post.Meta().Reply.Url != "" { + links = append(links, post.Meta().Reply.Url) + } for _, link := range links { post.PersistOutgoingWebmention(&WebmentionOut{ Target: link, diff --git a/post_test.go b/post_test.go index 79c5125..e10f582 100644 --- a/post_test.go +++ b/post_test.go @@ -344,6 +344,31 @@ func TestScanningForLinksDoesNotAddDuplicates(t *testing.T) { } } +func TestScanningForLinksDoesAddReplyUrl(t *testing.T) { + repo := getTestRepo(owl.RepoConfig{}) + user, _ := repo.CreateUser("testuser") + post, _ := user.CreateNewPost("testpost") + + content := "---\n" + content += "title: test\n" + content += "date: Wed, 17 Aug 2022 10:50:02 +0000\n" + content += "reply:\n" + content += " url: https://example.com/reply\n" + content += "---\n" + content += "\n" + content += "Hi\n" + os.WriteFile(post.ContentFile(), []byte(content), 0644) + + post.ScanForLinks() + webmentions := post.OutgoingWebmentions() + if len(webmentions) != 1 { + t.Errorf("Expected 1 webmention, got %d", len(webmentions)) + } + if webmentions[0].Target != "https://example.com/reply" { + t.Errorf("Expected target: %s, got %s", "https://example.com/reply", webmentions[0].Target) + } +} + func TestCanSendWebmention(t *testing.T) { repo := getTestRepo(owl.RepoConfig{}) repo.HttpClient = &MockHttpClient{}